ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #3941  
Старый 05.07.2008, 19:24
Jer1cho
Участник форума
Регистрация: 06.06.2008
Сообщений: 162
Провел на форуме:
3942177

Репутация: 244
Отправить сообщение для Jer1cho с помощью ICQ
По умолчанию

Цитата:
Сообщение от 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''false0);
setcookie('password' $_SESSION['pwd'], time()+ 86400 30 12''false0);
} 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` (
  `
idint(10NOT NULL,
  `
usernamevarchar(15NOT NULL,
  `
userpasswordvarchar(20NOT NULL,
  `
useremailvarchar(30NOT NULL
ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `users` (`id`, `username`, `userpassword`, `useremail`) VALUES
(1'test''test''test@gmail.com'); 
первый пользователь это test c паролем test

Думаю принцип поймешь, если разбираешся и дaльше сам уже...
 
Ответить с цитированием

  #3942  
Старый 05.07.2008, 19:39
PHPoozy
Участник форума
Регистрация: 01.07.2008
Сообщений: 175
Провел на форуме:
881554

Репутация: 66
По умолчанию

и не забудь поставить фильтрацию

Последний раз редактировалось PHPoozy; 05.07.2008 в 19:42..
 
Ответить с цитированием

  #3943  
Старый 05.07.2008, 22:15
GoodGod
Постоянный
Регистрация: 20.12.2006
Сообщений: 350
Провел на форуме:
1903667

Репутация: 584
По умолчанию

Товарищи, не мог ли кто-нибудь из вас доработать скрипт мною вышеуказанный.
Я в php мало что понимаю и самому что-то там исправлять, даже зная что, как показала практика - безрезультатно. Кто знает как оживить, подправьте пожалуйста и выложите. Заранее спасибо.

Последний раз редактировалось GoodGod; 05.07.2008 в 22:23..
 
Ответить с цитированием

  #3944  
Старый 05.07.2008, 22:22
Nek1t
Участник форума
Регистрация: 07.03.2008
Сообщений: 141
Провел на форуме:
405538

Репутация: 23
По умолчанию

Хех, а как прикрутить к своему скрипту поддержку прокси? Ну т.е. чтобы всякие там file_get_contents и т.д. пускать через прокси?
 
Ответить с цитированием

  #3945  
Старый 06.07.2008, 10:25
5triker
Участник форума
Регистрация: 05.04.2007
Сообщений: 150
Провел на форуме:
771228

Репутация: 77
По умолчанию

http://php.net/fsockopen
 
Ответить с цитированием

  #3946  
Старый 06.07.2008, 10:41
MafiaBoy3
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 последней версии на холакосте.

Как сделать всё чисто?
 
Ответить с цитированием

  #3947  
Старый 06.07.2008, 10:59
PHPoozy
Участник форума
Регистрация: 01.07.2008
Сообщений: 175
Провел на форуме:
881554

Репутация: 66
По умолчанию

MafiaBoy3 переименуй имена переменных в глобальных те в $_SESSION используются одни и те же переменные
 
Ответить с цитированием

  #3948  
Старый 06.07.2008, 11:06
MafiaBoy3
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме:
756152

Репутация: 38
По умолчанию

Не понял
 
Ответить с цитированием

  #3949  
Старый 06.07.2008, 11:09
PHPoozy
Участник форума
Регистрация: 01.07.2008
Сообщений: 175
Провел на форуме:
881554

Репутация: 66
По умолчанию

короче это связано с register_globals
 
Ответить с цитированием

  #3950  
Старый 06.07.2008, 11:10
MafiaBoy3
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме:
756152

Репутация: 38
По умолчанию

У меня register_globals OFF
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