так...
страница регистрации
Свернутый текст
<h2>Регистрация</h2>
<form action="save_user.php" method="post">
<p>
<label>Ваш логин:<br></label>
<input name="login" type="text" size="15" maxlength="15">
</p>
<p>
<label>Ваш пароль:<br></label>
<input name="password" type="password" size="15" maxlength="15">
</p>
<p>
<input type="submit" name="submit" value="Зарегистрироваться">
</p></form>
заносим юзера в базу на странице save_user.php
Свернутый текст
<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
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 ("config.php");
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$link);
$myrow = mysql_fetch_assoc($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 "Ошибка! Вы не зарегистрированы.";
}
?>
теперь вход
Свернутый текст
<p> <h2>Вход на сайт</h2>
<form action="save.php" method="post">
<p>
<label>Ваш логин:<br></label>
<input name="login" type="text" size="15" maxlength="15">
</p>
<p>
<label>Ваш пароль:<br></label>
<input name="password" type="password" size="15" maxlength="15">
</p>
<p>
<input type="submit" name="submit" value="Войти">
<br>
<a href="reg.php">Зарегистрироваться</a>
</p></form>
обработка входа
Свернутый текст
<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$login = trim($login);
$password = trim($password);
include ("config.php");
$result = mysql_query("SELECT * FROM `users` WHERE login='$login'",$link);
$myrow = mysql_fetch_array($result);
if (empty($myrow['password']))
{
exit ("Такого юзера я не знаю!");
}
else {
if ($myrow['password']==$password) {
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];
echo "Вы успешно вошли на сайт! Теперь я буду вести твою сессию по сайту, а когда купишь товар я их выведу!";
}
else {
exit ("Пароли не совпадают с тем что лежит в базе");
}
}
?>
и теперь используем сессию
Свернутый текст
<?php
// Проверяем, пусты ли переменные логина и id пользователя
if (empty($_SESSION['login'])) {
echo "<small>Вы вошли на сайт как гость<br></small>";
} else {
// Если не пусты, то мы выводим ссылку
echo "<small>Вы вошли на сайт, как ".$_SESSION['login']."<br></small>";
}
if (isset($_SESSION['login'])) {
echo "<small><a href="exit.php">Выход</a><br></small>";
} else {
echo "none";
}
?>
вот здесь у меня не вышло ссылку на выход показать только если сессия открыта, сесион_старт прописан, а вот и кстати сам выход
Свернутый текст
<?php
session_start();
if (empty($_SESSION['login']) or empty($_SESSION['password']))
{
exit ("Доступ на эту страницу разрешен только зарегистрированным пользователям. Если вы зарегистрированы, то войдите на сайт под своим логином и паролем<br><a href='index.php'>Главная страница</a>");
}
unset($_SESSION['password']);
unset($_SESSION['login']);
unset($_SESSION['id']);// уничтожаем переменные в сессиях
setcookie("auto", "", time()+9999999);//очищаем автоматический вход
exit("<html><head><meta http-equiv='Refresh' content='0'; URL=index.php'></head></html>");
// отправляем пользователя на главную страницу.
?>
Спустя 1 минута, 27 секунд (31.10.2011 - 00:41) Winston написал(а):
Да блин, так не интересно, залей хотя бы сюда (шаровой хост), чтобы поломать можно было
PS: На чат забил ?

PS: На чат забил ?

Спустя 2 минуты, 49 секунд (31.10.2011 - 00:44) Invis1ble написал(а):
Я бы начал с того, что стоит сначала html выучить и открыть для себя кучу обязательных тегов аля html, head, title, body etc, а потом уже браться за php
Спустя 4 минуты, 6 секунд (31.10.2011 - 00:48) Winston написал(а):
Цитата (johniek_comp @ 30.10.2011 - 23:40) |
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} } if (empty($login) or empty($password)) |
Что за поповщина? Забыл как инициализировать переменные ?
Цитата (johniek_comp @ 30.10.2011 - 23:40) |
$result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')"); |
Цитата (johniek_comp @ 30.10.2011 - 23:40) |
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$link); |
Инъекции.
Цитата (johniek_comp @ 30.10.2011 - 23:40) |
$myrow = mysql_fetch_array($result); |
Достаточно одного mysql_result
Цитата (johniek_comp @ 30.10.2011 - 23:40) |
echo "<small><a href="exit.php">Выход</a><br></small>"; |
Посмотри на кавычки.
Спустя 6 минут, 57 секунд (31.10.2011 - 00:55) imbalance_hero написал(а):
- В файле сессии у тебя синтаксическая ошибка. Интересно, смысл выставлять, когда не работает?! 
- В выходе: редирект делать лучше через header
- Если ошибка в форме - надо не на белом фоне писать, что ошибка входа, а именно на странице, где есть форма, что неправильно делается!
- добавление надо проверять через mysql_affected_rows .
- Проверка авторизации - достаточно проверить, есть ли юзер с таким логином и паролем в БД, и проверить через mysql_num_rows, есть ли запись. В обязательном порядке пиши LIMIT 1, чтобы всю базу не проходить запросом.
- mysql_fetch_assoc... сколько раз тебя тыкать в это...
- Где стили?
Вообще, не первый день на форуме, уже 100 раз тыкали на то, чтобы посмотрел на ирбисе, что и как делать надо, а в ответ 25, одно и то же... За 4 месяца должен быть хоть какой-то прогресс...

- В выходе: редирект делать лучше через header
- Если ошибка в форме - надо не на белом фоне писать, что ошибка входа, а именно на странице, где есть форма, что неправильно делается!
- добавление надо проверять через mysql_affected_rows .
- Проверка авторизации - достаточно проверить, есть ли юзер с таким логином и паролем в БД, и проверить через mysql_num_rows, есть ли запись. В обязательном порядке пиши LIMIT 1, чтобы всю базу не проходить запросом.
- mysql_fetch_assoc... сколько раз тебя тыкать в это...
- Где стили?
Вообще, не первый день на форуме, уже 100 раз тыкали на то, чтобы посмотрел на ирбисе, что и как делать надо, а в ответ 25, одно и то же... За 4 месяца должен быть хоть какой-то прогресс...
Спустя 2 минуты, 25 секунд (31.10.2011 - 00:58) imbalance_hero написал(а):
Winston
Там же htmlspecialchars & stripslashes, Я вот не помню, что там надо прописать, чтобы обойти такую защиту и всунуть инъекцию?
Там же htmlspecialchars & stripslashes, Я вот не помню, что там надо прописать, чтобы обойти такую защиту и всунуть инъекцию?
Спустя 3 минуты, 1 секунда (31.10.2011 - 01:01) johniek_comp написал(а):
Winston
imbalance_hero
спасибо! обязательно разберусь!
думаю прогресс есть я php месяц от силы учу, перерывами недельными просто!
а что ты писал про инъекции? не понял?
imbalance_hero
спасибо! обязательно разберусь!
думаю прогресс есть я php месяц от силы учу, перерывами недельными просто!
а что ты писал про инъекции? не понял?
Спустя 3 минуты, 48 секунд (31.10.2011 - 01:05) Winston написал(а):
Ты в поле логина вставь просто кавычку ' и посмотришь потом :)
При INSERT INTO сделай тоже самое.
И зачем ты используешь идентификатор ($link) неужели будешь с двумя БД работать ? :D
$result = mysql_query("SELECT * FROM `users` WHERE `login` = '" . mysql_real_escape_string($login) . "'",$link);
При INSERT INTO сделай тоже самое.
И зачем ты используешь идентификатор ($link) неужели будешь с двумя БД работать ? :D
Спустя 2 минуты, 49 секунд (31.10.2011 - 01:07) johniek_comp написал(а):
Winston
Цитата |
И зачем ты используешь идентификатор ($link) неужели будешь с двумя БД работать ? ![]() |
та просто переписываю как помню

Спустя 3 минуты, 45 секунд (31.10.2011 - 01:11) imbalance_hero написал(а):
Winston
Я что-то с другой перепутал, точно, не экранизируются
Я что-то с другой перепутал, точно, не экранизируются

