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

Форум PHP

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

 

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

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

тема: Помогите с авторизацией
 
 автор: lev-chev   (13.08.2007 в 20:59)   письмо автору
 
 

Помогите пожалуста, у меня такой вопрос я на движке сайта (книга практика создания веб сайтов) решил сделать вот такой примерно сайт ( [url]2spb.ru [/url]), сейчас остановился на авторизации пользователей : использовал модуль авторизации (из ресурсов скачать) , сделал ссылку для входа, добавления пользователя.
Получается такая ситуация пользователь может сам добавиться с главной страницы и потом по замыслу я хочу направить его тут же на страницу добавления комерческого обьекта в базу (но впрос в том что я хотел бы чтоб к логину и паролю привязался именно этот вариант и в дальнейшем пользователь мог зайдя по паролю попадать в свою страницу редактитрования о об обьекте и добавлении нового или удалении)
Напишите что можно использовать и как спасибо.

Думаю надо внести изменения в файл adduser.php


<?php
  
///////////////////////////////////////////////////
  // Система авторизации HTTP-Basic авторизации
  // 2003-2005 (C) IT-студия SoftTime (http://www.softtime.ru)
  // Симдянов И.В. (simdyanov@softtime.ru)
  ///////////////////////////////////////////////////
  // Устанавливаем соединение с базой данных
  
require_once("config.php");
  
// Модуль безопасности
  
require_once("security_mod.php");

  
// Проверяем переданы ли имя пользователя и пароль
  
if(empty($_POST['name'])) exit("Не указано имя нового пользователя");
  if(empty(
$_POST['pass'])) exit("Не указан пароль пользователя");

  
// Проверяем равны ли пароли
  
if($_POST['pass'] != $_POST['pass_again']) exit("Пароли не равны");

  
// Проверяем, чтобы не было никаких SQL-инъекций
  
if (!get_magic_quotes_gpc())
  {
     
$_POST['name'] = mysql_escape_string($_POST['name']);
     
$_POST['pass'] = mysql_escape_string($_POST['pass']);
  }
  
$_POST['name'] = str_replace("'","`",$_POST['name']);
  
$_POST['pass'] = str_replace("'","`",$_POST['pass']);

  
// Если всё нормально создаём нового пользователя 
  
$query "INSERT INTO userlist VALUES (NULL,'$_POST[name]','".md5($_POST['pass'])."')";
  if(
mysql_query($query))
  {
   echo 
"Новый пользователь создан";
    echo 
"<HTML><HEAD>
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
            </HEAD></HTML>"
;
  }
  else
  {
    exit(
"Ошибка при добавлении нового пользователя");
  }
?>

   
 
 автор: cheops   (13.08.2007 в 23:10)   письмо автору
 
   для: lev-chev   (13.08.2007 в 20:59)
 

Не понятно, что вызывает затруднение.

   
 
 автор: lev-chev   (13.08.2007 в 23:49)   письмо автору
 
   для: cheops   (13.08.2007 в 23:10)
 

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

а может сессии попробовать

   
 
 автор: Unwors   (14.08.2007 в 05:07)   письмо автору
 
   для: lev-chev   (13.08.2007 в 23:49)
 

Попробуй так:

<?php 
session_start
(); 
 
/////////////////////////////////////////////////// 
 // Система авторизации HTTP-Basic авторизации   // 2003-2005 (C) IT-студия SoftTime (http://www.softtime.ru)   
// Симдянов И.В. (simdyanov@softtime.ru)   ///////////////////////////////////////////////////  
 // Устанавливаем соединение с базой данных   require_once("config.php");
   // Модуль безопасности   
require_once("security_mod.php"); 
  
// Проверяем переданы ли имя пользователя и пароль
   
if(empty($_POST['name'])) exit("Не указано имя нового пользователя");   
if(empty(
$_POST['pass'])) exit("Не указан пароль пользователя"); 
  
// Проверяем равны ли пароли   
if($_POST['pass'] != $_POST['pass_again']) exit("Пароли не равны"); 
  
// Проверяем, чтобы не было никаких SQL-инъекций
   
if (!get_magic_quotes_gpc())   {      
$_POST['name'] = mysql_escape_string($_POST['name']);      
$_POST['pass'] = mysql_escape_string($_POST['pass']);
   }   
$_POST['name'] = str_replace("'","`",$_POST['name']);
   
$_POST['pass'] = str_replace("'","`",$_POST['pass']); 
  
// Если всё нормально создаём нового пользователя
    
$query "INSERT INTO userlist 
VALUES (NULL,'
$_POST[name]','".
md5($_POST['pass'])."')";   
if(
mysql_query($query))
   {   
$_SESSION['name']=$name;
$_SESSION['pass']=$pass;
 echo 
"Новый пользователь создан";
 echo 
"<HTML><HEAD>             <META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>             </HEAD></HTML>";
   }
   else 
  { 
    exit(
"Ошибка при добавлении нового пользователя");
   } 
?>

   
 
 автор: cheops   (14.08.2007 в 10:57)   письмо автору
 
   для: lev-chev   (13.08.2007 в 23:49)
 

Да, необходимо поместить какой-то флаг в сессии (например уникальный идентификатор пользователя), который будет сигнализировать о том, что авторизация произошла. Объект соответственно помечать этим флагом.

   
Rambler's Top100
вверх

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