Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

PHP Въпрос

Featured Replies

$sql = "INSERT INTO `users` VALUES('', '$username', '$email', '$password', '$random_number', '$random_number2', '$startmats', '$startmats','$startmats', '$startmats');";

Това първото '' за какво ти е ?

Ако е искал да записва ID-то и полето (да приемем, че се нарича id) в mysql таблицата е на Auto_Increment то не е нужно него празен стринг(който въобще никаква работа не вършеше и нямаше да върше).

Редактирано от dikidera (преглед на промените)

  • Отговори 111
  • Прегледи 13,8k
  • Създадено
  • Последен отговор

Потребители с най-много отговори

Най-популярни публикации

  • <?php <form name="redirect"> <input type='text' size="3" name="redirect2"> </form> <script type="text/javascript"> var targetURL="file.php" var countdownfrom=5 var currentse

  • И все пак... въпреки, че в случая няма нужда, понякога е необходимо да се вкара примерно форма в <? ?> таговете. Запознай се с командите echo / print. <? echo' <form name="redirect

  • darkterminal
    darkterminal

    Има естествено и тя е в полза на втория запис. В дадения случай, разликата няма да е забележима с просто око, но ако изчисляваш дълги и сложни стрингове, с много конкатенации (като във примера, който

Ако id полето/колоната е auto_increment предимно се използва и за Primary key...то тогава не е ли безсмислено да се насочва заявка за запис в това поле, след като то само ще се попълни? :cool:

  • Автор

Заявката е оправох логиката ми е това

Добре направих да се записват кординатите и последния ми въпрос е как да направя като вленеш в страницата карта и там в картата да показва с некви картинки къде има потребител(фона да е трева примерно аз фона ще го направя сам на картата)?

Визуализацията на картата

Ако е искал да записва ID-то и полето (да приемем, че се нарича id) в mysql таблицата е на Auto_Increment то не е нужно него празен стринг(който въобще никаква работа не вършеше и нямаше да върше).

Точно това имах в предвид :cool:

Най-лесно ще визуализираш картата като таблица с фиксирана височина/ширина на клетките. Според това дали има или не някой на съответните координати PHP-то ще ти определя изображението, което да зареди HTML-а в съответната клетка...

  • Автор

То таблицата има ли някакви кординати или аз трябва да задам?

Използвай самата таблица като координатна система => ти задаваш координатите в таблицата (или като id или комбинация class,id).

  • Автор

Използвай самата таблица като координатна система => ти задаваш координатите в таблицата (или като id или комбинация class,id).

Какво имаш предвит сяко поле в таблицата да има кординати ли?

<td id=11><td id=12>...<td id=1n> <td id=21><td id=22>...<td id=2n> ... <td id=n1><td id=n2>...<td id=nn> Сега ориентира ли се? П.П. Нищо лично, ама явно не ти стига въображение да създадеш таблица "матрица", което е най-елементарното решение.

  • Автор

<td id=11><td id=12>...<td id=1n>

<td id=21><td id=22>...<td id=2n>

...

<td id=n1><td id=n2>...<td id=nn>

Сега ориентира ли се?

П.П. Нищо лично, ама явно не ти стига въображение да създадеш таблица "матрица", което е най-елементарното решение.

Да разбирам те така е , но до колко трябва да продължат тези числа(id=11,12.....)?

До колкото ти е голяма картата...тия числа са примерни. Всяко id ти е комбинация от двойката координати, които си записал в базата...

11='1'+'1' Не забравяй обаче да сложиш разделител (точка,запетайка или друг символ) между координатите, защото имаш координати с различна дължина на стринга, за да можеш да използваш въпросния стринг в последствие, без нова заявка към базата

Редактирано от darkyto (преглед на промените)

  • Автор

Значи ако кординати те са мъ 79:102 трябва да е така ли: <td id=79102> или <td id='79'+'102'> ?

Редактирано от valkosoft (преглед на промените)

Да, схванал си идеята. Втория вариант не е подходящ (бях го дал за пример, че id-то е конкатенация от двойка координати).

  • Автор

Нямам никаква представа как да започна с PvP-то . То трябва да е така пращаш на някои атака събира се атаката на секи вид твой и негови воиници и кои има по-голяма атака(кръв на войниците също) трепе на другия , но въпроса ми е как да направя трябва да му зима кординатите за да може да знае на кой да прати атаката(става въпрос за пхп кода) да му името за да може да му земе цялата войска и най-важното как да направя да има време до атаката смисал колкото е по-далеч от тебе по-дълъг поход и обратното?

За разстоянието можеш да го направиш като сумира разликите между отделните координати, но за останалите проблеми - изчисти си хубаво логиката и формулите в битката, защото в такава игра са едни от най-важните :)

  • Автор