Спустя 35 секунд (31.10.2011 - 01:12) imbalance_hero написал(а):
johniek_comp
Зачем переписывать? Читай как надо, учись, и принимай СВОИ решения, зачем в каждом из случаев ты пишешь то, либо другое.
Зачем переписывать? Читай как надо, учись, и принимай СВОИ решения, зачем в каждом из случаев ты пишешь то, либо другое.
Спустя 2 минуты, 26 секунд (31.10.2011 - 01:14) Invis1ble написал(а):
imbalance_hero
Цитата |
Зачем переписывать? Читай как надо, учись, и принимай СВОИ решения, зачем в каждом из случаев ты пишешь то, либо другое. |
да он по-моему и 50% сути не понимает, что конкретно он делает. Почитай его прошлый топик на досуге, он там 3 страницы вкуривал, почему у него ошибка в mysql_query() возникала. Короче тупой копипаст или механическое переписывание кода.
Спустя 1 минута, 36 секунд (31.10.2011 - 01:16) Winston написал(а):
johniek_comp
Читай подпись.
Читай подпись.
Спустя 1 минута, 27 секунд (31.10.2011 - 01:17) Invis1ble написал(а):
Кстати, именно эта подпись мне открыла глаза, как в действительности нужно учиться. Хотя я и до прочтения оной примерно также и поступал.
Спустя 30 минут, 3 секунды (31.10.2011 - 01:47) m4a1fox написал(а):
И шо ми получаем? Я таки был прав... Честно, тс, не в обиду, но займись делом. Тут не скорость важна, а качество... Пойми, можно сделать один сайт за 4 месяца, но который будет хорош во всем, а можно наклипать их сотню, но фиговых... Хотя дело твое...
Спустя 5 часов, 37 минут, 13 секунд (31.10.2011 - 07:24) YVSIK написал(а):
:D
вполне подходит !!johniek_comp!!

это и есть читейший поповкий код которым ты пытаешься СВЕРКНУТЬ!! :lol: :D
Свернутый текст
ну не обессудь, это не к тебе это к твоему кодиннгу применимо!!
Есть много способов пахнуть скунсом ;)
Есть много способов пахнуть скунсом ;)
вполне подходит !!johniek_comp!!

это и есть читейший поповкий код которым ты пытаешься СВЕРКНУТЬ!! :lol: :D
<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
if (empty($login) or empty($password))
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}
Спустя 13 часов, 1 минута, 58 секунд (31.10.2011 - 20:26) johniek_comp написал(а):
YVSIK
ну ты же меня обучишь, правда?
а чего накинулись все то! я только учусь! такие же самые были в начале если не хуже! первый блин он комом! сейчас уже переписал говнокод в быдлокод, и прикрутил быдлокапчу, правда аналог взял с интернета т.к. сам никогда не видел и не делал подобного + ф-и не знакомые, так по немногу и будет свой сайт на php
ВОТ ЭТО БУДЕТ ДЫРА!
ну ты же меня обучишь, правда?
а чего накинулись все то! я только учусь! такие же самые были в начале если не хуже! первый блин он комом! сейчас уже переписал говнокод в быдлокод, и прикрутил быдлокапчу, правда аналог взял с интернета т.к. сам никогда не видел и не делал подобного + ф-и не знакомые, так по немногу и будет свой сайт на php

Свернутый текст
ну ничего! вырасту я вам всем покажу!!!



Спустя 40 минут, 26 секунд (31.10.2011 - 21:07) imbalance_hero написал(а):
johniek_comp
Ты будешь расти, мы тоже...

Ты разберись с ирбисом, там очень много всего полезного, каждую функцию поклацай, тогда и научишься.
Не стоит спешить пока молодой.
Ты будешь расти, мы тоже...


Ты разберись с ирбисом, там очень много всего полезного, каждую функцию поклацай, тогда и научишься.
Не стоит спешить пока молодой.
Спустя 3 часа, 1 минута, 26 секунд (1.11.2011 - 00:08) Winston написал(а):
Спустя 7 часов, 51 минута, 45 секунд (1.11.2011 - 08:00) YVSIK написал(а):
Цитата |
правда аналог взял с интернета т.к. сам никогда не видел и не делал подобного + ф-и не знакомые, |
говоря слово функция ! надо точно знать, вернее понимать что это такое, ты вот говорищь постоянно это слово ФУНКЦИЯ, только всем ясно что ты и представления об этом не имеешь, что скрывается за этим словом,
пример в твоем коде ими не пахнет вообще , пока ты это не поймешь так и будет быдло код или как там у тебя, для примера оспарь мои слова и скажи, где у тебя в коде есть Именно функция и попробуй её описать, а может я не прав что так сказал, вот те пример отстаять свою точку зрения.
Как только ты сможешь это сделать, многие вопросы сами сабой отпадут, а так ты просто настукиваешь чужое, и пробуешь , А ВДРУГ И ЗАРАБОТАЕТ!!
те все про это и говорят, брось чужие коды выдавать за свои, и все поймут, топотому-что сами это и делали с самого начала и так-же, брали чужое и разбирались в чужом , уже потом получалось что-то свое, как только появлялось понимание того что написал, ВСЁ надобность в чужих кодах отпала навсегда и вопросы с вязанные с ними тоже
потому и надо те выучить все наизусть что те говорить Winston
_____________
