|
|
|
| Подскажите как сделать,чтобы внесенные данные оставались в форме после проверки на правильность ввода.
Я делаю так :
if (!ctype_alnum($login) || strlen($login) < 4 || strlen($login) > 16)
{
echo "<font color=red>Логин должен быть 4-16 символов (буквы и цифры).</font><br>";
$error = "yes";
}
elseif (!ctype_alnum($passwd1) || strlen($passwd1) < 6 || strlen($passwd1) > 12)
{
echo "<font color=red>Пароль должен быть 6-12 символов (буквы и цифры).</font><br>";
$error = "yes";
}
elseif ($passwd1 != $passwd2)
{
echo "<font color=red>Пароль и его подтверждение не совпадают!</font><br>";
$error = "yes";
}
//// тут еще всякие проверки и программный код
if ($error == "")
{
///////// опять код
}
else
{
include("inc/registration_form.php");
}
Подскажите как исправить,пожалуйста :) | |
|
|
|
|
|
|
|
для: Super[MAN]
(17.06.2008 в 10:38)
| |
<input type="text" name="username" value="<?php echo htmlspecialchars($login)?>" />
//и в начале скрипта $login = '';
|
| |
|
|
|
|
|
|
|
для: root
(17.06.2008 в 10:56)
| | Спасибо! Все зароботало! :)
Но у меня есть еще одна проблема. Она заключается в следующем. При выполнение данного скрипта происходит 2 проверки.
Одна - if ($res = mysql_query("SELECT * FROM users WHERE login='$login' AND passwd1='$passwd1' AND status='admin'"))
Вторая - if ($res2 = mysql_query("SELECT * FROM users WHERE login='$login' AND passwd1='$passwd1' AND status='user'"))
И результат выдается для 2 проверок. Подскажите как переделать чтобы все работало как надо.
<?
session_start();
include("main.php");
include("inc/header.php");
if( (isset($_POST['submit_login'])) && ($_POST['submit_login'] <> "") )
{
$db = @mysql_connect($db_location,$db_user,$db_passwd);
mysql_select_db($db_name, $db);
if (!$db)
{
echo( "<P>В настоящий момент сервер базы данных не доступен,
поэтому корректное отображение страницы невозможно.</P>");
exit();
}
$login = $_POST['login'];
$passwd1 = $_POST['passwd1'];
$_SESSION['login'] = $login;
$_SESSION['passwd1'] = $passwd1;
if( empty($login) )
{
echo "<br><b>Введите пожалуйста Ваш Логин.</b>";
$error="yes";
}
if( empty($passwd1) )
{
echo "<br><b>Введите пожалуйста Ваш Пароль.</b>";
$error="yes";
}
if( $error != "yes")
{
if ($res = mysql_query("SELECT * FROM users WHERE login='$login' AND passwd1='$passwd1' AND status='admin'"))
{
if(mysql_num_rows($res) != 0)
{
echo "<br><b>Вы успешно авторизованы под Логином ".$login."</b>";
echo "<br><b>Вы являетесь администратором этой БД</b><p>";
echo "<Span Class=blue>Зарегистрировать нового пользователя</SPAN>";
include("inc/registration_form.php");
include("inc/logout_form.php");
}
else
{
echo "<br><b>Авторизация не успешна! 1</b> Попробуйте еще раз.";
include("inc/login_form.php");
}
}
if ($res2 = mysql_query("SELECT * FROM users WHERE login='$login' AND passwd1='$passwd1' AND status='user'"))
{
if(mysql_num_rows($res2) != 0)
{
echo "<br><b>Вы успешно авторизованы под Логином ".$login."</b>";
include("inc/user.php");
include("inc/logout_form.php");
}
else
{
echo "<br><b>Авторизация не успешна! 2</b> Попробуйте еще раз.";
include("inc/login_form.php");
}
}
}
else
{
echo "<br><b>Авторизация не успешна! 3</b> Попробуйте еще раз.";
include("inc/login_form.php");
}
}
include("inc/footer.php");
?> | |
|
|
|
|
|
|
|
для: Super[MAN]
(17.06.2008 в 14:55)
| | 1.
SELECT * FROM users WHERE login='$login' AND passwd1='$passwd1';
| если всё ОК проверяете статус - юзер или админ.
2. обрабатывайте входящую от пользователя информацию с помощью mysql_escape_string()
P.S.
Используйте тэги для выделения текста: в данном случае code | |
|
|
|
|
|
|
|
для: Root
(17.06.2008 в 15:12)
| | У меня есть и другой вариант,но здесь тот же результат :(
Помогите :)
<?
session_start();
include("main.php");
include("inc/header.php");
if( (isset($_POST['submit_login'])) && ($_POST['submit_login'] <> "") )
{
$db = @mysql_connect($db_location,$db_user,$db_passwd);
mysql_select_db($db_name, $db);
if (!$db)
{
echo( "<P>В настоящий момент сервер базы данных не доступен,
поэтому корректное отображение страницы невозможно.</P>");
exit();
}
$login = $_POST['login'];
$passwd1 = $_POST['passwd1'];
/*$_SESSION['login'] = $login;
$_SESSION['passwd1'] = $passwd1;*/
if( (empty($login)) or (empty($passwd1)) )
{
echo "<br><b>Введите пожалуйста Ваши Логин и Пароль.</b>";
include("inc/login_form.php");
}
else
{
if ($res = mysql_query("SELECT * FROM users WHERE login='$login' AND passwd1='$passwd1'"))
{
if(mysql_num_rows($res) != 0)
{
$_SESSION['login'] = "$login";
$_SESSION['passwd1'] = "$passwd1";
if ($res1 = mysql_query("SELECT * FROM users WHERE login='$login' AND passwd1='$passwd1' status='admin'"))
{
echo "<br><b>Вы успешно авторизованы под Логином ".$login."</b>";
echo "<br><b>Вы являетесь администратором этой БД</b><p>";
echo "<Span Class=blue>Зарегистрировать нового пользователя</SPAN>";
include("inc/registration_form.php");
include("inc/logout_form.php");
}
if ($res1 = mysql_query("SELECT * FROM users WHERE login='$login' AND passwd1='$passwd1' status='user'"))
{
echo "<br><b>Вы успешно авторизованы под Логином ".$login."</b>";
include("inc/user.php");
}
}
else
{
echo "<br><b>Авторизация не успешна! ggfsddfsf</b> Попробуйте еще раз.";
include("inc/login_form.php");
}
}
else
{
echo "<br><b>Авторизация не успешна!</b> Попробуйте еще раз.";
include("inc/login_form.php");
}
}
}
include("inc/footer.php");
?>
|
| |
|
|
|
|
|
|
|
для: Super[MAN]
(17.06.2008 в 15:22)
| | У меня есть и другой вариант,но здесь тот же результат :(
это какой?
<?
session_start();
include("main.php");
include("inc/header.php");
if( (isset($_POST['submit_login'])) && ($_POST['submit_login'] <> "") ) {
$db = @mysql_connect($db_location,$db_user,$db_passwd);
mysql_select_db($db_name, $db);
$login = $_POST['login'];
$passwd1 = $_POST['passwd1'];
if( (empty($login)) or (empty($passwd1)) ) {
echo "<br><b>Введите пожалуйста Ваши Логин и Пароль.</b>";
include("inc/login_form.php");
} else {
$res = mysql_query("SELECT * FROM users WHERE login='$login' AND passwd1='$passwd1'"))
if(mysql_num_rows($res) != 0) {
$_SESSION['login'] = "$login";
$_SESSION['passwd1'] = "$passwd1";
$row = mysql_fetch_row($res);
if($row['status'] == 'admin'){
//handle admin
} else {
//handle user
}
}
include("inc/footer.php");
?>
|
| |
|
|
|
|
|
|
|
для: Root
(17.06.2008 в 15:38)
| | Спасибо!!! А то совсем запутался в своих if-else :) | |
|
|
|
|
|
|
|
для: Super[MAN]
(17.06.2008 в 15:43)
| | Попробовал как вы посоветовали,но скрипт почему то всегда выполняет вот этот кусок:
else
{
echo "<br><b>Вы успешно авторизованы под Логином ".$login."</b>";
echo "<br><b>Вы являетесь администратором этой БД</b><p>";
echo "<Span Class=blue>Зарегистрировать нового пользователя</SPAN>";
include("inc/registration_form.php");
include("inc/logout_form.php");
}
|
В независимости от того status user или admin
<?
session_start();
include("main.php");
include("inc/header.php");
if( (isset($_POST['submit_login'])) && ($_POST['submit_login'] <> "") )
{
$db = @mysql_connect($db_location,$db_user,$db_passwd);
mysql_select_db($db_name, $db);
if (!$db)
{
echo( "<P>В настоящий момент сервер базы данных не доступен,
поэтому корректное отображение страницы невозможно.</P>");
exit();
}
$login = $_POST['login'];
$passwd1 = $_POST['passwd1'];
if( empty($login) )
{
echo "<br><b>Введите пожалуйста Ваш Логин.</b>";
$error="yes";
}
elseif( empty($passwd1) )
{
echo "<br><b>Введите пожалуйста Ваш Пароль.</b>";
$error="yes";
}
if( $error == "")
{
sql="SELECT * FROM users WHERE login='$login' AND passwd1='$passwd1'";
$result=mysql_query($sql) or die("Запрос не успешен");
$res=mysql_num_rows($result);
if ($res != 0)
{
$_SESSION['login'] = "$login";
$_SESSION['passwd1'] = "$passwd1";
$row = mysql_fetch_row($res);
if($row['status'] == "user")
{
echo "<br><b>Вы успешно авторизованы под Логином ".$login."</b>";
include("inc/user.php");
}
else
{
echo "<br><b>Вы успешно авторизованы под Логином ".$login."</b>";
echo "<br><b>Вы являетесь администратором этой БД</b><p>";
echo "<Span Class=blue>Зарегистрировать нового пользователя</SPAN>";
include("inc/registration_form.php");
include("inc/logout_form.php");
}
}
else
{
echo "<br><b>Авторизация не успешна! ggfsddfsf</b> Попробуйте еще раз.";
include("inc/login_form.php");
}
}
else
{
echo "<br><b>Авторизация не успешна!</b> Попробуйте еще раз.";
include("inc/login_form.php");
}
}
include("inc/footer.php");
?>
|
| |
|
|
|