Получи се малък проблем след като смених htmlspecialchars с mysql_real_escape_string не може нито да се регистрираш нито да се логнеш. Като цъкна на вход или регистрация зарежда нещо и ме пуска на съшата страница и няма нищо в нея бяла :

<?php
include "config.php";
session_start();
ob_start();
$username=$_SESSION['username']; 
?>
<html>
<head>
<meta http-equiv="Content-language" content="bg">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<form action="" method="POST">
<table id="ctable" cellpadding="0" cellspacing="0" width="100%" height="150px">

<tbody><tr class="tr"><td>Потребител:</td><td><input name="username" type="text" size="25"></td></tr>
<tr class="tr"><td>Парола:</td><td><input name="password" type="password" size="25" maxlength="36"></td></tr>
<tr class="tr"><td>E-mail:</td><td><input name="email" type="text" size="25"></td></tr>
</tbody></table>
<table>
<tbody><tr><td></td><td><input type="submit" name="register" value="РЕГИСТРАЦИЯ"></td></tr>
</tbody></table>
</form>
<form action="" method="POST">
<table id="ctable" cellpadding="0" cellspacing="0" width="100%" height="100px">

<tbody><tr class="tr"><td>Потребител:</td><td><input type='text' name='username'></td></tr>
<tr class="tr"><td>Парола:</td><td><input type='password' name='password'></td></tr>
</tbody></table>
<table>
<tbody><tr><td></td><td><input type='submit' name='submit' value='ВХОД'></td></tr>
</tbody></table>
</form>
</head>
<body>
<?php
include("config.php");
if($_POST['register'])
{
$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['email']);
$password = md5(mysql_real_escape_string($_POST['password']));
$startmats = 500;
$minpopulation = 200;
$startpopulation = 410;
$query1="SELECT * FROM users WHERE username LIKE '$username' ";
$result1=mysql_query($query1);

