Здравствуйте. написал скрипт регистрации, но вот не пойму как присвоить сесию... Подскажите пожалуйста.
Вот код, который я написал:
[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 уже зарегистрирован то выбивало ошибку
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, На счёт мыла: делай запрос в базу и сравнивай с веденными данными
Зачем присваивать сессию после реги? Типа для авты? Если для авты в верху скрипта ставь session_start();
присваиваешь данные сессии типа так:$_SESSION['password'] = $password;
а удаление сессий через session_destroy(); или unset() вроде...
вот недоруболяюсь немного...
Мне нужно сделать, чтобы если я авторизирован то писало например "вы авторизированы" ...
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]
Учи язык...Сверяй данные сесси с данными в базе, логин и пасворд, типа так if(mysql_num_rows(mysql_query("SELECT * FROM your_table WHERE login = '".$_SESSION['login']."' AND password = '".$_SESSION['password']."'"))){
// если true то это тело для авт юзеров..
}
MuSTAnG, Показывается когда я регаю юзера. а как сделать чтобы всегда в шапки показывалось? когда я лазию по сайту тоесть...
07 Сен 2012, 7:34FiXleR пишет:
"MuSTAnG, Показывается когда я регаю юзера. а как сделать чтобы всегда в шапки показывалось? когда я лазию по сайту тоесть..."
мой пример тебе в руки, и так на каждой страници.. Еще скажу, время сесси устанавливается сервером, минут так 30... Т.Е через мин 30сессия пропадет, не удевляйся если Сессия станет пустой...
добавлено спустя 3 минуты:
FiXleR, и еще такую авту губно делать, тебе проще буде выучить куки, захешить их и сверять с бд, это уже будет более менее нормально, и + в куках, ты устанавливаешь им время жизни сам хоть 30 мин хоть 3 года...
Xardy,
вот такую ошибку выбивает
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in
добавлено спустя 57 секунд:
Xardy, не посоветуешь учебник по кукам? точнее где его взять)
Это потому что у тебя нету такой таблици, зделай таблицу users в ней поля login password, при реге занось регистрационные данные в эту таблу, а потом когда авторизируешся, сверя данные с бд
07 Сен 2012, 7:45