Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вход на сайт зарегистрированным пользователем, как сделать его страницу...
 
 автор: Panker   (25.04.2007 в 13:18)   письмо автору
 
 

Что то я не догнал, сижу голову ломаю пол часа...

Вот зарегистрировался у меня пользователь, мне нужно что бы он входил под своим логином и паролем и на странице входе допустим писался его ник!

только я не понимаю как сделать свою страницу?


Пример - пользователь зарегистрировался, создается страница с его ником, после входа он на неё попадает где проверяется пароль, это смешно конечно же, но я подругому обьяснить не могу, как все делают?

Мне просто систему нужно сделать что бы регистрировались пользователи - заходили и оставляли свои заявки по улучшению чего то, короче заходили и писали - завтра в 3 пол кило колбасы жду, и так далее, но как это сделать не догоняю...

   
 
 автор: zerocool   (25.04.2007 в 13:33)   письмо автору
 
   для: Panker   (25.04.2007 в 13:18)
 

Вводимый логин и пароль сравнивается с записанными в БД, если совпадает то назначается сессия, и на последующих страницах проверяется, если есть пользовательская сессия то открывается страница, если нет то выдается ошибка или что угодно по вашему вкусу

   
 
 автор: Panker   (25.04.2007 в 15:59)   письмо автору
 
   для: zerocool   (25.04.2007 в 13:33)
 

Это понятно, но если не трудно не могли бы дать пример пользовательской страницы, то есть как выводить всякую ересь, типа заказы пользователя или что он там натворил, пример какойнить :)

   
 
 автор: zerocool   (25.04.2007 в 16:16)   письмо автору
 
   для: Panker   (25.04.2007 в 15:59)
 

в сессию можно загнать интендификатор пользователя а от него уже потом и плясать.

скажем назначаете сессию
если пароли верны,то
Выбираем из базы его ID
$_query="SELECT id FROM users WHERE login='$login' AND pass='$pass'";
$result=mysql_query($query);
$row=mysql_fetch_row($result);

$_SESSION['valid_user']=$login."|".$row[0]);


В других файлах проверяете
if($_SESSION['valid_user']){
$s=explode("|",$_SESSION['valid_user'];
//это логин
$s[0]
//Это его ID
$s[1]
Ну искажем вы хотите посмотреть какие заказы он сделал
$_query="SELECT * FROM zakaz WHERE id_users='$s[1]'";
$result=mysql_query($query);
$row=mysql_fetch_row($result);

P.S.
Только надо сначала логическую цепочку таблиц построить в БД
И вкаждом файле не забывать стартовать сессию session_start();

   
 
 автор: Panker   (25.04.2007 в 16:43)   письмо автору
 
   для: zerocool   (25.04.2007 в 16:16)
 

.....ужас какойто :) Логическая цепочка :) В голове бы логическую цепочку встроить...


В общем скрипт расчитан на заказы людей, предположим есть 3 таблице

user - люди зареганные
bay - покупка ( вроде май это купить по англ? :) )

Вот только не понимаю где баланс пользователей держать? В базах юзера или новую таблицу создать под деньги? типа история когда ввёл когда вывел и так далее?

Предположим user bay money ..... сейчас опыты буду ставить, и если не трудно подскажите - вы бы под баланс пользователя отдельную таблицу сделали бы или нет? )

   
 
 автор: zerocool   (25.04.2007 в 16:49)   письмо автору
 
   для: Panker   (25.04.2007 в 16:43)
 

Если будет использоваться статистика, то отдельную таблицу
Если нет то прямо в юзерах

   
 
 автор: Panker   (25.04.2007 в 16:57)   письмо автору
 
   для: zerocool   (25.04.2007 в 16:49)
 

что то не много не допонимаю :)

делаю так, в базе есть юзер, ник Panker пароль 999

Index.php

<form method="POST" action="users/index.php"> 
Ник:<br> 
<input type="text" name="nick"><br> 
Пароль:<br> 
<input type="password" name="pass"><br> 
<input type="submit" value="Регистрировать"><br> 
</form>  


users/index.php

