[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сделал регистрацию и авторизацию в одной форме
pulssscool
Нужно сделать именно на одной странице!Подключение с БД потом вынесу в отдельный файл!

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>
1 page </title>
<meta
charset='utf-8' />
</head>
<body>
<?php

//коннектимся с базой
define('PHP_HOST', 'localhost');
define('PHP_USER', 'root');
define('PHP_PASS','');
define('PHP_DB', 'inf');
// Подключение к СУБД
$link = mysql_connect(PHP_HOST, PHP_USER, PHP_PASS) or die (mysql_error());
// Выбираем базу данных
mysql_select_db(PHP_DB, $link)or die (mysql_error());
//Устанавливаем кодировку UTF8
mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");


if (isset ($_GET['avt']))
{

if (empty ($_SESSION ['login']))
echo '<p>Доступ только для авторизованных пользователей!</p>';
else
{
$login = $_SESSION ['login'];
echo $login;
echo '</body></html>';
exit();
}

}


if (isset($_POST['submit']))//если нажата submit
{
if ( empty($_POST['login']) || empty($_POST['password']) )//если поля пустые
echo '<p>Вы не заполнили поля!</p>';
else
{
$login = trim(mysql_real_escape_string($_POST['login']));//так же нужно ограничить длину и проверить регулярными выражениями, но думаю в задании это не принципиально!
$password= md5($_POST['password']).'!der3';
$zap = mysql_query("SELECT `id` FROM `users` WHERE `login`='$login' AND `password`='$password' LIMIT 1")or die (mysql_error());
if (mysql_num_rows($zap) === 1)
{
$_SESSION['login']=$login;
$_SESSION['password']=$password;
header('Location: 1_page.php?avt=ok');
}
elseif (mysql_num_rows($zap) <0 or mysql_num_rows($zap)>1)//на всякий случай!
{
die(mysql_error());
}
else
{
$sql = mysql_query ("INSERT INTO `users` (`login`,`password`) VALUES('$login','$password')") or die (mysql_error());
echo '<p>Вы добавлены в базу!Теперь можете войти!</p>';
}

}

}









?>
<strong>
Авторизация/Регистрация</strong>
<form
method='POST' action='?' name='reg'>
<table>
<tr>
<td>
Login</td>
<td><input
name='login' autocomplete='on' type='text' maxlength='15' size='18' /> </td>
</tr>
<tr>
<td>
Password</td>
<td><input
name='password' autocomplete='off' type='password' maxlength='15' size='18' /></td>
</tr>
<tr>
<td><input
type='submit' value='Ok' name='submit' /></td>
</tr>
</table>
</form>


</body>
</html>




Спустя 46 минут, 8 секунд (6.09.2012 - 21:40) dron4ik написал(а):
header('Location: 1_page.php?avt=ok'); --- до вывода чего либо пользователю...

Спустя 22 минуты, 41 секунда (6.09.2012 - 22:03) inpost написал(а):
pulssscool
Прежде стоит проверить самому на предмет ошибок...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.