Xwab
Форумыnavigate_nextПрограммирование на PHP

Проблемы с сесией
Сообщения
FiXleR

Здравствуйте. написал скрипт регистрации, но вот не пойму как присвоить сесию... Подскажите пожалуйста.
Вот код, который я написал:

[php:1:491359cef2]

<?php
require 'start.php';

$user = mysql_query ("SELECT * FROM user");
$users = mysql_fetch_array($user);


if(isset($_POST['submit'])){ //если была нажата кнопка регистрация

$email = $_POST['email'];
$password = $_POST['password'];
$password1 = $_POST['password1'];

if($password !== $password1) //если введеные пароли не совподают
{
echo 'Пароли не совподают<br /> <a href="/">Назад</a>'; exit();
}
/*
elseif (!empty($users['email']))
{
echo 'Введенный E-mail <b>'.$email.'</b> уже зарегистрирован!';
}
*/
else
{
mysql_query("INSERT INTO user(email,password) VALUES('$email','$password')");
echo 'Вы успешно зарегистрированны!';
}
}
?>

<html>
<body>
<form action="/" method="POST">
E-mail: <br /><input type="text" name="email" /><br />
Пароль: <br /><input type="password" name="password" /><br />
Повтор пароля: <br /><input type="password" name="password1" /><br />
<input type="submit" name="submit" value="Зарегистрироваться" /><br />
</form>
</body>
</html>


[/php:1:491359cef2]

И помогите пожалуйста сделать чтобы если E-mail уже зарегистрирован то выбивало ошибку

07 Сен 2012, 6:43
MuSTAnG

FiXleR, [php:1:de4385a45c]<?php

session_start();

require 'start.php';

$user = mysql_query ("SELECT * FROM user");
$users = mysql_fetch_array($user);


if(isset($_POST['submit'])){ //если была нажата кнопка регистрация

$email = $_POST['email'];
$password = $_POST['password'];
$password1 = $_POST['password1'];

if($password !== $password1) //если введеные пароли не совподают
{
echo 'Пароли не совподают<br /> <a href="/">Назад</a>'; exit();
}
/*
elseif (!empty($users['email']))
{
echo 'Введенный E-mail <b>'.$email.'</b> уже зарегистрирован!';
}
*/
else
{
mysql_query("INSERT INTO user(email,password) VALUES('$email','$password')");
echo 'Вы успешно зарегистрированны!';
$_SESSION['auth'] = 1;
}
}
?>

<html>
<body>
<form action="/" method="POST">
E-mail: <br /><input type="text" name="email" /><br />
Пароль: <br /><input type="password" name="password" /><br />
Повтор пароля: <br /><input type="password" name="password1" /><br />
<input type="submit" name="submit" value="Зарегистрироваться" /><br />
</form>
</body>
</html>[/php:1:de4385a45c]
добавлено спустя 1 минуту:
FiXleR, На счёт мыла: делай запрос в базу и сравнивай с веденными данными

07 Сен 2012, 6:54
Xardy

Зачем присваивать сессию после реги? Типа для авты? Если для авты в верху скрипта ставь session_start();
присваиваешь данные сессии типа так:$_SESSION['password'] = $password;
а удаление сессий через session_destroy(); или unset() вроде...

07 Сен 2012, 6:58
FiXleR

вот недоруболяюсь немного...
Мне нужно сделать, чтобы если я авторизирован то писало например "вы авторизированы" ...

07 Сен 2012, 7:20
MuSTAnG

FiXleR, [php:1:4f8dd3c986]<?php

if($_SESSION['auth'] == 1) {
echo 'Привет' .$_SESSION['name'];
}

?>

<a href="?exit=1">Выход</a>

<?php

if($_GET['exit'] == 1) {
unset($_SESSION);
}

?>[/php:1:4f8dd3c986]

07 Сен 2012, 7:30
Xardy

Учи язык...Сверяй данные сесси с данными в базе, логин и пасворд, типа так if(mysql_num_rows(mysql_query("SELECT * FROM your_table WHERE login = '".$_SESSION['login']."' AND password = '".$_SESSION['password']."'"))){
// если true то это тело для авт юзеров..

}

07 Сен 2012, 7:32
FiXleR

MuSTAnG, Показывается когда я регаю юзера. а как сделать чтобы всегда в шапки показывалось? когда я лазию по сайту тоесть...

07 Сен 2012, 7:34
Xardy

FiXleR пишет:
"MuSTAnG, Показывается когда я регаю юзера. а как сделать чтобы всегда в шапки показывалось? когда я лазию по сайту тоесть..."
мой пример тебе в руки, и так на каждой страници.. Еще скажу, время сесси устанавливается сервером, минут так 30... Т.Е через мин 30сессия пропадет, не удевляйся если Сессия станет пустой...
добавлено спустя 3 минуты:
FiXleR, и еще такую авту губно делать, тебе проще буде выучить куки, захешить их и сверять с бд, это уже будет более менее нормально, и + в куках, ты устанавливаешь им время жизни сам хоть 30 мин хоть 3 года...

07 Сен 2012, 7:41
FiXleR

Xardy,
вот такую ошибку выбивает
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in
добавлено спустя 57 секунд:
Xardy, не посоветуешь учебник по кукам? точнее где его взять)

07 Сен 2012, 7:43
Xardy

Это потому что у тебя нету такой таблици, зделай таблицу users в ней поля login password, при реге занось регистрационные данные в эту таблу, а потом когда авторизируешся, сверя данные с бд

07 Сен 2012, 7:45
Ответить на тему