Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

05.07.2008, 19:24
|
|
Участник форума
Регистрация: 06.06.2008
Сообщений: 162
Провел на форуме: 3942177
Репутация:
244
|
|
Сообщение от MafiaBoy3
Как мне сделать регистрацию на сайте?
Может у кого нибудь есть готовые скрипты (готовые решения на php) для реализации:
Регистрации пользователя, входа и выхода пользователя (логина, логаута).
PS: GOOGLE не помог выдал треш, да и готовых решений совсем не было, статьи на эту тему безобразные.
Вобщем делать мне было не чего =), написал два небольших скрипта, ошибок в них куча но всеже:
Файл register.php:
PHP код:
<html>
<head><title>Регистрация</title></head>
<body><p align="left"><?php session_start(); if($_SESSION['login']){ echo 'Вы вошли как:'.$_SESSION['login'].' <a href="./login.pph?mode=logout">Logout</a>'; } else { echo 'Вы не выполнили <a href="./login.php">вход</a>.'; } ?></p>
<form method="post" action="">
<table cellspacing="0" border="0" align="center">
<tr><td>Имя: <input type="text" name="name"></td></tr>
<tr><td>Пароль: <input type="password" name="password"></td></tr>
<tr><td>E-Mail: <input type="text" name="email"></td></tr>
<tr><td><input type="submit" value="Зарегистрироваться" name="doit"></td></tr>
</tr>
</table>
</form>
<?php
include('cfg.php');
session_start();
$name = mysql_escape_string($_POST['name']);
$pwd = mysql_escape_string($_POST['password']);
$email = mysql_escape_string($_POST['email']);
if($_POST['doit']){
$r = mysql_query("SELECT * FROM `users` ORDER by `id`");
$n = mysql_num_rows($r);
if($n > 0)
{
for($i = 0; $i < $n; $i++)
{
$row = mysql_fetch_array($r);
}}
$id = $row['id'] + 1;
$q = "INSERT INTO `users` VALUES($id,'".$name."','".$pwd."','".$email."')";
if(mysql_query($q))
{
echo '<script>alert("Регистрация завершена.");</script>';
} else { exit('Error'.mysql_error()); }
}
?>
</body>
</html>
Файл login.php:
PHP код:
<html>
<head>
<title>Авторизация</title>
</head>
<body><p align="left"><?php session_start(); if($_SESSION['login']){ echo 'Вы вошли как:'.$_SESSION['login'].' <a href="./login.pph?mode=logout">Logout</a>'; } else { echo 'Вы не выполнили <a href="./login.php">вход</a>.'; } ?></p>
<form method="post" action="">
<table cellspacing="0" border="0" align="center">
<tr><td>Логин: <input type="text" name="login"></td></tr>
<tr><td>Пароль <input type="text" name="password"></td></tr>
<tr><td><input type="submit" name="doit"></td></tr>
</table>
</form>
</body>
</html>
<?php
include('cfg.php');
$login = mysql_escape_string($_POST['login']);
$pwd = mysql_escape_string($_POST['password']);
if($_GET['mode']=='logout')
{
setcookie('name', '');
setcookie('password', '');
session_destroy();
echo "Вы вышли.";
}
if($_POST['doit'])
{
$q = "SELECT * FROM `users` WHERE `username` = '".$login."' AND `userpassword` = '".$pwd."'";
$r = mysql_query($q);
if(mysql_num_rows($r))
{
$_SESSION['login'] = $login;
$_SESSION['pwd'] = $pwd;
setcookie('name', $_SESSION['login'], time()+ 86400 * 30 * 12, '', false, 0);
setcookie('password' , $_SESSION['pwd'], time()+ 86400 * 30 * 12, '', false, 0);
} else { echo 'Неверный пароль/логин. '; }
}
?>
cfg.php:
PHP код:
<?php
error_reporting('0');
$mysqlc = mysql_connect('localhost','root','test');
if(!$mysqlc){ die(mysql_error()); }
mysql_select_db('data');
?>
Думаю объяснять что каждый срипт делает не надо.
Создаш БД data, выполнишь этот запрос:
PHP код:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) NOT NULL,
`username` varchar(15) NOT NULL,
`userpassword` varchar(20) NOT NULL,
`useremail` varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `users` (`id`, `username`, `userpassword`, `useremail`) VALUES
(1, 'test', 'test', 'test@gmail.com');
первый пользователь это test c паролем test
Думаю принцип поймешь, если разбираешся и дaльше сам уже...
|
|
|

05.07.2008, 19:39
|
|
Участник форума
Регистрация: 01.07.2008
Сообщений: 175
Провел на форуме: 881554
Репутация:
66
|
|
и не забудь поставить фильтрацию
Последний раз редактировалось PHPoozy; 05.07.2008 в 19:42..
|
|
|

05.07.2008, 22:15
|
|
Постоянный
Регистрация: 20.12.2006
Сообщений: 350
Провел на форуме: 1903667
Репутация:
584
|
|
Товарищи, не мог ли кто-нибудь из вас доработать скрипт мною вышеуказанный.
Я в php мало что понимаю и самому что-то там исправлять, даже зная что, как показала практика - безрезультатно. Кто знает как оживить, подправьте пожалуйста и выложите. Заранее спасибо.
Последний раз редактировалось GoodGod; 05.07.2008 в 22:23..
|
|
|

05.07.2008, 22:22
|
|
Участник форума
Регистрация: 07.03.2008
Сообщений: 141
Провел на форуме: 405538
Репутация:
23
|
|
Хех, а как прикрутить к своему скрипту поддержку прокси? Ну т.е. чтобы всякие там file_get_contents и т.д. пускать через прокси?
|
|
|

06.07.2008, 10:25
|
|
Участник форума
Регистрация: 05.04.2007
Сообщений: 150
Провел на форуме: 771228
Репутация:
77
|
|
http://php.net/fsockopen
|
|
|

06.07.2008, 10:41
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
После запуска скрипта получил такой подарок, кто знает что это?
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Давно использую сессии в своих проектах, но такое вижу ПЕРВЫЙ раз!
У меня стоит Denver последней версии на холакосте.
Как сделать всё чисто?
|
|
|

06.07.2008, 10:59
|
|
Участник форума
Регистрация: 01.07.2008
Сообщений: 175
Провел на форуме: 881554
Репутация:
66
|
|
MafiaBoy3 переименуй имена переменных в глобальных те в $_SESSION используются одни и те же переменные
|
|
|

06.07.2008, 11:06
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
Не понял
|
|
|

06.07.2008, 11:09
|
|
Участник форума
Регистрация: 01.07.2008
Сообщений: 175
Провел на форуме: 881554
Репутация:
66
|
|
короче это связано с register_globals
|
|
|

06.07.2008, 11:10
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
У меня register_globals OFF
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|