if ($_POST['username'] == NULL || $_POST['username'] <= 3)
{
echo "<b>Потребителското Ви име трябва да бъде поне 3 букви.</b>";
}
else if ($_POST['email'] == NULL || $_POST['email'] <= 4)
{
echo "<b>Невалидна електронна поща.</b>";
}
else if ($_POST['password'] == NULL || $_POST['password'] <= 6)
{
echo "<b>Полето за парола трябва да е попълнено и да е минимум 6 символа.</b>";
}
else if ((eregi("[^a-zA-Z0-9_-]", $username)) || (eregi("[^a-zA-Z0-9_-]", $password)) ||
(eregi("[^a-zA-Z0-9\.@_-]", $email)))
	{
	echo("Името на акаунта,паролата и e-mail ви трябва да съдържат само букви (а-я,А-Я) или (a-z,A-Z), числа (0-9), както и символите - и _ ");
		exit();
}
else
{
if (mysql_num_rows($result1)>0)
{
echo "Потребител с това име вече същестува!";
}
else
{

$random_number = rand(1,100);
$random_number2 = rand(100,200);
$sql = "INSERT INTO `users`(id, username, email, password, x, y, gold_have, iron_have, wood_have, food_have, minpopulation, maxpopulation) VALUES('', '$username', '$email', '$password', '$random_number', '$random_number2', '$startmats', '$startmats','$startmats', '$startmats', '$minpopulation', '$startpopulation');" or die (mysql_error());
if(mysql_query($sql) != "")
{
$query = mysql_query("SELECT * FROM `users` WHERE username='$username'");
$row=mysql_fetch_array($query);
$userid=$row[id];
echo "Регистрацията беше създадена успешно!";
echo "</b></div><br><br><meta http-equiv='REFRESH' content='1;URL=index.php'> ";
echo "<br>";
}else
{
echo "Регистрацията не беше създадена!Има грешка с mysql-a!";
echo mysql_error();
}
}
}
}
?>
<?php
include "config.php";
session_start();
ob_start();
$username=$_SESSION['username']; 
?>
<meta http-equiv="Content-language" content="bg">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php if (!$username) { ?>
<?php
if ($_POST['submit']){
if ($username) { echo "<div align='center'><b>Вече си влязъл в профила си!</b></div><br><br>";}
else {
$user = mysql_real_escape_string($_POST['username']);
$password = md5(mysql_real_escape_string($_POST['password']));
if ((eregi("[^a-zA-Z0-9_-]", $username)) || (eregi("[^a-zA-Z0-9_-]", $password)))
	{
	echo("Името на акаунта и паролата ви трябва да съдържат само букви (а-я,А-Я) или (a-z,A-Z), числа (0-9), както и символите - и _ ");
		exit();
}
else {

					$sql = "SELECT * FROM users WHERE username='$user'";
					$result = mysql_query($sql) or die ('Не мога да се свържа с таблица USERS');
					$broi = mysql_num_rows($result);
					$row = mysql_fetch_array($result);
					if (($broi) == 0) { 
					echo "<div align='center'><b>Няма такъв потребител</b></div><br><br>";
					   }
					   else { 
								if ($password == $row['password']) 
								{
									$_SESSION['username'] = $row['username'];
									echo "<div align='center'><b>Добре дошъл <b>".$_SESSION['username'];
									echo "</b></div><br><br><meta http-equiv='REFRESH' content='1;URL=overview.php'> ";
								} else { 
								echo "<div align='center'><b>Грешна парола</b></div><br><br>";
								}
								}
}//if ($name)
}//post enter
}
?>
<?php } else { ?>
Вече си влязъл в профила си!
<?php } ?>

</body>
</html>


$sql = "INSERT INTO `users`(id, username, email, password, x, y, gold_have, iron_have, wood_have, food_have, minpopulation, maxpopulation) VALUES('', '$username', '$email', '$password', '$random_number', '$random_number2', '$startmats', '$startmats','$startmats', '$startmats', '$minpopulation', '$startpopulation');" or die (mysql_error());
Нямаш проверка за съвпадащи координати. Те нямат общо с проблема, но забелязах, че липсва такава.

echo "</b></div><br><br><meta http-equiv='REFRESH' content='1;URL=index.php'> ";
echo "<br>";
Тук не виждам смисъл от всичките затварящи тагове преди метата

?>
<?php
Излишно.

$sql = "SELECT * FROM users WHERE username='$user'";
Търсената променлива не трябва ли да е $username?
  • Автор

$sql = "INSERT INTO `users`(id, username, email, password, x, y, gold_have, iron_have, wood_have, food_have, minpopulation, maxpopulation) VALUES('', '$username', '$email', '$password', '$random_number', '$random_number2', '$startmats', '$startmats','$startmats', '$startmats', '$minpopulation', '$startpopulation');" or die (mysql_error());
Нямаш проверка за съвпадащи координати. Те нямат общо с проблема, но забелязах, че липсва такава.

echo "</b></div><br><br><meta http-equiv='REFRESH' content='1;URL=index.php'> ";
echo "<br>";
Тук не виждам смисъл от всичките затварящи тагове преди метата

?>
<?php
Излишно.

$sql = "SELECT * FROM users WHERE username='$user'";
Търсената променлива не трябва ли да е $username?

Проблема се появи когато замених htmlspecialchars с mysql_real_escape_string и не знам защо??!!

Колкото и PHP тагове да отваряш и затваряш в рамките на един скрипт, скрипта ще ти се изпълни наведнъж ... това няма какво да те притеснява ... боцкаш си някакъв html и когато ти потрябва php си отваряш <?php пишеш си кода тук и затваряш ?> .... продължаваш си с html, и ако ти се наложи пак отваряш <?php тагове ... >? ...

  • Автор

Появи се странен проблем , след като пробвам да се регистрирам секи път ми пише: Потребителското Ви име трябва да бъде поне 3 букви дори и да е повече от 3.

<?php
include("config.php");
if($_POST['register'])
{
$username = htmlspecialchars($_POST['username']);
$email = htmlspecialchars($_POST['email']);
$password = md5(htmlspecialchars($_POST['password']));
$startmats = 500;
$minpopulation = 200;
$startpopulation = 410;
$query1="SELECT * FROM users WHERE username LIKE '$username' ";
$result1=mysql_query($query1);

if ($_POST['username'] == NULL || $_POST['username'] <= 3)
{
echo "<div id='block'>Потребителското Ви име трябва да бъде поне 3 букви.</div>";
}
else if ($_POST['email'] == NULL || $_POST['email'] <= 4)
{
echo "<div id='block'>Невалидна електронна поща.</div>";
}
else if ($_POST['password'] == NULL || $_POST['password'] <= 6)
{
echo "<div id='block'>Полето за парола трябва да е попълнено и да е минимум 6 символа.</div>";
}
else if ((eregi("[^a-zA-Z0-9_-]", $username)) || (eregi("[^a-zA-Z0-9_-]", $password)) ||
(eregi("[^a-zA-Z0-9\.@_-]", $email)))
	{
	echo("<div id='block'>Акаунта,паролата и e-mail ви трябва да съдържат само букви (а-я,А-Я) или (a-z,A-Z), числа (0-9), както и символите - и _ </div>");
    		exit();
}
else
{
if (mysql_num_rows($result1)>0)
{
echo "<div id='block'>Потребител с това име вече същестува!</div>";
}
else
{

$random_number = rand(1,100);
$random_number2 = rand(100,200);
$sql = "INSERT INTO `users`(id, username, email, password, x, y, gold_have, iron_have, wood_have, food_have, minpopulation, maxpopulation) VALUES('', '$username', '$email', '$password', '$random_number', '$random_number2', '$startmats', '$startmats','$startmats', '$startmats', '$minpopulation', '$startpopulation');" or die (mysql_error());
if(mysql_query($sql) != "")
{
$query = mysql_query("SELECT * FROM `users` WHERE username='$username'");
$row=mysql_fetch_array($query);
$userid=$row[id];
echo "<div id='block'>Регистрацията беше създадена успешно!</div>";
echo "</b></div><br><br><meta http-equiv='REFRESH' content='1;URL=index.php'> ";
echo "<br>";
}else
{
echo "<div id='block'>Регистрацията не беше създадена!Има грешка с mysql-a!</div>";
echo mysql_error();
}
}
}
}
?>

Редактирано от valkosoft (преглед на промените)

$_POST['username'] <= 3
Тук според мен проверяваш стринга с число...а не гледаш дължината на стринга.

Виж тук опътване за strlen, която връща дължината на стринга и си оправи всичките проверки (и за паролата).

  • Автор

След като направих като мине мишката над някоя сграда се появи проблем дори и да не си върхо тази сграда (само ако си върху каквато и да е сграда пак става но на тревата или др. не) пак се отваря прозорче което измества др. згради и ги прави прозрачни , а аз съм задал само на тази сграда да е , ето и кода

#foodmine {
	position: relative;
	width: 100px;
	height: 97px;
	background-image:url(../imgs/foodmine.png);
	background-repeat: no-repeat;
	left: 50%;
	margin-left: 140px;
}	

#foodmine:hover {
	position: relative;
	width: 225px;
	height: 200px;
	background-color: #7C5B37;
	border: 1px solid #CB942C;
	border-radius: 12px;
	-moz-border-radius: 12px;
	-moz-border-radius-topright: 12px;
	-webkit-border-top-right-radius: 12px;
	-webkit-border-top-left-radius: 12px;
	opacity: 0.8;
	-moz-opacity: 0.8;
	filter: alpha(opacity=80);	
}

Знаете ли къде е проблема и как да го оправя?

Публикувано изображение

Редактирано от valkosoft (преглед на промените)

Така си описал проблема, че нищо не можах да разбера. Опиши го по-ясно за да може да се разбере за какво точно става въпрос :whist:

Регистрирайте се или влезете в профила си за да коментирате

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.