Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите сделать форму логина
 
 автор: Dark-observer   (15.03.2006 в 18:14)   письмо автору
 
 

Хочу сделать форму авторизации, но не получается , скрипт даже не выполняет свои функции, помогите найти ошибку!
Вот мой скрипт:

<?
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();
}
}
?>

   
 
 автор: kasmanaft   (15.03.2006 в 19:30)   письмо автору
 
   для: 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() выполняется полюбой... попробуй без него (и еще там повыше есть... вобщем вобще без них попробуй)

   
 
 автор: Dark-observer   (15.03.2006 в 20:05)   письмо автору
 
   для: 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($nme0);       
       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 
"Ошибка идентификации: посетитель не зарегистрирован"
         }
           }      
         
?>

   
 
 автор: kasmanaft   (15.03.2006 в 20:15)   письмо автору
 
   для: Dark-observer   (15.03.2006 в 20:05)
 

а кто такой account.php? это что ли не этот скрипт?
(методом action - это интересно :))

а если это этот скрипт (по идеи как и должно быть) то правильнее было бы заменить строку
if (isset($submit)==0){
на
if (isset($_POST['submit'])==0){

так правильнее будет... а может быть это и есть ошибка... (ошибка, если выключен register_globals)

а скрипт выводит форму, когда нажмешь кнопку?

   
 
 автор: Dark-observer   (15.03.2006 в 20:42)   письмо автору
 
   для: kasmanaft   (15.03.2006 в 20:15)
 

account.php это аккуант пользователя куда он будет попадать после авторизации, я использую action="account.php", что бы он передал данные с index.php в account.php, но незнаю правильно ли это. По идеи он должен авторизоваться и попасть в аккуант пользователя, но этого не происходит. Я пробовал этот метод if (isset($_POST['submit'])==0){
Но все равно не происходит авторизация лиш только при нажатии переходит а аккуант, без ввода логина и пароля.
Я только изучаю PHP, извините если буду задавать глупые вопросы, как проверить включен register_globals, или если выключен, как его включить.
Подскажите!

   
 
 автор: kasmanaft   (15.03.2006 в 20:52)   письмо автору
 
   для: Dark-observer   (15.03.2006 в 20:42)
 

>Я только изучаю PHP, извините если буду задавать глупые вопросы
этъ ничего :) со всеми бывает...

вобщем так не пойдет... если в качестве экшн указывать скрипт account.php, то тогда и фвторизацию нужно запихать туда... потому как после нажатия кнопки, сейчас данные из формы до скрипта не доходят... они отправляются аккаунт.пхп (т.е. у загружается файл account.php - который ничего не выводит :)

вообще то говоря, просто так вам аккаунт сделать не получится (если только это не будет просто статическая страница... нужно использовать куки или же сессии. иначе придется производить авторизацию при каждом переходе....

а register_globals в таком случае ни причем...

   
 
 автор: Dark-observer   (15.03.2006 в 21:03)   письмо автору
 
   для: 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

   
 
 автор: kasmanaft   (15.03.2006 в 21:08)   письмо автору
 
   для: Dark-observer   (15.03.2006 в 21:03)
 

забыл завершить команду....
$query = "SELECT login, password FROM user WHERE name='".$_POST['login']."';";


в смысле точку с запятой :)

   
 
 автор: Dark-observer   (15.03.2006 в 21:23)   письмо автору
 
   для: 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($nme0);       
       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 
"Ошибка идентификации: посетитель не зарегистрирован"
         }
             
         
?>

   
 
 автор: kasmanaft   (15.03.2006 в 21:31)   письмо автору
 
   для: Dark-observer   (15.03.2006 в 21:23)
 

а $_POST['login'] существует? попробуй выведи его перед запросом...
можешь попробовать свой запрос в самой mysql выполнить... лежит примерно здесь \usr\local\mysql4\bin

ладно.. извини, а я пошел... спать пора :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования