|
|
|
| Хочу сделать форму авторизации, но не получается , скрипт даже не выполняет свои функции, помогите найти ошибку!
Вот мой скрипт:
<?
if (isset($submit)==0){
?>
<form name="loginform" method="post" action="account.php">
<TD WIDTH=262 HEIGHT=271 background="images/m2.jpg"><div class="style4 style9" style="padding-left:15px;padding-top:17px ">Вход</div>
<div class="style10" style="padding-left:74px;padding-top:10px ">login:<strong style="padding-left:10px "><input name="login" type="text" style="width:100px;height:18px " size="20"></strong>
</div> <div class="style10" style="padding-left:50px;padding-top:2px ">password:<strong style="padding-left:10px "><input name="password" type="password" style="width:100px;height:18px "></strong><a class="style2" style="color:#0A2C50;text-decoration:none "><input type="submit" name="submit" value="GO"></a>
<?
}else{
include('config.php');
$dbcnx = @mysql_connect("$hostname", "$dbusername", "$dbpassword") OR DIE("Не могу создать соединение ");
exit();
mysql_select_db("$dbname") or die("Не могу выбрать базу данных ");
exit();
$query = "SELECT login, password FROM user WHERE name='".$_POST['login']."'";
$nme = mysql_query($query);
if(!$nme);
{
echo mysql_error();
echo "Ошибка выполнения запроса";
exit();
}
if(mysql_num_rows($nme) > 0)
{
$password = mysql_result($nme, 0);
if ($_POST['password'] == $password)
{
if(session_start())
{
$_SESSION['login'] = $_POST['login'];
$_SESSION['password'] = $_POST['password'];
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0'; URL='account.php'>
</HEAD><body>";
}
}
else
{
echo "Ошибка идентификации: неправильный пароль";
exit();
}
}
// Если в результате запроса не получено ни одной
// строки - посетитель с таким именем не зарегистрирован
else
{
echo "Ошибка идентификации: посетитель не зарегистрирован";
exit();
}
}
?> | |
|
|
|
|
|
|
|
для: Dark-observer
(15.03.2006 в 18:14)
| | заключи лучше код в операторы [cod e] [/cod e] а то читать сложно....
может быть ошибка здесь?
include('config.php');
$dbcnx = @mysql_connect("$hostname", "$dbusername", "$dbpassword") OR DIE("Не могу создать соединение ");
exit();
mysql_select_db("$dbname") or die("Не могу выбрать базу данных ");
exit();
по-моему exit() выполняется полюбой... попробуй без него (и еще там повыше есть... вобщем вобще без них попробуй) | |
|
|
|
|
|
|
|
для: kasmanaft
(15.03.2006 в 19:30)
| | Всеравно не работает, дело в том что при нажатии на кнопку он передает методм action на account.php, просто даже пароль не надо вводить, почему он не выводит что не введен логин или неправильно введен, не пойму!
<?
if (isset($submit)==0){
?>
<form name="loginform" method="post" action="account.php">
<TD WIDTH=262 HEIGHT=271 background="images/m2.jpg"><div class="style4 style9" style="padding-left:15px;padding-top:17px ">Вход</div>
<div class="style10" style="padding-left:74px;padding-top:10px ">login:<strong style="padding-left:10px "><input name="login" type="text" style="width:100px;height:18px " size="20"></strong>
</div> <div class="style10" style="padding-left:50px;padding-top:2px ">password:<strong style="padding-left:10px "><input name="password" type="password" style="width:100px;height:18px "></strong><a class="style2" style="color:#0A2C50;text-decoration:none "><input type="submit" name="submit" value="GO"></a>
</div>
<div style="padding-left:113px;padding-top:8px "><a href="#" class="style2" style="color:#0A2C50;text-decoration:none ">Forgot password</a></div>
<div style="padding-left:113px;padding-top:0px "><a href="signup.php" class="style2" style="color:#0A2C50;text-decoration:none ">Registration</a></div>
<?
}else{
include('config.php');
$dbcnx = @mysql_connect("$hostname", "$dbusername", "$dbpassword") OR DIE("Не могу создать соединение ");
mysql_select_db("$dbname") or die("Не могу выбрать базу данных ");
$query = "SELECT login, password FROM user WHERE name='".$_POST['login']."'";
$nme = mysql_query($query);
if(!$nme);
{
echo mysql_error();
echo "Ошибка выполнения запроса";
}
if(mysql_num_rows($nme) > 0)
{
$password = mysql_result($nme, 0);
if ($_POST['password'] == $password)
{
if(session_start())
{
$_SESSION['login'] = $_POST['login'];
$_SESSION['password'] = $_POST['password'];
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0'; URL='account.php'>
</HEAD><body>";
}
}
else
{
echo "Ошибка идентификации: неправильный пароль";
}
}
// Если в результате запроса не получено ни одной
// строки - посетитель с таким именем не зарегистрирован
else
{
echo "Ошибка идентификации: посетитель не зарегистрирован";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Dark-observer
(15.03.2006 в 20:05)
| | а кто такой account.php? это что ли не этот скрипт?
(методом action - это интересно :))
а если это этот скрипт (по идеи как и должно быть) то правильнее было бы заменить строку
if (isset($submit)==0){
на
if (isset($_POST['submit'])==0){
так правильнее будет... а может быть это и есть ошибка... (ошибка, если выключен register_globals)
а скрипт выводит форму, когда нажмешь кнопку? | |
|
|
|
|
|
|
|
для: kasmanaft
(15.03.2006 в 20:15)
| | account.php это аккуант пользователя куда он будет попадать после авторизации, я использую action="account.php", что бы он передал данные с index.php в account.php, но незнаю правильно ли это. По идеи он должен авторизоваться и попасть в аккуант пользователя, но этого не происходит. Я пробовал этот метод if (isset($_POST['submit'])==0){
Но все равно не происходит авторизация лиш только при нажатии переходит а аккуант, без ввода логина и пароля.
Я только изучаю PHP, извините если буду задавать глупые вопросы, как проверить включен register_globals, или если выключен, как его включить.
Подскажите! | |
|
|
|
|
|
|
|
для: Dark-observer
(15.03.2006 в 20:42)
| | >Я только изучаю PHP, извините если буду задавать глупые вопросы
этъ ничего :) со всеми бывает...
вобщем так не пойдет... если в качестве экшн указывать скрипт account.php, то тогда и фвторизацию нужно запихать туда... потому как после нажатия кнопки, сейчас данные из формы до скрипта не доходят... они отправляются аккаунт.пхп (т.е. у загружается файл account.php - который ничего не выводит :)
вообще то говоря, просто так вам аккаунт сделать не получится (если только это не будет просто статическая страница... нужно использовать куки или же сессии. иначе придется производить авторизацию при каждом переходе....
а register_globals в таком случае ни причем... | |
|
|
|
|
|
|
|
для: kasmanaft
(15.03.2006 в 20:52)
| | Вот эже лучше теперь вывело ошибку, что с sql запросом не так вроде правильно сделал?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''>'' at line 1Ошибка выполнения запроса
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\localhost\www\account.php on line 234 | |
|
|
|
|
|
|
|
для: Dark-observer
(15.03.2006 в 21:03)
| | забыл завершить команду....
$query = "SELECT login, password FROM user WHERE name='".$_POST['login']."';";
|
в смысле точку с запятой :) | |
|
|
|
|
|
|
|
для: kasmanaft
(15.03.2006 в 21:08)
| | Все равно вот это выдает:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''>'' at line 1Ошибка выполнения запроса
<?
include('config.php');
$dbcnx = @mysql_connect("$hostname", "$dbusername", "$dbpassword") OR DIE("Не могу создать соединение ");
mysql_select_db("$dbname") or die("Не могу выбрать базу данных ");
$query = "SELECT login, password FROM user WHERE name='".$_POST['login']."';";
$nme = mysql_query($query);
if(!$nme);
{
echo mysql_error();
echo "Ошибка выполнения запроса";
exit();
}
if(mysql_num_rows($nme) > 0)
{
$password = mysql_result($nme, 0);
if ($_POST['password'] == $password)
{
if(session_start())
{
$_SESSION['login'] = $_POST['login'];
$_SESSION['password'] = $_POST['password'];
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0'; URL='account.php'>
</HEAD><body>";
}
}
else
{
echo "Ошибка идентификации: неправильный пароль";
}
}
// Если в результате запроса не получено ни одной
// строки - посетитель с таким именем не зарегистрирован
else
{
echo "Ошибка идентификации: посетитель не зарегистрирован";
}
?>
|
| |
|
|
|
|
|
|
|
для: Dark-observer
(15.03.2006 в 21:23)
| | а $_POST['login'] существует? попробуй выведи его перед запросом...
можешь попробовать свой запрос в самой mysql выполнить... лежит примерно здесь \usr\local\mysql4\bin
ладно.. извини, а я пошел... спать пора :) | |
|
|
|