PDA

Просмотр полной версии : Проблема С session_start();


Micr0b
19.04.2007, 19:25
У меня такой вопрос, я хочу передать session_start(); в файл index.php,
параметеры login i id. Но я немогу никак етого зделать =( видимо знаний не хватает.
Все бы было супер если заменить
<form method="POST" action="<?=$_SERVER['PHP_SELF'];?>">
на
<form method="POST" action="index.php">
но тогда нет поверки login i pass(((.
Может я чот не верно делаю, может все нужно зделать по другому.
Если есть у вас время помогите...


#################################
index.php

<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

<?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>

GreenBear
19.04.2007, 19:36
$_SESSION['login'] = 'login';
в чем проблема?

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

hidden
19.04.2007, 21:26
<form method="POST" action="<?=$_SERVER['PHP_SELF'];?>">тут экшен не нужен<form method="POST">

session_start() можно поместить в файл "config.php" который используется обоими скриптами.

$result=mysql_query("SELECT id, login FROM swat WHERE login='$login' ", $link);Просто "безопасный" фрагмент скрипта ;)

Micr0b
21.04.2007, 15:33
GreenBear - подставил не получилось.
Я просто сверху добавил в индекс.пхп
<? include("vhod.php"); ?> и все решылось, а сесию удалил