За последние 24 часа нас посетили 18514 программистов и 1708 роботов. Сейчас ищут 863 программиста ...

Редирект после авторизации

Тема в разделе "PHP для новичков", создана пользователем almen, 7 июл 2008.

  1. almen

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

    С нами с:
    26 сен 2006
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Germany
    День добрый,
    обычная схема:
    юзер проходит регистрацию, вносится в БД, получает ссылку для активации, входит под своим логином и после зтого должен перебрасываться на свой уникальный URL. Все работает до момента отправления юзера на свой уникальный вебадрес.

    Вот скрипт login.php

    Код (Text):
    1.  
    2.  
    3.  
    4.  
    5.  
    6. <?
    7. session_start();
    8. $dbuser= "bla";
    9. $dbpass= "bla";
    10. if (isset($_POST['login'])) {
    11.    $passwordHash = md5($_POST['password']);
    12.    $login = $_POST['login'];
    13.  
    14.    if (!preg_match("/^\w{3,}$/", $login)) {
    15.       die('Login ist falsch!');
    16.    }
    17.    $link = mysql_connect('localhost',$dbuser,$dbpass);
    18.    if (!$link) {
    19.       die('Keine Verbindung mit DB!');
    20.    }else{
    21.       mysql_select_db('almen_blog', $link);
    22.       $res = mysql_query("SELECT status FROM users WHERE login='$login'", $link);
    23.    
    24.       if (mysql_num_rows($res) < 1) {
    25.          mysql_close($link);
    26.          die('Ihre Angaben zum Login sind ung&uuml;ltig.<br>
    27. Bitte pr&uuml;fen Sie die Schreibweise Ihres Benutzernamens und Ihres Passwortes und versuchen Sie es erneut.<br>
    28. Achten Sie beim Passwort auch auf Gro&szlig;- und Kleinschreibung oder darauf, ob versehentlich die Feststelltaste gedr&uuml;ckt ist.');
    29.       }
    30.  
    31.       if (mysql_result($res, 0) != 1) {
    32.          mysql_close($link);
    33.          die('Der Login wurde nicht aktiviert!');
    34.       }
    35.  
    36.        
    37.       $_SESSION['user'] = $login;
    38.       mysql_close($link);
    39.    
    40.       header ("location: userpage.php");
    41.  
    42.    }
    43. }
    44. ?>

    а это userpage.php



    Код (Text):
    1.  
    2.  
    3. <?php
    4. session_start();
    5. include ("blocks/bd.php");
    6. if (!isset($_SESSION['login'])) {
    7.     header ("location: index.php");
    8.     exit();
    9. }else {
    10.     $login = $_SESSION['login'];
    11.     mysql_select_db('almen_blog', $link);
    12.     $res = mysql_query("SELECT * FROM users WHERE login='$login'", $link);
    13.     if (mysql_num_rows($res) < 1) {
    14.         // raz takogo usera net v BD, no on est' v sessii - zna4it 4to-to ne tak (haker?) -
    15.         // udalyaem ego iz sessii pereadresuem na glavnuyu
    16.         mysql_close($link);
    17.         unset($_SESSION['login']);
    18.         header ("location: index.php");
    19.         exit();
    20.     }else {      
    21.         $myrow = mysql_fetch_array($res);
    22.         // nije raspe4ativaem li4nuyu infu usera is massiva $myrow
    23.     }
    24. }
    25. ?>
    Получаю такую ошибку:



    Код (Text):
    1.  
    2. Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\portal\userpage.php on line 9
    3.  
    4. Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\portal\userpage.php on line 10
    5.  
    6. Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\portal\userpage.php on line 13
    7.  
    8. Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\portal\userpage.php:9) in C:\xampp\htdocs\portal\userpage.php on line 15

    Кажется запутался в login.php при соединении с БД. Помогите переписать скрипт login.php, заменив
    Код (Text):
    1. $dbuser= "bla";
    2. $dbpass= "bla";
    и
    Код (Text):
    1. $link = mysql_connect('localhost',$dbuser,$dbpass);
    2.    if (!$link) {
    3.       die('Keine Verbindung mit DB!');
    4.    }else{
    5.       mysql_select_db('almen_blog', $link);
    на
    Код (Text):
    1. include ("blocks/bd.php");
    [/php]
     
  2. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
  3. Johnatan

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

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Прочитал несколько раз.
    Так и не понял в чём проблема.
    У автора отсутствует клавиатура? Что значит "помогите переписать"? Или просто кусок когда во внешний файл не можем вынести?