Четверг, 26 Декабря 2024, 03:52

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
1й урок PHP: Создание регистрации, авторизации
cougraAccДата: Суббота, 13 Февраля 2010, 00:10 | Сообщение # 1
Яркая личность GD
Сейчас нет на сайте
Модераторы не кидайте в меня камнями если ошибся темой...:)
Простые уроки php из них можно потихоньку собрать игру)))
Урок первый: Создание Регистрации, авторизации.
Для начала создадим бд.

Идем в phpmyadmin, создаем бд например test
Далее SQL
и вставляем:

Code

CREATE TABLE `users` (
      `id` int(11) NOT NULL auto_increment,
      `login` varchar(15) NOT NULL default '',
      `password` varchar(15) NOT NULL default '',
      PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

БД создана теперь открываем корневую папку нашего сервера создаем файл index.php, открываем его и пишем:

Code


<?php
session_start(); //Создаем ссесию, чтобы при повторном входе опять не авторизовываться
?>
<?
$login = $_SESSION['login']
?>
<?php

if (empty($_SESSION['login']) or empty($_SESSION['id']))
{
print "
<html>
<head>
<title>Наша первая авторизация</title>
</head>
<body>
<form action='enter.php' method='post'>
<p>
Ваш логин:<br>
        <input name='login' type='text' size='15' maxlength='15'>
      </p>
      <p>
Ваш пароль:<br>
        <input name='password' type='password' size='15' maxlength='15'>
      </p>
<p>
<input type='submit' name='submit' value='Войти'>
<br>
</p>
</form>
<br>
Незарегистрирован? <a href='reg.php'>жмакай сюда</a>     
";
   //Видимо она пуста, увидомим об этом юзера
}
else
       {

        print "     
     Привет, $login ты авторизован
     ";
     // работает)) знач не надо регится
       }
?>
</body>
</html>   

index.php создали, теперь создаем обработчик
Создаем файл enter.php открываем и пишем:

Code


<?php
session_start(); // Все та же ссесия))

if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //Присваеваем логину переменную $login, если она пуста уничтожаем её
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
//так же присваеваем паролю переменную $password проверяем....

// В общих чертах, или
/*
if (empty($login)) //Проверяем на введенность данных
{
exit ("Не введен логин, исправьте");
}
if (($password)) //Проверяем на введенность данных
{
exit ("Не введен пароль, исправьте");
}
*/
if (empty($login) or empty($password)) //Проверяем на введенность данных
{
exit ("Введена не вся информация, вернитесь и исправьте");
}
//обрезаем всякие тэги и прочую нечисть
$login = stripslashes($login);

$login = htmlspecialchars($login);

$password = stripslashes($password);

$password = htmlspecialchars($password);

//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);

// подключаемся к базе
include ("connect.php");

$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db); //извлекаем из базы все данные о пользователе с введенным логином
$myrow = mysql_fetch_array($result);
if (empty($myrow['password']))
{
//если пользователя с введенным логином не существует
exit ("Извините, введённый вами логин или пароль неверный.");
}
else {
//если существует, то сверяем пароли
if ($myrow['password']==$password) {
//если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
echo "Вы успешно зашли на сайт, сейчас вы будете перенаправлены на главную страницу. <a href='index.php'>Нажмите если нет сил ждать</a>";
}

else {
//Если логин и пасс не сходятся
exit ("Извините, введённый вами логин или пароль неверный.");
}
}
?>

Создаем connect.php для соединения с бд

Code

<?php
$db = mysql_connect ("сюда пишем хост","логин","пароль");
mysql_select_db ("названия бд",$db);
?>

Создаем регистрационный файл reg.php

Code

<html>
<head>
<title>Регистрация нового юзера</title>
</head>
<body>
<form action="reg2.php" method="post">
      <p>
        Ваш логин:*<br>
        <input name="login" type="text" size="15" maxlength="15">
      </p>

      <p>
Ваш пароль:<br>
        <input name="password" type="password" size="15" maxlength="15">
      </p>

<p>
<input type="submit" name="submit" value="Зарегистрироваться">     
</p></form>
</body>
</html>

Создаем reg2.php он нужен для занесения в бд зарегистрированных пользователей

Code

<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //Присваеваем логину переменную $login, если она пуста уничтожаем её
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
//так же присваеваем паролю переменную $password проверяем....

         
     // В общих чертах, или
/*
if (empty($login)) //Проверяем на введенность данных
{
exit ("Не введен логин, исправьте");
}
if (($password)) //Проверяем на введенность данных
{
exit ("Не введен пароль, исправьте");
}
*/
if (empty($login) or empty($password)) //Проверяем на введенность данных
{
exit ("Введена не вся информация, вернитесь и исправьте");
}

