Проблема запуска сеанса

Статус
В этой теме нельзя размещать новые ответы.

Spitfire

Новичок
Проблема запуска сеанса

У меня такая проблема, взял скрипты с регистрацией, регистрация проходит успешно,
все юзеры добавляются в БД(MySQL). Cеанс для этого юзера запускается, дальше выхожу из
из этого сеанса. Теперь хочу войти обратно, запускаю специально скрипт Login, и дальше должен
попасть на страничку зарегистрированого юзера, но при проверки входа выводит ошибку из моего же скрипта.
Привожу пример этого скрипта(юзерская страничка), хотя тут всё правильно, я уверен, а в чём проблема я незнаю
буду благодарен если поможете:
PHP:
<?
require_once("site_fns.php"); // файл с функциями
session_start();

if ($username && $passwd)

{
    if (login($username, $passwd)) // эту функцию смотреть ниже
    {
      $valid_user = $username;
      session_register("valid_user");
    }
    else
    {
    
      echo "Вы неправильно ввели имя или пароль. 
            Повторите попытку.";                                  // вот это у меня появляется
      do_html_url("index.php", "На главную");             // хотя пароль я вводил правильно, всё правильно 
     exit;                                                                  // с чем это связано? не пойму. Помогите, плиз!!!
    }
}

check_valid_user(); // привожу эту функцию, после function login 

// меню для юзера
display_user_menu();
?>
Вот функция входа:
PHP:
<?
function login($username, $password)
// проверяем имя и пароль с БД
{
  // коннектимся к ДБ
  $conn = db_connect();
  if (!$conn)
    return 0;
  $result = mysql_query("select * from user
                         where username='$username'
                         and passwd = password('$password')");
  if (!$result)
     return 0;

  if (mysql_num_rows($result)>0)
     return 1;
  else
     return 0;
}
?>
PHP:
<?
function check_valid_user()
{
  global $valid_user;
  if (session_is_registered("valid_user"))
  {
      echo "Здраствуйте $valid_user.";
      echo "<br>";  }
  else
  { exit; }
} 
?>
 

baev

‹°°¬•
Команда форума
Это-то он написал:
echo "Вы неправильно ввели имя или пароль.
Повторите попытку."; // вот это у меня появляется
А вот, что там в файле site_fns.php, и откуда берутся $username && $passwd (register_globals — ??), и происходит ли соединение с базой — это, да, без телепатии не обойтись...
 

Spitfire

Новичок
Ладно, давайте по проще. Вот скрипты.
Сессия у меня не начинается, тоесть у меня не отображается сценарий
members_only.php для зарегистрированых пользователей.

authmain.php
PHP:
<?
session_start();

if ($userid && $password)
{
  // if the user has just tried to log in

  $db_conn = mysql_connect("localhost", "webauth", "webauth");
  mysql_select_db("auth", $db_conn);
  $query = "select * from auth "
           ."where name='$userid' "
           ." and pass=password('$password')";
  $result = mysql_query($query, $db_conn);
  if (mysql_num_rows($result) >0 )
  {
    // if they are in the database register the user id
    $valid_user = $userid;
    session_register("valid_user");
  }
}
?>
<html>
<body>
<h1>Home page</h1>
<? 

  if (session_is_registered("valid_user"))
  {
    echo "You are logged in as: $valid_user <br>";
    echo "<a href=\"logout.php\">Log out</a><br>";
  }
  else
  {
    if (isset($userid))
    {
      // if they've tried and failed to log in
      echo "Could not log you in<br>";       // выводится вот эта ошибка
    }
    else 
    {
      // they have not tried to log in yet or have logged out
      echo "You are not logged in.<br>";
    }

    // provide form to log in 
    echo "<form method=post action=\"authmain.php\">";
    echo "<table>";
    echo "<tr><td>Userid:</td>";
    echo "<td><input type=text name=userid></td></tr>";
    echo "<tr><td>Password:</td>";
    echo "<td><input type=password name=password></td></tr>";
    echo "<tr><td colspan=2 align=center>";
    echo "<input type=submit value=\"Log in\"></td></tr>";
    echo "</table></form>";
  }
?>
<br>
<a href="members_only.php">Members section</a>
</body>
</html>
members_only.php
PHP:
<?
  session_start();

  echo "<h1>Members only</h1>";

  // check session variable

  if (session_is_registered("valid_user"))
  {
    echo "<p>You are logged in as $valid_user.</p>";
    echo "<p>Members only content goes here</p>";
  }
  else
  {
    echo "<p>You are not logged in.</p>";
    echo "<p>Only logged in members may see this page.</p>";
  }

  echo "<a href=\"authmain.php\">Back to main page</a>";
?>
В MySQL создаём для примера бд auth.
Вот вообщем весь SQL код который нужен для примера:
PHP:
create database auth;

use auth;

create table auth (
	name		varchar(10) not null,
	pass	 	varchar(30) not null,
        primary key	(name)
);

insert into auth values 
  ('user', 'pass');

insert into auth values
  ( 'testuser', password('test123') );

grant select, insert, update, delete 
on auth.*
to webauth@localhost 
identified by 'webauth';
Итак объясните пожалуйста, почему у меня возникает эта ошибка.
Может что то не правильно настроено? С чем же мне боротся?
И еще на заметку, тестирую я на локальном хосте.
А локальный хост поставил с помощью такого замечательного пакета - AppServ.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху