Например есть вот такая форма в index.php
<form action="obrab.php" method="post">
<label>Ваш логин:<br></label>
<input name="login" type="text" size="10" maxlength="10">
<input type="submit" name="submit" value="Ввод">
и обработчик obrab.php
if (strlen($login) < 4 or strlen($login) > 10) {
exit ("Логин должен должен быть не меньше 4 символов и не больше 10.");
}
Как сделать так чтобы когда условие не соблюдается, скрипт останавливался, НО текст ошибки показывался в индексе а не обработчике.
Спустя 7 минут, 41 секунда (13.01.2012 - 15:17) Adil написал(а):
в обработчике сделай:
$error = 'Логин должен должен быть не меньше 4 символов и не больше 10.';
А на странице <?=$error?>
$error = 'Логин должен должен быть не меньше 4 символов и не больше 10.';
А на странице <?=$error?>
Спустя 21 минута, 8 секунд (13.01.2012 - 15:38) Armada написал(а):
Тоесть в обработчике так?
И
exit ($error = 'Логин должен должен быть не меньше 4 символов и не больше 10.');
И
<?
=$error //что это значит? имею ввиду = перед переменной, строго не судите, новичок.
?>
Спустя 9 минут, 21 секунда (13.01.2012 - 15:47) nugle написал(а):
Armada
<?=$error;?> тоже самое что и <?php echo $error; ?>
<?=$error;?> тоже самое что и <?php echo $error; ?>
Спустя 33 минуты, 19 секунд (13.01.2012 - 16:20) Armada написал(а):
nugle
Аа, ясно ) Не работает только.
Аа, ясно ) Не работает только.
Спустя 7 минут, 4 секунды (13.01.2012 - 16:27) nugle написал(а):
потому что не так
а просто
exit ($error = 'Логин должен должен быть не меньше 4 символов и не больше 10.');
а просто
$error = 'Логин должен должен быть не меньше 4 символов и не больше 10.';
Спустя 17 минут, 6 секунд (13.01.2012 - 16:45) Armada написал(а):
Не понял...
Если так,
то скрип идет выполняться дальше, а там дополнительные проверки, стрипслеши итд и ничего не получается.
Если так,
то выходит пустой obrab.php
Если так,
if (strlen($login) < 4 or strlen($login) > 10) {
$error = 'Логин должен должен быть не меньше 4 символов и не больше 10.';
}
то скрип идет выполняться дальше, а там дополнительные проверки, стрипслеши итд и ничего не получается.
Если так,
if (strlen($login) < 4 or strlen($login) > 10) {
$error = 'Логин должен должен быть не меньше 4 символов и не больше 10.';
exit ();
}
то выходит пустой obrab.php
Спустя 12 минут, 57 секунд (13.01.2012 - 16:58) nugle написал(а):
а ты как возвращаешь результат в индекс?
Спустя 1 час, 24 минуты, 41 секунда (13.01.2012 - 18:22) Armada написал(а):
nugle
Вот, у меня тот же вопрос, как это сделать?)))
Вот, у меня тот же вопрос, как это сделать?)))
Спустя 10 минут, 16 секунд (13.01.2012 - 18:32) Игорь_Vasinsky написал(а):
В index.php в самом верху добавь
Там где хочешь вывести ошибку напиши
в обработчике
Работает так: в обработчике - если ошибка - переадресация на обработчик формируя GET переменную в url
В index.php проеряется есть ли в url $_GET['error'] - если есть то переменная $error заполняется текстом ошибки в тернарном операторе и ошибка выводиться.
<?php
$error = isset($_GET['error']) ? 'Логин должен должен быть не меньше 4 символов и не больше 10' : null;
?>
Там где хочешь вывести ошибку напиши
<?=$error;?>
в обработчике
if (strlen($login) < 4 or strlen($login) > 10) {
header("Location: /index.php?error=1");
}
Работает так: в обработчике - если ошибка - переадресация на обработчик формируя GET переменную в url
В index.php проеряется есть ли в url $_GET['error'] - если есть то переменная $error заполняется текстом ошибки в тернарном операторе и ошибка выводиться.
Спустя 1 минута, 12 секунд (13.01.2012 - 18:34) nugle написал(а):
Armada
через сессию можно или через гет, как написал Игорь
через сессию можно или через гет, как написал Игорь
Спустя 36 минут, 4 секунды (13.01.2012 - 19:10) Armada написал(а):
Игорь_Vasinsky
Отлично, тоже подходит, спасибо.
Последний вопрос, как безопаснее и через что сделали бы сами через GET или сессию?))
Отлично, тоже подходит, спасибо.
Последний вопрос, как безопаснее и через что сделали бы сами через GET или сессию?))
Спустя 7 минут, 36 секунд (13.01.2012 - 19:17) nugle написал(а):
Armada
ну я бы через гет не делал,
во-первых - сообщение не маленькое получиться, а если их больше будет?
а во-вторых, потому что гет можно подменить.
а если потом мешаться будет, то вначале делаешь вывод сессии, а потом сразу же удаляешь ее
ну я бы через гет не делал,
во-первых - сообщение не маленькое получиться, а если их больше будет?
а во-вторых, потому что гет можно подменить.
а если потом мешаться будет, то вначале делаешь вывод сессии, а потом сразу же удаляешь ее
Спустя 1 день, 3 часа, 6 минут, 5 секунд (14.01.2012 - 22:23) Armada написал(а):
ясно буду делать через сессии