$login = stripslashes($login);
$login = htmlspecialchars($login);

$password = stripslashes($password);
$password = htmlspecialchars($password);

$login = trim($login);
$password = trim($password);

include ("connect.php");     

// проверка на существование пользователя с таким же логином
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
}

// если такого нет, то сохраняем данные
$result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')");
// Проверяем, есть ли ошибки
if ($result2=='TRUE')
{
echo "Вы успешно зарегистрированны, теперь вы можете войти на сайт <a href='index.php'>войти</a>";
}

else {
echo "Ошибка! регистрация не прошла";
         }
?>

Вот и все))) Если будут ошибки пишите, так как писал на ночь глядя, мог и запутаться где нить....
Следующий урок, использование капчи, заверешние сессии, загрузка автара, поиск пользователя по профилю....

Сообщение отредактировал cougraAcc - Воскресенье, 14 Февраля 2010, 12:20
ПрофЭссор1Дата: Суббота, 13 Февраля 2010, 00:27 | Сообщение # 2
Le Pallete Studio
Сейчас нет на сайте
cougraAcc, ну молодец, ждёмс след. уроков.. smile
Кстати, создай топик по поводу создания Транслита.. Буду признателен паппи.. happy

Добавлено (13.02.2010, 00:27)
---------------------------------------------
Следовало бы указать для какой игры Рега ! Понимаешь ли, тут на сайте есть и чайники.


>>>>>>ПРОДАЕТСЯ ГОТОВАЯ ОНЛАЙН ИГРА<<<<<<

ОПИСАНИЕ: http://www.gcup.ru/forum/13-8911-1

Upgrade2009Дата: Суббота, 13 Февраля 2010, 05:10 | Сообщение # 3
Арти
Сейчас нет на сайте
Вроде я это уже где-то видел...на каком-то сайт...и обещанные следующие уроки мозг натирают...
cougraAcc, ты уверен,что это ТВОИ уроки? wink smile


cougraAccДата: Суббота, 13 Февраля 2010, 09:55 | Сообщение # 4
Яркая личность GD
Сейчас нет на сайте
Upgrade2009, это мои уроки, я это выдергивал из написанной мною cms конечно похожие есть по всему нэту.... но там только основа.... может быть похожие и где то есть, но и аналоги уроков например как у Assasina тоже есть в нэте.... если не нравится не читай, мои следующие уроки не будут похожими на те что ты видел....

Добавлено (13.02.2010, 09:55)
---------------------------------------------
ПрофЭссор, Это не для игры, это вобще))) просто начало)))

MaximSokolДата: Суббота, 13 Февраля 2010, 11:02 | Сообщение # 5
Доктор Макс Пэйн
Сейчас нет на сайте
Хорошие уроки по актуальному на все времена языку PHP. Удобный и богатый язык, сейчас сам занимаюсь его изучением, может, тоже пару уроков напишу. wink <?php +1 ?>

Моя страница на проза.ру - перейти
Я - начинающий писатель.)
ПрофЭссор1Дата: Суббота, 13 Февраля 2010, 14:33 | Сообщение # 6
Le Pallete Studio
Сейчас нет на сайте
Quote (MaximSokol)
тоже пару уроков напишу.

Смотря в какой сфере эти языки применять....


>>>>>>ПРОДАЕТСЯ ГОТОВАЯ ОНЛАЙН ИГРА<<<<<<

ОПИСАНИЕ: http://www.gcup.ru/forum/13-8911-1

cougraAccДата: Суббота, 13 Февраля 2010, 14:36 | Сообщение # 7
Яркая личность GD
Сейчас нет на сайте
ПрофЭссор, в смысле в какой сфере??
KrokodilДата: Четверг, 04 Марта 2010, 11:20 | Сообщение # 8
был не раз
Сейчас нет на сайте
как смотрю фай индекс и рег, то там остается текст программирования и скобки
вот например
"Нажмите если нет сил ждать"; } else { //Если логин и пасс не сходятся exit ("Извините, введённый вами логин или пароль неверный."); } } ?>" wink
vovnetДата: Пятница, 07 Мая 2010, 13:30 | Сообщение # 9
почетный гость
Сейчас нет на сайте
а почему, после регистрации, в базе вместо введенного мной пароля хранится слово password?

Добавлено (07.05.2010, 13:30)
---------------------------------------------
брррр сори, я чет напутал)) сам набирал от руки и допустил ошибку


SSS004Дата: Воскресенье, 09 Мая 2010, 18:51 | Сообщение # 10
был не раз
Сейчас нет на сайте
видел этот урок и еще 4 следующих на другом сайте. Копипаст 100% ДАЖЕ КОМЕНТЫ ТЕЖЕ.Только там ошибок много - пытался с них чтото выжить - но пришел к выводу что писали их начинающие, мало смыслящие в пхп товарищи smile

самое фиговое в этом примере то , что если добавить 3 поле и попытаться его таким способом заносить в базу (сохранять) - работать не будет smile

где-бы уроки посмотреть от толковых ребят, кто и про защиту знает и практический опыт имеет.....

ПС: блицевкие уроки тоже посмотрел - не могу сказать что открылись глаза smile если тупо повторить что делают они-можно, но сам ничего после таких уроков не напишешь

Сообщение отредактировал SSS004 - Воскресенье, 09 Мая 2010, 20:04
cougraAccДата: Среда, 12 Мая 2010, 13:36 | Сообщение # 11
Яркая личность GD
Сейчас нет на сайте
SSS004, че за предъява? сначала обоснуй, покажи линки где тоже самое, а потом предъявляй, но если у тебя руки не оттуда растут, то тебе тут ничего не поможет, можно добавить 100 строчек и все будет работать, для начала хоть бы почитай книжки чтобы говорить такое.... Я про защиту много что могу сказать, но! эти уроки написаны для тех кто не имеет в пхп даже теоретических познаний, какой смысл объяснять тебе про закрытие php-inj, sql-inj уязвимость если ты не можешь добавить строчку и сделать её запись в бд.... Ответ бессмысленный...
ПрофЭссор1Дата: Среда, 12 Мая 2010, 14:01 | Сообщение # 12
Le Pallete Studio
Сейчас нет на сайте
Следим за выражениями! - Assasin

>>>>>>ПРОДАЕТСЯ ГОТОВАЯ ОНЛАЙН ИГРА<<<<<<

ОПИСАНИЕ: http://www.gcup.ru/forum/13-8911-1

vladbossДата: Понедельник, 17 Января 2011, 22:39 | Сообщение # 13
постоянный участник
Сейчас нет на сайте
cougraAcc, привет)
я вернулся...у меня проблема место русского языка выводит каракули...знаю что из-за кодировки,
помоги скажи что да куда...мне советовали я и .htaccess делал и
[/code]
Code
mysql_query('SET NAMES utf8');           
mysql_query('SET CHARACTER SET utf8');   
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
header('Content-Type: text/html; charset=utf-8');
ал в connect
и
Code
<meta http-equiv="content-type" content="text/html; charset=utf8">
ето писал в index не помогло что посоветуешь может что не так писал???


-помог ставь +

АБП production ©
cougraAccДата: Понедельник, 17 Января 2011, 22:43 | Сообщение # 14
Яркая личность GD
Сейчас нет на сайте
в бд каракули или кодировки документа? если бд заливай utf-8 если в документе самом исправь кодировку на utf-8 без bom
Мну сюда не пиши... ниже линка я там
vladbossДата: Понедельник, 17 Января 2011, 23:30 | Сообщение # 15
постоянный участник
Сейчас нет на сайте
сам посмотри клик

Добавлено (17.01.2011, 22:57)
---------------------------------------------

Quote (cougraAcc)
Мну сюда не пиши... ниже линка я там

ладно...

Добавлено (17.01.2011, 23:30)
---------------------------------------------

Quote (cougraAcc)
без bom
-ето что?


-помог ставь +

АБП production ©


Сообщение отредактировал vladboss - Понедельник, 17 Января 2011, 22:56
VeKToRДата: Вторник, 18 Января 2011, 21:04 | Сообщение # 16
был не раз
Сейчас нет на сайте
Благодарю cougraAcc,отличный урок,все понятно и доходчиво разжевано.

http://hellmusic.tk - Melodic Death Metal and more metal music..
cougraAccДата: Вторник, 18 Января 2011, 21:11 | Сообщение # 17
Яркая личность GD
Сейчас нет на сайте
VeKToR, не за что:) готовлю цикл уроков, написание функционального сайта с 0 будет интересно, загляните в блог ссылка ниже
OleGoNДата: Вторник, 18 Января 2011, 21:26 | Сообщение # 18
Game Maker User
Сейчас нет на сайте
cougraAcc, куль урок! happy

SlavecДата: Вторник, 18 Января 2011, 21:40 | Сообщение # 19
GameDev - площадка для творчества
Сейчас нет на сайте
Замечательно)Кстати, как вообще его применять?)
На локальном ПК, или в сети на хостинге?
cougraAccДата: Вторник, 18 Января 2011, 21:44 | Сообщение # 20
Яркая личность GD
Сейчас нет на сайте
Slavec, ставишь на компьютер вирт. сервер типа denwer и вперед:)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг