Перейти к содержанию
Авторизация  
Серый_Ветер

Трабла С Переменной.

Рекомендуемые сообщения

имеем код на php

 

вначале

вытаскивание данных из бд

потом сравнение, а потом отображение...

по другому не могу сделать просто :(

 

так вот из 4 переменных три идут в post одна остается типа для секурности :p и с ней сравнивается post

 

долго не мог понять почему криво пашет скрипт...

 

получается он сравнивает с post уже новую переменную, а не старую.

 

сам код:

 

Скрытый текст
<form method='post'>
<script type='text/javascript'>
<!--
function viewdiv(id){
var el=document.getElementById(id);
if(el.style.display=='block'){
el.style.display='none';
} else {
el.style.display='block';
}
}
//-->
</script>
<center><font color='red'><h3>
<?php
$hostname = "localhost";
$username = "vdt";
$password = "phifKuweOlol_Od0";
$tablereg = "vdt_register";
$regusers = "register";
$mysqli = new mysqli($hostname , $username , $password , $tablereg);
$mysqli->set_charset("cp1251");
$reguns = "SELECT * FROM ".$regusers." WHERE `id` ORDER BY RAND() LIMIT 1;";
if (mysqli_connect_errno()) {
  echo "Ошибка подключения: <br>".mysqli_connect_error();
exit();
  }
   if ($result = $mysqli->query($reguns)) {
	$row = $result->fetch_assoc();
	if ($row == 0) {
		 echo "Ошибка связи  с базой данных, пожалуйста попробуйте попозже.";
	}
	else {
		  $vopros = $row['vopros'];
		  $int1 = $row['int1'];
		  $int2 = $row['int2'];
		  $int3 = $row['int3'];
		  $otvpr = $row['uns'];
}
}

if(isset($_POST['register'])) {
$login = htmlentities(stripslashes(strip_tags(trim($_POST['login']))), ENT_QUOTES, 'UTF-8');
$email = htmlentities(stripslashes(strip_tags(trim($_POST['email']))), ENT_QUOTES, 'UTF-8');
$pass1 = htmlentities(stripslashes(strip_tags(trim($_POST['pass1']))), ENT_QUOTES, 'UTF-8');
$pass2 = htmlentities(stripslashes(strip_tags(trim($_POST['pass2']))), ENT_QUOTES, 'UTF-8');
$icq = htmlentities(stripslashes(strip_tags(trim($_POST['icq']))), ENT_QUOTES, 'UTF-8');
$jabber = htmlentities(stripslashes(strip_tags(trim($_POST['jabber']))), ENT_QUOTES, 'UTF-8');
$other = htmlentities(stripslashes(strip_tags(trim($_POST['other']))), ENT_QUOTES, 'UTF-8');
$secure = htmlentities(stripslashes(strip_tags(trim($_POST['secure']))), ENT_QUOTES, 'UTF-8');
$hobby = htmlentities(stripslashes(strip_tags(trim($_POST['hobby']))), ENT_QUOTES, 'UTF-8');
$otv = htmlentities(stripslashes(strip_tags(trim($_POST['menu']))), ENT_QUOTES, 'UTF-8');
if(empty($login) && empty($email) && empty($pass) && empty($pass2)) {
echo "Вы заполнили не все поля!<br>";
}
else {
if(strlen($login) < 4 || strlen($login) > 14) { echo "Логин должен содержать от 4 до 14 символов!<br>"; unset($_POST); }
else {
if(strlen($pass1) < 5 || strlen($pass1) > 16) { echo "Пароль должен содержать от 5 до 16 символов!<br>"; unset($_POST); }
else {
if(strlen($email) < 4 || strlen($email) > 40) { echo "E-mail должен содержать от 4 до 40 символов!<br>"; unset($_POST); }
else {
if($pass1 != $pass2) { echo "Введенные пароли не совпадают!"; unset($_POST); }
else {
if($otvpr != $otv) { echo $otvpr." ".$otv." Неверный ответ на вопрос!"; unset($_POST);}
else {
$db = "vdt_login";
$tableuser = "accounts";
$search = "SELECT * FROM `".$tableuser."` WHERE `login` LIKE '".$login."';";
$mysqli = new mysqli($hostname , $username , $password , $db);
if (mysqli_connect_errno()) {
echo "Ошибка подключения: <br>".mysqli_connect_error();
exit();
}
 if ($result = $mysqli->query($search)) {
	 $row = $result->fetch_assoc();
	  if ($row != 0) { echo "Логин <b>".$row['login']."</b> уже существует. Пожалуйста, выберите другой."; unset($_POST);}
else {
echo  "Вы Зарегистрировали: <br>Логин: ".$login."<br>Почта: ".$email."<br>";
unset($_POST);
}
}
}
}
}
}
}
}
}
?>
</h3></font></center>
Логин  должен быть не короче 4 и не длиннее 14 символов.<br> Пароль должен быть не короче 6 и не длиннее 16 символов.<br>Указывайте Ваш существующий почтовый ящик. После регистрации почтовый ящик изменить невозможно. Вы можете зарегистрировать несколько Аккаунтов на один почтовый ящик. Он будет использован для подтверждения регистрации и для восстановление пароля в случае его утери.<br><br>
<table><tr><td width='60%'>
<font color='red'>*</font>Логин:</td>
<td width='100%' class='reg_n'><input type='text' name='login' maxlength='14' value=''> <br></td></tr>
<tr><td><font color='red'>*</font>Пароль:</td> <td class='reg_n'><input type='password' name='pass1' maxlength='16' value=''> <br></td></tr>
<tr><td><font color='red'>*</font>Повторите пароль:</td> <td class='reg_n'> <input type='password' name='pass2' maxlength='16' value=''><br></td></tr>
<tr><td><font color='red'>*</font>Ваш почтовый ящик: </td> <td class='reg_n'><input type='text' name='email' maxlength='40' value=''><br></td></tr>
</table>
<span class='reg_n'></span><br>
<a href='java script:void(0);' onclick='viewdiv("mydiv");'><input name='regforum' type='checkbox' value='' ></a> Зарегистрироваться одновременно на <a href='./forum'> форуме</a><br>        <font size ='1'>(требуется заполнение дополнительных полей)</font><br>
<div id='mydiv' style='display:none;'><table>
<tr><td width='20%'>ICQ: </td> <td class='reg_n'><input type='text' name='icq' maxlength='16' value=''> <br></td></tr>
<tr><td>JABBER: </td> <td class='reg_n'><input type='text' name='jabber' maxlength='16' value=''> <br></td></tr>
<tr><td>Откуда: </td> <td class='reg_n'><input type='text' name='other' maxlength='16' value=''> <br></td></tr>
<tr><td>Интересы: </td> <td class='reg_n'><input type='text' name='secure' maxlength='16' value=''> <br></td></tr>
<tr><td>Род занятий: </td> <td class='reg_n'><input type='text' name='hobby' maxlength='16' value=''> <br></td></tr>
</table></div><br>
<a href='java script:void(0);' onclick='viewdiv("mydiv2");'><input name='vall' type='checkbox' value='1'></a><font color='red'>*</font>Я подтверждаю то, что мне уже больше 16 лет<br><br>
<div id='mydiv2' style='display:none;'><a href='java script:void(0);' onclick='viewdiv("mydiv3");'><input name='rules' type='checkbox' value='1' ></a><font color='red'>*</font> Я прочитал и обязуюсь соблюдать <a href='index.php?act=rules'>правила сервера</a>.<br><br>
<div id='mydiv3' style='display:none;'><a href='java script:void(0);' onclick='viewdiv("mydiv4");'><input name='robots' type='checkbox' value='1'></a><font color='red'>*</font> Отвечая на вопрос ниже, я подтверждаю, что Я - не робот.<br><br></div>
<div id='mydiv4' style='display:none;'>
<center>Пожалуйста, ответьте правильно на предложенный ниже вопрос</center><br><br>
<?php echo "Вопрос: <font color='#ffffff'>".$vopros."</font><br><br>";
echo "Выберите правильный ответ:
<select name='menu' size = '1'>
<option value='0'>Правильный ответ</option>
<option value='1'>".$int1."</option>
<option value='2'>".$int2."</option>
<option value='3'>".$int3."</option>
</select><br><br>";
echo $otvpr;
?>
<center><input type='submit' name='register' value='Регистрация' class='botton'>                
<input type='reset' name='sub' class='botton' value='Отмена' > <br><br></div>
</td>
</form>

 

проблема в переменной $otvpr

как сделать чтобы сравнивало старую переменную?

 

сессии и куки поднимать не охота ради одной то переменой, а в post отправлять $otvpr - хромает секурность.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вопрос как бы в силе остается, если найду решение, сообщу...

 

а так я на рекапчу перешел :clapping:

Предупреждение от модератора NewOff

4.17. Преждевременно поднимать темы, если с момента последней публикации не прошло 12 часа

Изменено пользователем NewOff

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
проблема в переменной $otvpr

как сделать чтобы сравнивало старую переменную?

 

Какую старую? Она у тебя в одном месте только создается, и ни где не обновляется.

 

Ответом на все твои вопросы это грамотное оформление кода:

<form method='post'>
<script type='text/javascript'>
<!--
function viewdiv(id)
{
	var el=document.getElementById(id);
	if(el.style.display=='block')  {
		el.style.display='none';
	} else {
		el.style.display='block';
	}
}
//-->
</script>
<center>
	<font color='red'>
		<h3>
<?php
$hostname = "localhost";
$username = "vdt";
$password = "phifKuweOlol_Od0";
$tablereg = "vdt_register";
$regusers = "register";
$mysqli   = new mysqli($hostname , $username , $password , $tablereg);
$mysqli->set_charset("cp1251");

$reguns = "SELECT * FROM ".$regusers." WHERE `id` ORDER BY RAND() LIMIT 1;";

if (mysqli_connect_errno()) {
	echo "Ошибка подключения: <br>".mysqli_connect_error();
	exit();
}

if ($result = $mysqli->query($reguns)) {
	$row = $result->fetch_assoc();
	if ($row == 0) {
		echo "Ошибка связи  с базой данных, пожалуйста попробуйте попозже.";
	} else {
		$vopros = $row['vopros'];
		$int1   = $row['int1'];
		$int2   = $row['int2'];
		$int3   = $row['int3'];
		$otvpr  = $row['uns'];
	}
}

if(isset($_POST['register'])) {

	$login  = htmlentities(stripslashes(strip_tags(trim($_POST['login']))),  ENT_QUOTES, 'UTF-8');
	$email  = htmlentities(stripslashes(strip_tags(trim($_POST['email']))),  ENT_QUOTES, 'UTF-8');
	$pass1  = htmlentities(stripslashes(strip_tags(trim($_POST['pass1']))),  ENT_QUOTES, 'UTF-8');
	$pass2  = htmlentities(stripslashes(strip_tags(trim($_POST['pass2']))),  ENT_QUOTES, 'UTF-8');
	$icq	= htmlentities(stripslashes(strip_tags(trim($_POST['icq']))),	ENT_QUOTES, 'UTF-8');
	$jabber = htmlentities(stripslashes(strip_tags(trim($_POST['jabber']))), ENT_QUOTES, 'UTF-8');
	$other  = htmlentities(stripslashes(strip_tags(trim($_POST['other']))),  ENT_QUOTES, 'UTF-8');
	$secure = htmlentities(stripslashes(strip_tags(trim($_POST['secure']))), ENT_QUOTES, 'UTF-8');
	$hobby  = htmlentities(stripslashes(strip_tags(trim($_POST['hobby']))),  ENT_QUOTES, 'UTF-8');
	$otv	= htmlentities(stripslashes(strip_tags(trim($_POST['menu']))),   ENT_QUOTES, 'UTF-8');

	if(empty($login) && empty($email) && empty($pass) && empty($pass2)) {
		echo "Вы заполнили не все поля!<br>";
	} else {
		if(strlen($login) < 4 || strlen($login) > 14) { 
			echo "Логин должен содержать от 4 до 14 символов!<br>"; unset($_POST); 
		} else {	
			if(strlen($pass1) < 5 || strlen($pass1) > 16) { 
				echo "Пароль должен содержать от 5 до 16 символов!<br>"; unset($_POST); 
			} else {
				if(strlen($email) < 4 || strlen($email) > 40) { 
					echo "E-mail должен содержать от 4 до 40 символов!<br>"; unset($_POST); 
				} else {
					if($pass1 != $pass2) { 
						echo "Введенные пароли не совпадают!"; unset($_POST); 
					} else {
						if($otvpr != $otv) { 
							echo $otvpr." ".$otv." Неверный ответ на вопрос!"; unset($_POST);
						} else {
							$db		= "vdt_login";
							$tableuser = "accounts";
							$search	= "SELECT * FROM `".$tableuser."` WHERE `login` LIKE '".$login."';";
							$mysqli	= new mysqli($hostname , $username , $password , $db);
							if (mysqli_connect_errno()) {
								echo "Ошибка подключения: <br>".mysqli_connect_error();
								exit();
							}

							if ($result = $mysqli->query($search)) {
								$row = $result->fetch_assoc();
								if ($row != 0) { 
									echo "Логин <b>".$row['login']."</b> уже существует. Пожалуйста, выберите другой.";
									unset($_POST);
								} else {
									echo  "Вы Зарегистрировали: <br>Логин: ".$login."<br>Почта: ".$email."<br>";
									unset($_POST);
								}
							}
						}
					}
				}
			}
		}
	}
}
?>
</h3></font></center>
Логин  должен быть не короче 4 и не длиннее 14 символов.<br> Пароль должен быть не короче 6 и не длиннее 16 символов.<br>Указывайте Ваш существующий почтовый ящик. После регистрации почтовый ящик изменить невозможно. Вы можете зарегистрировать несколько Аккаунтов на один почтовый ящик. Он будет использован для подтверждения регистрации и для восстановление пароля в случае его утери.<br><br>
<table><tr><td width='60%'>
<font color='red'>*</font>Логин:</td>
<td width='100%' class='reg_n'><input type='text' name='login' maxlength='14' value=''> <br></td></tr>
<tr><td><font color='red'>*</font>Пароль:</td> <td class='reg_n'><input type='password' name='pass1' maxlength='16' value=''> <br></td></tr>
<tr><td><font color='red'>*</font>Повторите пароль:</td> <td class='reg_n'> <input type='password' name='pass2' maxlength='16' value=''><br></td></tr>
<tr><td><font color='red'>*</font>Ваш почтовый ящик: </td> <td class='reg_n'><input type='text' name='email' maxlength='40' value=''><br></td></tr>
</table>
<span class='reg_n'></span><br>
<a href='java script:void(0);' onclick='viewdiv("mydiv");'><input name='regforum' type='checkbox' value='' ></a> Зарегистрироваться одновременно на <a href='./forum'> форуме</a><br>        <font size ='1'>(требуется заполнение дополнительных полей)</font><br>
<div id='mydiv' style='display:none;'><table>
<tr><td width='20%'>ICQ: </td> <td class='reg_n'><input type='text' name='icq' maxlength='16' value=''> <br></td></tr>
<tr><td>JABBER: </td> <td class='reg_n'><input type='text' name='jabber' maxlength='16' value=''> <br></td></tr>
<tr><td>Откуда: </td> <td class='reg_n'><input type='text' name='other' maxlength='16' value=''> <br></td></tr>
<tr><td>Интересы: </td> <td class='reg_n'><input type='text' name='secure' maxlength='16' value=''> <br></td></tr>
<tr><td>Род занятий: </td> <td class='reg_n'><input type='text' name='hobby' maxlength='16' value=''> <br></td></tr>
</table></div><br>
<a href='java script:void(0);' onclick='viewdiv("mydiv2");'><input name='vall' type='checkbox' value='1'></a><font color='red'>*</font>Я подтверждаю то, что мне уже больше 16 лет<br><br>
<div id='mydiv2' style='display:none;'><a href='java script:void(0);' onclick='viewdiv("mydiv3");'><input name='rules' type='checkbox' value='1' ></a><font color='red'>*</font> Я прочитал и обязуюсь соблюдать <a href='index.php?act=rules'>правила сервера</a>.<br><br>
<div id='mydiv3' style='display:none;'><a href='java script:void(0);' onclick='viewdiv("mydiv4");'><input name='robots' type='checkbox' value='1'></a><font color='red'>*</font> Отвечая на вопрос ниже, я подтверждаю, что Я - не робот.<br><br></div>
<div id='mydiv4' style='display:none;'>
<center>Пожалуйста, ответьте правильно на предложенный ниже вопрос</center><br><br>
<?php echo "Вопрос: <font color='#ffffff'>".$vopros."</font><br><br>";
echo "Выберите правильный ответ:
<select name='menu' size = '1'>
<option value='0'>Правильный ответ</option>
<option value='1'>".$int1."</option>
<option value='2'>".$int2."</option>
<option value='3'>".$int3."</option>
</select><br><br>";
echo $otvpr;
?>
<center><input type='submit' name='register' value='Регистрация' class='botton'>                
<input type='reset' name='sub' class='botton' value='Отмена' > <br><br></div>
</td>
</form>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при попытке поставить галочку вылетает 404 :)

 

и ссылка становится

http://10.10.2.86/test/java script:void(0);

 

нашел причину, изменил java script на javascript

 

и еще, все также...

 

значение при сравнении уже не то что было, а новое, когда страница уже обновлена

Изменено пользователем Серый_Ветер

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если ты хочешь что бы при обращении на другую страницу оставались старые данные в переменой, то без сессий тут никак.

 

Можно конечно данные в файл записать или в бд или гетом передать, ещё есть ajax да много чего ещё есть... Но я бы выбрал именно сессии :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если ты хочешь что бы при обращении на другую страницу оставались старые данные в переменой, то без сессий тут никак.

 

Можно конечно данные в файл записать или в бд или гетом передать, ещё есть ajax да много чего ещё есть... Но я бы выбрал именно сессии :)

 

да я без проблем, но у меня даже в сессии это обновляется....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...