Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2009, 13:19   #1
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
Восклицание Помогите написать простой скрипт регистрации и работы с сеансом

Я на сайт хочу поставить регистрацию посетителей. Когда пользователь зарегистрируется и введет правильные пароль и имя должен включаться его сеанс.
PHP код:
registr.php
<?php
$login
=$_POST["login"];
$pass=$_POST["pass"];
$nameuser=$_POST["nameuser"]; 
?>
<form name="" method="post" action="">
  <p>
    имя<input type="text" name="login">
  </p>
  <p>
  пароль<input type="password" name="pass";>
  </p>
  <p>
 настоящее имя <input type="text" name="nameuser">
  </p>
  <input type="submit" name="Submit" value="Enter">
</form>
<?php 
$link 
= @mysql_connect("localhost" "root""") or die ("error database");
@
mysql_select_db("registr") or die ("Can_t select database");
if ((
$login!="")and($pass!="")and($nameuser!=""))
{
$group=2;  
$rez=mysql_query("INSERT INTO identif
VALUES ( 0 , '"
.$login."' , '".$pass."' , '".$nameuser."' , '".$group."' );") or die;
}
else {echo 
"not name or pas!";}
?>
<a href="../index.php">???</a>
PHP код:
pasport.php

<form action="index.php" method "Get">
   
имя
   
<input type="text" name="n"><br>
пароль 
<input type="password" name="p";>

<
br>
<
input type="Submit" Value="отправить">
</
form
И файл index.php В нем должен открываться сеанс при совпадении пароля и имени. Если пользователь группы 3, то это админ с полными полномочиями. 2 зарегистрированный пользователь. 1 -гость. Если зарегистрировашийся пользователь не кликал по сайту в течении 10 минут, то сессия закрывается. И он соответственно попадает в группу 1.
Помогите написать. Или дайте ссылку на похожий пример.
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 06.06.2009, 13:36   #2
iankov
Форумчанин
 
Регистрация: 04.01.2009
Сообщений: 188
По умолчанию

Использовать сессии.
когда юзер логинится, передавать его логин и пасс через $_POST данные и сразу делать выборку в БД. Если юзер с логином и пасом существует, вытягиваем заодно его группу(в которую он принадлежит) и делаем например так:
$_SESSION['user_id'] = $user_id;
$_SESSION['username'] = $user;
$_SESSION['user_group'] = $user_group;
и дальше на сайте в зависимость от прав, даем какие-то дополнительные возможности, типа if($_SESSION['user_group'] == 3){ //рисуем такую-то страничку с какими-то возмоностями редактировать или.... }

Насчет 10 минут, тут можно установить время сессии.
ini_set("session.gc_maxlifetime", "600"); 600 секунд = 10мин.

в общем делаем в такой последовательности: сначала
ini_set("session.gc_maxlifetime", "600");
потом
session_start();
а уже потом переменные присваиваем/переприсваиваем
$_SESSION['user_id'] = $user_id;
$_SESSION['username'] = $user;
$_SESSION['user_group'] = $user_group;

думаю суть ясна...)
iankov вне форума Ответить с цитированием
Старый 07.06.2009, 19:36   #3
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Получилось вот что
PHP код:
<?php
$n
=$_POST["n"];
$p=$_POST["p"];
if(
$_SESSION['usergroup']==2){echo"ÏÐÈÂÅÒ ÁÎÁ¨Ð ";}
else {
if(isset(
$n) and isset($p))
{
$link = @mysql_connect("localhost" "root""") or die ("error database");
@
mysql_select_db("registr") or die ("Can_t select database");
        
$result=mysql_query("SELECT password FROM auth WHERE name="$n"")or die ("error");
        
$group=mysql_query("SELECT group FROM auth WHERE name="$n"")or die ("error");
    
$row=mysql_fetch_array($result);
    
$gr=mysql_fetch_array($group);
  if (
$row!=NULL)
  {echo 
"not Name";}
  else 
  {
    if(
$p!=$row) {echo "error password";}
    else {
          if (
$gr==2
        {  
ini_set("session.gc_maxlifetime""600");
           
session_start();
          
$_SESSION['usergroup']=2;
            }
         }
  }    

}
     }
?>
Помогите!
------------------------------
Ум без разума –это беда!

Последний раз редактировалось veter_s_morya; 07.06.2009 в 19:39.
veter_s_morya вне форума Ответить с цитированием
Старый 07.06.2009, 20:56   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Вот попробывал воссоздать то, что вы хотите сделать. Данные (переменные сессии) из файла iuser.php передаются в файл user.php.

Файл iuser.php:
Код:
<?php
session_start();
$_SESSION['usergroup']=2;
echo "<html><head></head><body><a href=user.php>Ссылка</a></body></html>";
?>
Вот файл user.php (ваш), я в нем исправил пару ошибок связанных с кавычками "" будьте внимательны (например если вы в кавычках используете другие кавычки, тогда делайте так
Код:
$c="123"; mysql_query ("UPDATE zakaz SET cena='$c'");
):
Код:
<?php
session_start();
echo "<html><head></head><body>";
if($_SESSION['usergroup']==2) echo "Уряяя! ";
else {
if(isset($n) and isset($p))
{
$link = @mysql_connect("localhost" , "root", "") or die ("error database");
@mysql_select_db("registr") or die ("Can_t select database");
        $result=mysql_query("SELECT password FROM auth WHERE name='$n'")or die ("error");
        $group=mysql_query("SELECT group FROM auth WHERE name='$n'")or die ("error");
    $row=mysql_fetch_array($result);
    $gr=mysql_fetch_array($group);
  if ($row!=NULL)
  echo "not Name";
  else 
  {
  $n=$_POST['n'];
  $p=$_POST['p'];
    if($p!=$row) {echo "error password";}
    else {
          if ($gr==2) 
        {  ini_set("session.gc_maxlifetime", "600");
           session_start();  // хм.... а это что тут делает :) ?
          $_SESSION['usergroup']=2; // и это тоже
            }
         }
  }    

}
     }
	 echo "</body></html>";
?>
Очень советую вам ресурс http://www.php.su/ и плюс к этому всему зайдите сюда http://www.vanta.ru/script/php.php . Зачем изобретать колесо? Это во-первых, а во-вторых если вы любите создавать все вручную (это вообще супер, не у каждого есть такое желание), тогда советую посмотреть примеры других скриптов. Ведь на примерах и хорошей практики так все и учатся.

Последний раз редактировалось profi; 07.06.2009 в 21:29.
profi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт для автоматической регистрации в каталогах Anton62 PHP 0 12.05.2009 01:25
Скрипт регистрации Sounds PHP 7 09.03.2009 23:17