<?php
//Кодирование тегов и обратных слешей в нике 
$nick = ($_POST['nick']); 
$pass = ($_POST['pass']); 


$_query="SELECT id FROM users WHERE login='$login' AND pass='$pass'";
$result=mysql_query($query);
$row=mysql_fetch_row($result);

$_SESSION['valid_user']=$login."|".$row[0]);

?>


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

   
 
 автор: zerocool   (25.04.2007 в 17:10)   письмо автору
 
   для: Panker   (25.04.2007 в 16:57)
 


<?php 
session_start
();
$nick htmlspecialchars($_POST['nick']);  
$pass =htmlspecialchars($_POST['pass']);  


$_query="SELECT id FROM users WHERE nick='$nick AND pass='$pass'"
$result=mysql_query($query); 
$row=mysql_fetch_row($result); 
if(
$row){
$_SESSION['valid_user']=$nick."|".$row[0]); 
//и тд
}else{
Header("Location: login.php");
}
?> 

   
 
 автор: Panker   (25.04.2007 в 17:42)   письмо автору
 
   для: zerocool   (25.04.2007 в 17:10)
 

//и тд - значит что ещё и пароль туда запихнуть так?

а потом тот код что вы дали чуть выше?

   
 
 автор: Panker   (26.04.2007 в 23:22)   письмо автору
 
   для: Panker   (25.04.2007 в 17:42)
 

zerocool помоги плиз :(

   
 
 автор: zerocool   (27.04.2007 в 10:57)   письмо автору
 
   для: Panker   (26.04.2007 в 23:22)
 

<?php
session_start
();
$nick $_POST['nick'];
$pass =$_POST['pass'];


$_query="SELECT id FROM users WHERE nick='$nick' AND pass='$pass'";
$result=mysql_query($query);
$row=mysql_fetch_row($result);
if(
$row){
$_SESSION['valid_user']=$nick."|".$row[0]);
//Редирект если пароль верен, например на страницу заказов
Header("Location: order.php");
}else{
//Если пароль не верен на страницу регистрации
Header("Location: login.php");
}
?>

   
 
 автор: Trianon   (27.04.2007 в 09:16)   письмо автору
 
   для: zerocool   (25.04.2007 в 17:10)
 

$nick = htmlspecialchars($_POST['nick']);
$pass =htmlspecialchars($_POST['pass']);

Не надо такое советовать, пожалуйста!

   
 
 автор: RomantikPro   (27.04.2007 в 10:39)   письмо автору
 
   для: Trianon   (27.04.2007 в 09:16)
 

>$nick = htmlspecialchars($_POST['nick']);
>$pass =htmlspecialchars($_POST['pass']);
>
>Не надо такое советовать, пожалуйста!

А почему? Если не секрет :-)

   
 
 автор: Trianon   (27.04.2007 в 10:46)   письмо автору
 
   для: RomantikPro   (27.04.2007 в 10:39)
 

Примерно по той же причине, по которой Вы не пишете nick = sin($_POST['nick']); $pass =cos($_POST['pass']);
Потому что в этом месте нет нужды их писать. А информацию они искажают.

   
 
 автор: RomantikPro   (27.04.2007 в 11:15)   письмо автору
 
   для: Trianon   (27.04.2007 в 10:46)
 

правильно, спасибо! я думал "собака" зарыта :-)

   
 
 автор: Panker   (27.04.2007 в 17:25)   письмо автору
 
   для: RomantikPro   (27.04.2007 в 11:15)
 

мне такое пишут :(


Parse error: parse error, unexpected ')' in z:\home\reg_sait\www\users\index.php on line 11


сделал так как вы сказалиЮ, поля точно совпадают в базе запись есть

   
 
 автор: Panker   (28.04.2007 в 14:15)   письмо автору
 
   для: Panker   (27.04.2007 в 17:25)
 

так что за ошибка такая? ещё раз простите...

   
 
 автор: zerocool   (28.04.2007 в 14:22)   письмо автору
 
   для: Panker   (28.04.2007 в 14:15)
 

Уберите в конце скобку в строке

$_SESSION['valid_user']=$nick."|".$row[0]);

Это моя опечатка

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования