Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   PHP (https://forum.zone-game.info/forumdisplay.php?f=125)
-   -   Вывод ошибок (https://forum.zone-game.info/showthread.php?t=13612)

flashboom777 15.04.2011 13:23

Вывод ошибок
 
ТАкая проблемма. Сделал скрипт регистрации, который естественно выдает ошибку в случае некорректного заполнения формы/либо "акаунт уже существует" и т. д. Но вот проблемма. У меня скрипт регистрации и html форма находятся в одном файле, так как мне надо что вывод ошибки происходил на этой же странице,а не бросало на др. Но если ошибка выходит, то при обновлении страницы она так же остается, как сделать так чтоб при обновлении автоматов все ошибки исчезали со страницы (а то некрасиво полцается). Что нужно сделать , функцию очистики кеша при обьновлении или что? Но если такое будет , то получается что и функции регистрации не будет правельно работать, обьясниет как сделатьв се корректно.

Добавлено через 22 минуты
__________ап

Добавлено через 30 минут
Хорошо немногопереформулирую вопрос, как обнулить переменный $POST. Скрипт и html находятся на одной странице.

Navvy 15.04.2011 14:06

Re: Вывод ошибок
 
Было бы не плохо показать код.

PROGRAMMATOR 15.04.2011 14:09

Re: Вывод ошибок
 
Обнулить $_POST можно отправив заголовок location на эту же страницу.

flashboom777 15.04.2011 14:41

Re: Вывод ошибок
 
ВОт вобщем код:

PHP код:

<?
global $pass;
global 
$email;
global 
$login;
global 
$password;
global 
$MinLength;
$pass PassEncode($l2password1);
$email CheckEmail($l2email);
$login CheckLogin($l2account);
$password CheckPass($l2password1);
$MinLength 4;
$err[0] = "Заполнены не все поля!";
$err[1] = "Пароли не совпадают!";
$err[2] = "Пароль не должен совпадать с логином!";
$err[3] = "Такой аккаунт уже существует!";
$err[4] = "Поздравляем! Вы успешно зарегистрировались!";
$err[5] = "E-mail введен не верно!";
$err[6] = "Логин должен состоять из латинские букв и цифры!";
$err[7] = "Пароль должен состоять из латинские букв и цифры!";
$err[8] = "Минимальное кол-во символов логина должно составлять 5!";
$err[9] = "Минимальное кол-во символов пароля должно составлять 5!";
$err[10] = "Вы не согласились с правилами игры!";
$link = @mysql_connect('localhost''root''root') or die("Извените за неудобства. Сервис временно не работает. Возможно перезагружается серверная машина.");
mysql_select_db('l2jdb'$link);
$query "INSERT INTO accounts (login, password, l2answer, l2question, l2email) VALUES ('$l2account','$pass','$l2question','$l2answer','$l2email')";
$result mysql_query("SELECT * FROM accounts WHERE login='$l2account'"$link);
$resLogin = @mysql_result($result0);



if (
$_POST) {
//function reg($l2account, $l2password1, $l2password2, $l2email, $l2question, $l2answer, $rules) {
if ($l2account == Null || $l2password1 == Null || $l2password2 == Null || $l2email == Null || $l2question == Null || $l2answer == Null) {
output_err(0);
//echo "Заполнены не все поля!";
   
}
elseif (
$l2password1!=$l2password2) {
output_err(1);
//echo "Пароли не совпадают!";
   
}
elseif (
$l2account==$l2password1) {
output_err(2);
//echo "Пароль не должен совпадать с логином!";
   
}
elseif (
$email != true) {
output_err(5);
//echo "E-mail введен не верно!";
   

elseif (
$login != true) {
output_err(6);
//echo "Логин должен состоять из латинские букв и цифры!";
   
}
elseif (
$password != true) {
output_err(7);
//echo "Пароль должен состоять из латинские букв и цифры!";
   
}
elseif (
strlen($l2account) < $MinLength || strlen($l2account) == $MinLength) {
output_err(8);
//echo "Минимальное кол-во символов логина должно быть 5!";
   

elseif (
strlen($l2password1) < $MinLength || strlen($l2password1) == $MinLength) {
output_err(9);
//echo "Минимальное кол-во символов пароля должно быть 5!";
   

elseif (
$rules != true) {
output_err(10);
//echo "Вы не согласились с правилами игры!";
   
}
elseif (
$l2account==$resLogin) {
output_err(3);
//echo "Такой аккаунт уже существует!";
   
}
   else {
            
mysql_select_db('l2jdb'$link);
            
PassEncode($l2password1);
            
mysql_query($query$link);
            @
mysql_close();
            
output_err(4);
            
//echo "Поздравляем! Вы успешно зарегистрировались!"; 
        
}
}   
// Конец фун-ции reg()


?>



<?
function CheckEmail($email) {
        if (
ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+' '@' '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.' '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$'$email))
            return 
true;
        return 
false;
}

function 
CheckLogin($login) {
        if (
ereg('[0-9A-Za-z]'$login))
            return 
true;
        return 
false;
}

function 
CheckPass($password) {
        if (
ereg('[0-9A-Za-z]'$password))
            return 
true;
        return 
false;
}

function 
PassEncode($pass) {
         return 
base64_encode(pack('H*'sha1(utf8_encode($pass))));
}
?>


<?
function output_err($num)
{
global 
$err;
?>
<FIELDSET>
<legend><font color="#ff0000">Сообщение</font></legend>
<font><?=$err[$num];?><font>
</FIELDSET>
<br>
<?
}
?>




<form type="hidden" onSubmit="javascript: return validate_form()" method="POST" action="/test/index.php">
<!--
Выбор сервера
<SELECT>
        <OPTION name="l2ground">Ground</OPTION>
        <OPTION name="l2wytrel">Wytrel</OPTION>
</SELECT>
<br><br>
-->
Логин:
<input type="text" name="l2account" maxlength="14" class="input"/><br><br>
Пароль:
<input type="password" name="l2password1" maxlength="16" class="input"/><br><br>
Повторите пароль:
<input type="password" name="l2password2" maxlength="16" class="input"/><br><br>
Электронная почта:
<input type="text" name="l2email" maxlength="64" class="input"/><br><br>
Секретный вопрос:
<input type="text" name="l2question" maxlength="64" class="input"/><br><br>
Ответ на вопрос:
<input type="text" name="l2answer" maxlength="64" class="input"/><br><br>
<input type="checkbox" name="rules"> Я согласен с <a STYLE="color: blue" href="http://site.ru/rules" target="_blank">правилами</a> игры.<br><br>
<input type="hidden" name="action" value="submitted" />
<input type="submit" name="subm" onclick="javascript: return validate_form()" value="Отправить"/><br>
</form>


P.S. в спойлер не мог засунуть, че-то все кнопки не-активные((

Добавлено через 1 минуту
Загрузите это на свой локальный веб-сервер, и скажите мне как сделать так, чтоб после обновления страницы убирались все ошибки.

"Обнулить $_POST можно отправив заголовок location на эту же страницу." - вот тут поподробнее, как сделать.

Добавлено через 4 часа 32 минуты
____________ап


Текущее время: 12:37. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot