Проблема С session_start();

Discussion in 'PHP' started by Micr0b, 19 Apr 2007.

  1. Micr0b

    Micr0b Elder - Старейшина

    Joined:
    14 Jan 2006
    Messages:
    223
    Likes Received:
    168
    Reputations:
    26
    У меня такой вопрос, я хочу передать session_start(); в файл index.php,
    параметеры login i id. Но я немогу никак етого зделать =( видимо знаний не хватает.
    Все бы было супер если заменить
    Code:
    <form method="POST" action="<?=$_SERVER['PHP_SELF'];?>">
    на
    Code:
    <form method="POST" action="index.php">
    но тогда нет поверки login i pass(((.
    Может я чот не верно делаю, может все нужно зделать по другому.
    Если есть у вас время помогите...


    #################################
    index.php
    Code:
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <LINK href="stule.css" type=text/css rel=STYLESHEET>
    
    <?php
    include("config.php");
    
    $link = mysql_connect($dbhost, $dbuser, $dbpassword);
    mysql_select_db($dbname, $link);
    $result=mysql_query("SELECT id, login FROM swat WHERE login='$login' ", $link);
    
    echo "=> $login <=";
    
    echo ("<table border='1'>");
    echo ("<tr><td><b>ID</b></td><td><b>Логин</b></td></tr>");
    while ($row=mysql_fetch_array($result)){
    echo "<tr><td>".$row['id']."</td><td>".$row['login']."</td></tr>";
    }
    echo "</table>";
    
    mysql_close($link);
    ?>
    
    #################################
    vhod.php
    Code:
    <?PHP
    include("config.php");
    // Подключаемся к mysql серверу
    $link = mysql_connect($dbhost, $dbuser, $dbpassword) or die("Не могу соединиться");
    // Выбираем нашу базу данных
    mysql_select_db($dbname, $link) or die("Ошибка запроса");
    
    $errors = array(); // сюда пишем ошибки
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
       // получаем логин и пароль из формы:
       // проверку данных не делаю, чтобы не усложнять пример
       $login=addslashes($_POST['login']);
       $pass=md5($_POST['pass']);
       $sql="SELECT id FROM swat WHERE login='$login'AND pass='$pass'";
       $res=mysql_query($sql); // проверяем данные по БД
       if (!$res ||  mysql_num_rows($res)!=1){
           $errors['login']='Неправильно введен логин или пароль';
    } 
    
       if (sizeof($errors) == 0){
          // авторизация пройдена успешно
          $row = mysql_fetch_row($res);
          session_start();
          $_SESSION['id']=$row[0];
         // записываем в сессию идентификатор юзера
          header("Location: index.php?".SID);
          exit;
        }
    }
    // выводим форму
    ?>
    <form method="POST" action="<?=$_SERVER['PHP_SELF'];?>">
    <? if (sizeof($errors) > 0) { // выводи ошибки
    ?>
    <font color="#ff0000"><?=implode("<br>",$errors);?></font>
    <? } ?>
    <input type="text" name="login"> - логин<br>
    <input type="password" name="pass"> - пароль<br>
    <input type="submit"> </form>
    
     
    #1 Micr0b, 19 Apr 2007
    Last edited: 19 Apr 2007
  2. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    $_SESSION['login'] = 'login';
    в чем проблема?

    в каждом независимом файле должно быть прописано сессион_старт
    а во вход.пхп у тебя нету
     
    1 person likes this.
  3. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    тут экшен не нужен
    Code:
    <form method="POST">
    session_start() можно поместить в файл "config.php" который используется обоими скриптами.

    Просто "безопасный" фрагмент скрипта ;)
     
    #3 hidden, 19 Apr 2007
    Last edited: 20 Apr 2007
    2 people like this.
  4. Micr0b

    Micr0b Elder - Старейшина

    Joined:
    14 Jan 2006
    Messages:
    223
    Likes Received:
    168
    Reputations:
    26
    GreenBear - подставил не получилось.
    Я просто сверху добавил в индекс.пхп
    <? include("vhod.php"); ?> и все решылось, а сесию удалил