За последние 24 часа нас посетили 17576 программистов и 1724 робота. Сейчас ищут 1574 программиста ...

Есть ли ошибка?

Тема в разделе "PHP и базы данных", создана пользователем NIKO, 22 июн 2006.

  1. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    Есть ли ошибка в этих кодах?
    login.php
    PHP:
    1. <?php
    2. // we must never forget to start the session
    3.  
    4. $errorMessage = '';
    5. if (isset($_POST['txtUserId']) && isset($_POST['txtPassword'])) {
    6.     include 'config.php';
    7.     include 'opendb.php';
    8.      
    9.     $userId   = $_POST['txtUserId'];
    10.     $password = $_POST['txtPassword'];
    11.     $email = "";
    12.      
    13.     // check if the user id and password combination exist in database
    14.     $sql = "SELECT user_id  
    15.            FROM tbl_auth_user
    16.            WHERE user_id = '$userId' AND user_password = PASSWORD('$password')";
    17.      
    18.     $result = mysql_query($sql) or die('Query failed. ' . mysql_error());
    19.     $sql1="SELECT user_id FROM tbl_auth_user WHERE  email='$email'";
    20.     $r=mysql_query($sql1) or die('Query failed. ' . mysql_error());  
    21.     $_SESSION['username']= $userId;
    22.     $_SESSION['password']= $password;
    23.     $_SESSION['email']= $email;
    24.     if (mysql_num_rows($result) == 1) {
    25.         // the user id and password match,  
    26.         // set the session
    27.         $_SESSION['db_is_logged_in'] = true;
    28.          
    29.         // after login we move to the main page
    30.         header('Location: main.php');
    31.         exit;
    32.     } else {
    33.         $errorMessage = 'Sorry, wrong user id / password';
    34.     }
    35.      
    36.     include 'closedb.php';
    37. }
    38. ?>
    39. <html>
    40. <head>
    41. <title>Basic Login</title>
    42. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    43. </head>
    44.  
    45. <body>
    46. <?php
    47. if ($errorMessage != '') {
    48. ?>
    49. <p align="center"><strong><font color="#990000"><?php echo $errorMessage; ?></font></strong></p>
    50. <?php
    51. }
    52. ?>
    53. <form action="" method="post" name="frmLogin" id="frmLogin">
    54.  <table width="400" border="1" align="center" cellpadding="2" cellspacing="2">
    55.   <tr>
    56.    <td width="150">User Id</td>
    57.    <td><input name="txtUserId" type="text" id="txtUserId"></td>
    58.   </tr>
    59.   <tr>
    60.    <td width="150">Password</td>
    61.    <td><input name="txtPassword" type="password" id="txtPassword"></td>
    62.   </tr>
    63.   <tr>
    64.    <td width="150">&nbsp;</td>
    65.    <td><input name="btnLogin" type="submit" id="btnLogin" value="Login"></td>
    66.   </tr>
    67.  </table>
    68. </form>
    69. </body>
    70. </html>
    main.php

    PHP:
    1. <?php
    2. // like i said, we must never forget to start the session
    3.  
    4. // is the one accessing this page logged in or not?
    5. if (!isset($_SESSION['db_is_logged_in']) || $_SESSION['db_is_logged_in'] !== true) {
    6.     // not logged in, move to login page
    7.     header('Location: login.php');
    8.     exit;
    9. }
    10.  
    11. ?>
    12. <html>
    13. <head>
    14. <title>Main User Page</title>
    15. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    16. </head>
    17.  
    18. <body>
    19. <p>This is the main application page. You are free to play around here since you  
    20.  are an autenthicated user :-) </p>
    21. <p><?php echo $_SESSION['username'].$_SESSION['password'].$_SESSION['email'];?></p>
    22. <p><a href="logout.php">Logout</a> </p>
    23. </body>
    24. </html>

    Не отображает $_SESSION['email'];


    и кстати, что должно быть в файле closedb.php
     
  2. Diver

    Diver Активный пользователь

    С нами с:
    19 фев 2006
    Сообщения:
    144
    Симпатии:
    0
    Адрес:
    Владивосток
    у тебя $email = ""; с фига он должен где-то отображаться?
     
  3. olo

    olo Активный пользователь

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    1. Нафига второй запрос, к тому же такой кривой? Если емайл не передается в форме, считывай его из базы, в первом запросе где проверяеш логин и пароль
    2. closedb.php - ета твои странные придумки или ты подсмотрел этот кусок в какойто странной программе. Возможно в ней оно и было актуально, но не в твоем случае
     
  4. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    Знаете почему второй запрос, потому что если поместить емейл в первом типо
    PHP:
    1. <?php   $sql = "SELECT user_id  
    2.            FROM tbl_auth_user  
    3.            WHERE user_id = '$userId' AND user_password = PASSWORD('$password') AND email = '$email'";
    4.      
    5.     $result = mysql_query($sql) or die('Query failed. ' . mysql_error());
    6. ?> (не только это а весь код с таким исходом...)
    7.  
    Тупо не заходит в аккаунт...'Sorry, wrong user id / password'
     
  5. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    И кстати Diver $email=""; а потом после запроса должно минятся на то, что в базе, а уж потом на $_SESSION['email'];
     
  6. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    Ребят а может стоит напистать
    <?php
    $_SESSION['email'] =& '$email';
    ?>(не только это а весь код с таким исходом=))

    стоит???
     
  7. olo

    olo Активный пользователь

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    Ты конечно извини, но памойму тебе еще рано программы писать. Поучи-ка матчасть.
     
  8. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Код (Text):
    1.    $sql1="SELECT user_id FROM tbl_auth_user WHERE  email='$email'";
    2.    $r=mysql_query($sql1) or die('Query failed. ' . mysql_error());    
    3.     $_SESSION['username']= $userId;
    4.    $_SESSION['password']= $password;
    5.    $_SESSION['email']= $email;
    Ничего не понятно, что такой $userId, $password? Откуда? Запрос тут причем?

    http://www.php.net/mysql — курить и курить мануал.
     
  9. alemiks

    alemiks Активный пользователь

    С нами с:
    22 июн 2006
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Voronezh - Novgorod the Great
     
  10. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    А это не я написал....это я скачал типо скрипт готовый!
     
  11. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    промолчал бы лучше.
    И что тогда от нас нужно?
     
  12. Diver

    Diver Активный пользователь

    С нами с:
    19 фев 2006
    Сообщения:
    144
    Симпатии:
    0
    Адрес:
    Владивосток
    и в помине такого нет
     
  13. Diver

    Diver Активный пользователь

    С нами с:
    19 фев 2006
    Сообщения:
    144
    Симпатии:
    0
    Адрес:
    Владивосток
    а с чего ты взял что это php а не перл например?
     
  14. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    А потому-что я скачал PHP скрипт в разделе PHP.... а не в разделе Perl
    2vasa_c
    А че молчать то?
     
  15. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Diver, это не vasa_c писал.
     
  16. Diver

    Diver Активный пользователь

    С нами с:
    19 фев 2006
    Сообщения:
    144
    Симпатии:
    0
    Адрес:
    Владивосток
    vasa_c
    а это проблемы форума