Серый_Ветер 4 Опубликовано 18 августа, 2012 имеем код на php вначале вытаскивание данных из бд потом сравнение, а потом отображение... по другому не могу сделать просто так вот из 4 переменных три идут в post одна остается типа для секурности и с ней сравнивается 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 - хромает секурность. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Серый_Ветер 4 Опубликовано 19 августа, 2012 UP's Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Серый_Ветер 4 Опубликовано 19 августа, 2012 (изменено) вопрос как бы в силе остается, если найду решение, сообщу... а так я на рекапчу перешел Предупреждение от модератора NewOff 4.17. Преждевременно поднимать темы, если с момента последней публикации не прошло 12 часа Изменено 19 августа, 2012 пользователем NewOff Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Серый_Ветер 4 Опубликовано 20 августа, 2012 почему это посчитали апом? я вроде как написал что перешел на рекапчу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DioNiR 0 Опубликовано 21 августа, 2012 проблема в переменной $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> Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Серый_Ветер 4 Опубликовано 21 августа, 2012 (изменено) при попытке поставить галочку вылетает 404 и ссылка становится http://10.10.2.86/test/java script:void(0); нашел причину, изменил java script на javascript и еще, все также... значение при сравнении уже не то что было, а новое, когда страница уже обновлена Изменено 21 августа, 2012 пользователем Серый_Ветер Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DioNiR 0 Опубликовано 22 августа, 2012 если ты хочешь что бы при обращении на другую страницу оставались старые данные в переменой, то без сессий тут никак. Можно конечно данные в файл записать или в бд или гетом передать, ещё есть ajax да много чего ещё есть... Но я бы выбрал именно сессии Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Серый_Ветер 4 Опубликовано 22 августа, 2012 если ты хочешь что бы при обращении на другую страницу оставались старые данные в переменой, то без сессий тут никак. Можно конечно данные в файл записать или в бд или гетом передать, ещё есть ajax да много чего ещё есть... Но я бы выбрал именно сессии да я без проблем, но у меня даже в сессии это обновляется.... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты