php session трабла с переменной, переопределяется...

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

php session трабла с переменной, переопределяется...

Непрочитанное сообщение QweЯty » 2012-08-19 14:06:49

имеем самописный код

Код: Выделить всё

<?php
session_start();
if(!isset($_SESSION['name'])) {
$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." 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'];
              $_SESSION['name'] = $otvpr;
}
}
 
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 "Неверный ответ на вопрос!"; 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>Указывайте Ваш существующий почтовый
<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='javascript:void(0);' onclick='viewdiv("mydiv");'><input name='regforum' type='checkbox' value='' ></a> Зарегистрироваться одновременно на <a href='.
<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='javascript:void(0);' onclick='viewdiv("mydiv2");'><input name='vall' type='checkbox' value='1'></a><font color='red'>*</font>Я подтверждаю то, что м
<div id='mydiv2' style='display:none;'><a href='javascript:void(0);' onclick='viewdiv("mydiv3");'><input name='rules' type='checkbox' value='1' ></a><font co
<div id='mydiv3' style='display:none;'><a href='javascript:void(0);' onclick='viewdiv("mydiv4");'><input name='robots' type='checkbox' value='1'></a><font co
<div id='mydiv4' style='display:none;'>
<?php
echo "<center>Пожалуйста, ответьте правильно на предложенный ниже вопрос</center><br><br>";
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'> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<input type='reset' name='sub' class='botton' value='Отмена' > <br><br></div>
</td>
</form>
вся проблема в echo $otvpr; и в $_SESSION['name'].

нужно $_POST['menu'] сравнить с $otvpr; или $_SESSION['name'], вся проблема в том что переменная $otvpr; или $_SESSION['name'] в post не заносится...
а когда отправляется post при нажатии на кнопку, переменные $otvpr; переопределяются уже :( и получется что старый post сравнивается с новыми уже перменными....

как это исправить? уже и в сессию вогнал, тоже самое :(
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: php session трабла с переменной, переопределяется...

Непрочитанное сообщение QweЯty » 2012-08-19 16:37:16

ну как бы в силе вопрос, но я перешел на рекапчу :)
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

rayder
лейтенант
Сообщения: 661
Зарегистрирован: 2008-12-18 16:29:43
Откуда: Ukraine/Kiev
Контактная информация:

Re: php session трабла с переменной, переопределяется...

Непрочитанное сообщение rayder » 2012-08-20 10:11:50

QweЯty писал(а): вся проблема в echo $otvpr; и в $_SESSION['name'].

нужно $_POST['menu'] сравнить с $otvpr; или $_SESSION['name'], вся проблема в том что переменная $otvpr; или $_SESSION['name'] в post не заносится...
чего-то я в коде не нашел, чтоб вы otvpr передавали постом, вижу только menu. $_SESSION['name'] в пост и не занесется, оно заносится в сессию (тут нужно курить отдельно)
Человеку свойственно ошибаться, но для нечеловеческих ляпов нужен компьютер.

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: php session трабла с переменной, переопределяется...

Непрочитанное сообщение QweЯty » 2012-08-20 18:07:50

Код: Выделить всё

чтоб вы otvpr передавали постом
я такого не писал, я писал что она не занесена, специально.... а сессия такдже тупит, переопреденляется снова...
вся проблема в том что переменная $otvpr; или $_SESSION['name'] в post не заносится...
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

rayder
лейтенант
Сообщения: 661
Зарегистрирован: 2008-12-18 16:29:43
Откуда: Ukraine/Kiev
Контактная информация:

Re: php session трабла с переменной, переопределяется...

Непрочитанное сообщение rayder » 2012-08-20 23:25:59

может я неправильно понял. но что вы понимаете под
переменная $otvpr; или $_SESSION['name'] в post не заносится
?
Человеку свойственно ошибаться, но для нечеловеческих ляпов нужен компьютер.

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: php session трабла с переменной, переопределяется...

Непрочитанное сообщение QweЯty » 2012-08-20 23:39:16

я ее сам не заношу, по другому ее не занести вроде
типа что то

Код: Выделить всё

<form method='post'>
<input type='hidden' value='$_SESSION['name']' />
</form>
тогда ее в коде исходном видно будет....
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение