[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вход/Регистрация на сайте
ElfSam
Вот форма регистрации
HTML
<form name = "reg" action="registr.php" method="post" class="form1">
<h2 class="text2"> Форма регистрации: </h2>
<h3 class="text1">
<input type="text" name="login"> login* <br>
<input type="password" name="pass"> password* <p>
Дополнительные данные: <p>
<input type="text" name="adress"> Адрес*<br>
<input type="text" name="name"> ФИО* <br>
<input type="text" name="id_code"> Идент.код* <br>
<input type="text" name="telephone"> Телефон<p>
<h4> все поля, отмеченные *, должны быть заполнены <p>
<input type="submit" value=" Регистрация ">
<input type="reset" value=" Отменить ">
</h3>
</form>


Вот проверка на заполнение полей формы:
PHP
$login$_POST['login'];
            
$pass$_POST['pass'];
            
$adress$_POST['adress'];
            
$name$_POST['name'];
            
$id_code$_POST['id_code'];
            
$telephone$_POST['telephone'];
            if(
$login==NULL || $pass==NULL || $adress==NULL || $name==NULL || 

$id_code==NULL)
               {
                 echo 
'<div class="alert">';
                 echo 
'<img src="images1/alert1.jpg">';
                 echo 
'<h3>Не указано значение одного из полей, обязательных для ввода';
                 echo 
'<p>';
                 echo
'<a href="registrac.php"> <<< Вернуться к форме регистрации </a></h3>';
                 echo 
'</div>';
               }


А вот проверка на повторяющиеся данные, т.е. пользователь ввел уже существующую комбинацию логин/пароль (например Вася и 33333)
PHP
$str_sql_query = ("SELECT * FROM `users` WHERE `login`='".$login."' && 

`password`='"
.$pass."'");
$result=mysql_query($str_sql_query) or die (mysql_error()."<br/>".$str_sql_query);
if(
$result)
   {
     echo 
'<div class="alert">';
     echo 
'<img src="images1/alert1.jpg"> <p>';
     echo 
'<h3>Такая комбинаци login/password уже существует в базе данных!<br>';
     echo 
'<p>';
     echo
'<a href="registrac.php"> <<< Вернуться к форме регистрации </a></h3>';
     echo 
'</div>';
     exit();  
   }


Тут я пытаюсь найти в бд запись, которая соответствовала бы комбинации логин/пароль. Ошибка состоит в том, что сообщение "Такая комбинаци login/password уже существует в базе данных!" выводится, когда я хочу добавить данные нового пользователя, отличные от тех, что уже есть в бд



Спустя 3 минуты, 36 секунд (17.08.2009 - 12:09) ElfSam написал(а):
В этой теме вопросов у меня будет уйма, но для начала хочу разобраться с этим

Спустя 29 минут, 41 секунда (17.08.2009 - 12:39) Gabriel написал(а):
PHP
if(mysql_num_rows($result) > '0')

?

Спустя 5 минут, 4 секунды (17.08.2009 - 12:44) ElfSam написал(а):
Во! Действительно так работает! Спасибо!

Спустя 1 минута, 44 секунды (17.08.2009 - 12:46) Gabriel написал(а):
емм а чего пас на совпадение проверяеш?

Спустя 1 час, 4 минуты, 20 секунд (17.08.2009 - 13:50) ElfSam написал(а):
я проверяю комбинацию логин/пароль. Их лучше по отдельности проверять?

Спустя 25 минут, 13 секунд (17.08.2009 - 14:15) Gabriel написал(а):
ну при регистации насколько знаю проверяют лиш длинну пароля макс/мин и запрешают символы типa /][``´´{}^^^¨

Спустя 22 минуты, 27 секунд (17.08.2009 - 14:38) ElfSam написал(а):
А, ты имеешь ввиду проверить пароль на корректность, а не на наличие! Это я сделаю

Спустя 2 минуты, 51 секунда (17.08.2009 - 14:41) ElfSam написал(а):
У меня еще есть вопрос. Общего плана...
Что должно происходить при входе на сайт? Я имею ввиду, какие действия происходят, когда вводится логин и пароль и эти данные отправляются на сервер

Спустя 12 минут, 4 секунды (17.08.2009 - 14:53) Gabriel написал(а):
помоему ишються совпадения с данными в бд по полям логин&пасс&(мож еше чего шас каптчи еше ставят)

Спустя 2 часа, 54 минуты, 9 секунд (17.08.2009 - 17:47) ElfSam написал(а):
я понимаю, но что дальше, когда найдено совпадение?

Спустя 19 минут, 5 секунд (17.08.2009 - 18:06) Gabriel написал(а):
если совпадение найдено то пишеш его в переменную и лепиш ко всем страницам к которым должен иметь доступ только зарегистрированный пользователь.

Спустя 38 минут, 32 секунды (17.08.2009 - 18:44) Crэker написал(а):
Вот тебе неплохая статья регистрации с подтверждением email http://www.codenet.ru/webmast/php/PHP-Regi...on-Activate.php
в свое время мне помогла понять основы когда-то

Спустя 16 часов, 9 минут, 53 секунды (18.08.2009 - 10:54) ElfSam написал(а):
Я так пробовал
PHP
<?php
    $login
=$_POST['login'];
    
$pass=$_POST['password'];
    
$sdb_name "localhost";
    
$user_name "root";
    
$user_password "";
    
$db_name "nalog_fizlic";
    
$status='on';
    
$link=mysql_connect($sdb_name$user_name$user_password);
    if(!
$link)
                 {
                  echo 
'<div class="alert">';
                  echo 
'Не могу соединиться с сервером базы данных!<br>';
                  echo 
'</div>';
                  exit();
                 }
                if(!
mysql_select_db($db_name$link))
                  {
                    echo 
'<div class="alert">';
                    echo 
'Не могу выбрать базу данных<br>';
                    echo 
'</div>';
                    exit();            
                  }
$str_sql_query = ("SELECT id_code FROM `users` WHERE `login`='".$login."' && 

`password`='"
.$pass."'");
$result=mysql_query($str_sql_query) or die (mysql_error()."<br/>".$str_sql_query);
if(!
mysql_num_rows($result) > '0')
   {
     echo 
'<div class="alert">';
     echo 
'<h3>Такой комбинации login/password не существует в базе данных!<br>';
     echo 
'<p>';
     echo
'<a href="login.php"> <<< Назад </a></h3>';
     echo 
'</div>';
     exit();  
   }
else
   {
     
$field=select_field($result);
     
$str_sql_query = ("SELECT director FROM `predpr` WHERE `id_code`='".$field."' ");
     
$user_name=mysql_query($str_sql_query) or die (mysql_error()."<br/>".$str_sql_query);
     
$_POST['user']=select_field($user_name);
     echo 
'<div class="alert">';
     echo 
'<h3>Добро пожаловать, '.$_POST['user'].'!<br>';
     echo 
'<p>';
     echo
'<a href="main.php"> <<< На главную </a></h3>';
     echo 
'</div>';
     
   }

?>

<?php
 
function select_field($str)
  {
    while(
$mas=mysql_fetch_row($str))
             {
               foreach(
$mas as $field)
                           {
                             
$result=$field;
                           }
             }
    return 
$result;
  }



Спустя 3 минуты, 59 секунд (18.08.2009 - 10:58) ElfSam написал(а):
Тут по комбинации логин/пароль в этой же таблице users находится поле id_code, по этому полю id_code находится в таблице predpr имя зареганого пользователя. Я попытался записать это имя в суперглобальный массив $_POST, но это была ахинея.
Кто может подсказать, как это у людей делается

Спустя 2 минуты, 15 секунд (18.08.2009 - 11:00) ElfSam написал(а):
Ушел пока читать статью Activata.php

Спустя 31 минута, 32 секунды (18.08.2009 - 11:32) ElfSam написал(а):
Ну со статьей все ясно. Кое что полезное там есть, но я так и не понял как, сделать чтоб распознавался пользователь после входа на сайт

Спустя 1 минута, 29 секунд (18.08.2009 - 11:33) ElfSam написал(а):
Вот на phpforum.ru тока я зашел, мне сразу Привет, ElfSam! Вот вам ваши темы, вот ваша почта и т.д.

Спустя 40 секунд (18.08.2009 - 11:34) Gabriel написал(а):
PHP
$name = $_SESSION['username'];
echo "Здравствуйте вы вошли как $_SESSION['username']";

Спустя 4 минуты, 46 секунд (18.08.2009 - 11:39) ElfSam написал(а):
я, кажись, понял. Сейчас попробую реализовать

Спустя 3 минуты, 55 секунд (18.08.2009 - 11:43) Gabriel написал(а):
кажись некатить.
жмакни мну

Спустя 3 минуты, 43 секунды (18.08.2009 - 11:47) ElfSam написал(а):
ух ты!

Спустя 2 часа, 2 минуты, 52 секунды (18.08.2009 - 13:49) ElfSam написал(а):
Спасибо! Замечательная статья. Я тут не только про сессии узнал, но и про шифровку пароля, про каки, про объектно-ориентированный подход при создании сайта...
Вобщем задача про распознавание пользователя тоже решена.

Спустя 13 минут, 24 секунды (18.08.2009 - 14:03) Gabriel написал(а):
rolleyes.gif о такие ответы мне нравюццо больше:) biggrin.gif laugh.gif

Спустя 5 минут, 6 секунд (18.08.2009 - 14:08) ElfSam написал(а):
Теперь буду заниматься вопросами по проверке и кодировке пароля.

Спустя 10 минут, 57 секунд (18.08.2009 - 14:19) ElfSam написал(а):
Забыл спросить у народа...
Люди код с реализацией выложить? Тока там много файлов (8 штук)

Спустя 1 час, 4 минуты, 16 секунд (18.08.2009 - 15:23) twin написал(а):
Давай давай. Только под кат.

Спустя 4 минуты, 19 секунд (18.08.2009 - 15:27) ElfSam написал(а):
Цитата (twin @ 18.08.2009 - 12:23)
Только под кат.

Это как?

Спустя 28 минут, 21 секунда (18.08.2009 - 15:56) twin написал(а):
Свернутый текст
Вот так

Спустя 1 час, 6 минут, 37 секунд (18.08.2009 - 17:02) ElfSam написал(а):
oformlenie.php
Свернутый текст

HTML
<html>
<head>
<title>Подоходный налог с физических лиц </title>
<link rel="stylesheet" type="text/css" href="style2/my_style.css">
</head>
<body class="main">

<div class="blok_main">
<h1 class="text3"> Центр электронной <br> отчетности
<img src="images1/pen1.jpg">
</h1>
<img src="images1/logo.gif" class="img1">
<h3 class="text2">
<a href="main.php" class="text5">| Главная |</a>
<a href="" class="text5">| Отчеты |</a>
<a href="" class="text5">| Информация |</a>
<a href="" class="text5">| Почта |</a>
<a href="my_prof.php" class="text5">| Профиль |</a>

</h3>
</div>
<?php
session_start();
echo '<div class="blok_main">';
echo '<h3 class="text4">';
if(!isset($_SESSION['user']))
{
echo 'Здравствуйте, гость! (<a href="login.php"> Вход </a> / <a href="registrac.php">

Регистрация </a>)</h3></div>';
}
else
{
echo 'Здравствуйте, '.$_SESSION['user'].'! (<a href="login.php"> Вход </a>/ <a

href
="registrac.php">Регистрация </a>)</h3></div>';
}
?>
<div class="blok_bottom">
<h4 class="text6">
Центр электронной отчетности <br>
by Samoilov Dmitrii in 2009.
</h4>
</div>

</body>
</html>

Вот первый файл. Он отображает элементы, общие для всех страниц сайта. Это "шапка", главное меню, меню входа/регистрации, нижняя часть страницы. Здесть используется сессия для формирования приветствия:
PHP
if(!isset($_SESSION['user']))
        {
     echo 
'Здравствуйте, гость! (<a href="login.php"> Вход </a> / <a href="registrac.php"> 

Регистрация </a>)</h3></div>'
;
        }
     else
        {
           echo 
'Здравствуйте, '.$_SESSION['user'].'! (<a href="login.php"> Вход  </a>/ <a 

href="registrac.php">Регистрация </a>)</h3></div>'
;
        }

Спустя 13 минут, 47 секунд (18.08.2009 - 17:16) ElfSam написал(а):
Где же в суперглобальный массив $_SESSION заносятся данные о пользователе? Вот где:
log_action.php
Свернутый текст

PHP
<?php
    session_start
();
    include("oformlenie.php");
    include("mysql_connect.php");
    $login=$_POST['login'];
    $pass=$_POST['password'];
    
$str_sql_query 
= ("SELECT `id_code` FROM `users` WHERE `login`='".$login."' && `password`='".$pass."'");
$result=mysql_query($str_sql_query) or die (mysql_error()."<br/>".$str_sql_query);
if(!
mysql_num_rows($result) > '0')
   {
     echo '<div class="alert">';
     echo '<h3>Такой комбинации login/password не существует в базе данных!<br>';
     echo '<p>';
     echo'<a href="login.php"> <<< Назад </a></h3>';
     echo '</div>';
     exit();  
   
}
else
   {
     $mas=mysql_fetch_assoc($result);
     $_SESSION['id']=$mas['id_code'];
     $str_sql_query = ("SELECT `director` FROM `predpr` WHERE 

`id_code`='"
.$_SESSION['id']."'");
     $user_name=mysql_query($str_sql_query) or die (mysql_error()."<br/>".$str_sql_query);
     $mas=mysql_fetch_assoc($user_name);
     $_SESSION['user'] = $mas['director'];   
     echo 
'<div class="alert">';
     echo '<h3>Добро пожаловать, '.$_SESSION['user'].'!<br>';
     echo '<p>';
     echo'<a href="main.php"> <<< На главную </a></h3>';
     echo '</div>';
    }



При вводе данных в форму входа (она находится в файле registrac.php) проверяется существует ли комбинация логин/пароль. Если существует, то выбирается id пользователя (это первичный ключ, по которому связаны все таблицы в моей бд) и записывается в $_SESSION. Вообще id нужен, чтоб из таблицы predpr выбрать поле director. Выбираем это поле и записываем в массив $_SESSION. Теперь во всех скриптах где прописана функция session_start(), мы получаем доступ к двум переменным $_SESSION['id'] и $_SESSION['user'].
Файл этот не доработан, т.к. еще не реализована проверка правильности данных и шифрование пароля

Спустя 4 минуты, 17 секунд (18.08.2009 - 17:20) ElfSam написал(а):
Свернутый текст

PHP
<?php
     session_start
();
     include("oformlenie.php");
     include("mysql_connect.php");
     if(isset($_SESSION['id']))
        {
          $str_sql_query = ("SELECT * FROM `predpr` WHERE `id_code`= '".$_SESSION['id']."'");
          $result=mysql_query($str_sql_query) or die (mysql_error()."<br/>".$str_sql_query);
          $mas=mysql_fetch_row($result);
          echo '<div class="blok_rightx2">';
          echo '<h1 class="text2"> Ваши личные данные: <p> </h1>';
          echo '<table class="table_center">';
          echo '<tr>';
          echo '<td class="fon_td1"> Адрес вашего предприятия </td>';
          echo '<td class="fon_td3">'. $mas[0].'</td> </tr>';
          echo '<tr>';
          echo '<td class="fon_td2"> Вы </td>';
          echo '<td class="fon_td3">'. $mas[1].'</td> </tr>';
          echo '<tr>';
          echo '<td class="fon_td1"> Ваш идентификационный номер </td>';
          echo '<td class="fon_td3">'. $mas[2].'</td> </tr>';
          echo '<tr>';
          echo '<td class="fon_td2"> Ваш телефон </td>';
          echo '<td class="fon_td3">'. $mas[3].'</td> </tr>';
          echo '</table> <p>';
          echo '<h3 class=text1">';
          echo '
Данная страница позволит вам исправить ошибки, допущенные при регистрации. Ваш 

отредактированный профиль будет помещен в базу данных. Старые данные будут оттуда 

удалены. <p> Вы можете отредактировать свои данные <a href=""> здесь...</a> <p> Login и 

Пароль поменять нельзя. </h3> </div>'
;
        }
      else
        
{
          echo '<div class="alert">';
          echo '<h2> У вас нет профиля. Для этого необходима <a 

href="registrac.php">регитрация</a><br>'
;
          echo '<a href="main.php"> <<< На главную </a> </h2> </div>';
        }


Здесь используется $_SESSION['id'], чтобы получить доступ ко всем полям таблицы predpr, относящихся к данному пользователю. Зареганому пользователю можно посмотреть свой профиль (и отредактировать, но пока это не доделано), а гостю под зад и на главную.

Спустя 2 минуты, 1 секунда (18.08.2009 - 17:22) ElfSam написал(а):
Вот пока выложил те файлы, где используется идентификация пользователя

Спустя 1 час, 1 минута, 18 секунд (18.08.2009 - 18:24) twin написал(а):
Напиши первой строчкой скрипта это:
PHP
error_reporting(E_ALL E_NOTICE);

и увидишь массу интересного.

PHP
$str_sql_query = ("SELECT `id_code` FROM `users` WHERE `login`='".$login."' && `password`='".$pass."'");

Тут нужен оператор AND а не &&

Данные, поступющие из POST не обрабатываются.

PHP
if(!mysql_num_rows($result) > '0')

Это почему так? Зачем там инверсия? И 0 зачем в апострофах?

Сессию лучше стартовать там, где она нужна. То есть тут:

PHP
}
else
   {
    
session_start();
     
$mas=mysql_fetch_assoc($result);


Конструкцию echo нерентабельно вызывать на каждую строку.

Ну а в целом прогресс))








Спустя 1 час, 8 минут, 59 секунд (18.08.2009 - 19:33) ElfSam написал(а):
Цитата (twin @ 18.08.2009 - 15:24)
PHP
if(!mysql_num_rows($result) > '0')

Это почему так? Зачем там инверсия? И 0 зачем в апострофах?








Написано конечно замысловато, но работает правильно.

Спустя 1 час, 21 минута, 33 секунды (18.08.2009 - 20:54) ludovik написал(а):
Привет всем! ПОДСКАЖИТЕ ПОЖАЛУЙСТА!!! (установила скрипт-но регистрация чтото не работает) здесь может быть где нибудь ошибка? или в чем может быть дело?

PHP
$test=0;
   echo 
"<font style=\"font:12px;font-weight:bold\" color=black>регистрация пользователя</font><br><br>";
   if(isset(
$name))
   {
    require(
"admin/config.php");
    require(
"admin/checkevents_content.inc");
    
$db=mysql_pconnect($dbhost,$dbuser,$dbpassword);
    
mysql_select_db($dbname);
    echo 
"проверка поля с фио ";
    if(
strlen($name)>0)
    {
     
$test=1;
     echo 
"<color=red>Ok</font><br>";
    }
    else
     echo 
"<color=red>ошибка!!!</font><br>";
    echo 
"проверка поля с паспортными данными";
    if(
strlen($passport)>0)
    {
     
$test+=1;
     echo 
"<color=red>Ok</font><br>";
    }
    else
     echo 
"<color=red>ошибка!!!</font><br>";
    echo 
"проверка поля с именем пользователя ";
    if(
strlen($login)>0)
    {
     
$result=mysql_query("select * from users where login='$login'");
     if(
mysql_num_rows($result)==0)
     {
      
$test+=1;
      echo 
"<color=red>Ok</font><br>";
     }
     else
      echo 
"<color=red>такой пользователь уже существует!!!</font><br>";
    }
    else
     echo 
"<color=red>ошибка!!!</font><br>";
    echo 
"проверка поля с поролем: ";
    if((
strlen($password1)>0)and($password1==$password2))
    {
     
$test+=1;
     echo 
"<color=red>Ok</font><br>";
    }
    else
     echo 
"<color=red>ошибка!!!</font><br>";
    echo 
"проверка поля с  E-mail: ";
    if((
strlen($email)>0))
    {
     
$test+=1;
     echo 
"<color=red>Ok</font><br>";
    }
    else
     echo 
"<color=red>ошибка!!!</font><br>";
    if(
$test==5)
    {
     
mysql_query("insert into users values (NULL,'$name','$passport','$login','$password1','$email',0)");
     echo 
"<color=red>регистрация успешно завершена!!!</font>";
    }
   }
   if(
$test<5)
   {
    echo 
"<form action=\"registration.php\" method=get>";
    echo 
"<table>";
    echo 
"<tr><td>фамилия имя отчество</font></td><td><input size=27 style=\"font:12px;font-weight:bold;text-align:center\" type=text name=name maxlength=30></td></tr>";
    echo 
"<tr><td>паспортные данные</font></td><td><input size=27 style=\"font:12px;font-weight:bold;text-align:center\" type=text name=passport maxlength=75></td></tr>";
    echo 
"<tr><td>имя пользователя</font></td><td><input size=27 style=\"font:12px;font-weight:bold;text-align:center\" type=text name=login maxlength=20></td></tr>";
    echo 
"<tr><td>пароль</font></td><td><input size=26 style=\"font:12px;font-weight:bold;text-align:center\" type=password name=password1 maxlength=20></td></tr>";
    echo 
"<tr><td>подтвердите</font></td><td><input size=26 style=\"font:12px;font-weight:bold;text-align:center\" type=password name=password2 maxlength=20></td></tr>";
    echo 
"<tr><td>E-mail</font></td><td><input size=27 style=\"font:12px;font-weight:bold;text-align:center\" type=text name=email maxlength=25></td>";
    echo 
"<td><div align=\"center\"><br><input type=image src=\"img\button_reg.gif\"></td></tr>";
    echo 
"</table>";
    echo 
"</form>";

Спустя 7 минут, 31 секунда (18.08.2009 - 21:02) Gabriel написал(а):
PHP
if((strlen($email)>0))

was is das?
PHP
echo "<form action=\"registration.php\" method=get>";
echo "<table>";
echo "<tr><td>фамилия имя отчество</font></td><td><input size=27 style=\"font:12px;font-weight:bold;text-align:center\" type=text name=name maxlength=30></td></tr>";
echo "<tr><td>паспортные данные</font></td><td><input size=27 style=\"font:12px;font-weight:bold;text-align:center\" type=text name=passport maxlength=75></td></tr>";
echo "<tr><td>имя пользователя</font></td><td><input size=27 style=\"font:12px;font-weight:bold;text-align:center\" type=text name=login maxlength=20></td></tr>";
echo "<tr><td>пароль</font></td><td><input size=26 style=\"font:12px;font-weight:bold;text-align:center\" type=password name=password1 maxlength=20></td></tr>";
echo "<tr><td>подтвердите</font></td><td><input size=26 style=\"font:12px;font-weight:bold;text-align:center\" type=password name=password2 maxlength=20></td></tr>";
echo "<tr><td>E-mail</font></td><td><input size=27 style=\"font:12px;font-weight:bold;text-align:center\" type=text name=email maxlength=25></td>";
echo "<td><div align=\"center\"><br><input type=image src=\"img\button_reg.gif\"></td></tr>";
echo "</table>";
echo "</form>";

html рулид.


Спустя 18 минут, 42 секунды (18.08.2009 - 21:21) ElfSam написал(а):
Скрипт не работает? В чем ошибка выражается?

Спустя 13 часов, 40 минут, 53 секунды (19.08.2009 - 11:01) ElfSam написал(а):
Ошибки неизвесто в чем выражаются... Ладно, проехали.
У меня новая проблема. Она связана с шифрованием пароля. Когда я регаю пользователя то пишу:
PHP
$passmd5($_POST['pass']);

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

Спустя 4 минуты, 15 секунд (19.08.2009 - 11:06) ElfSam написал(а):
И еще вопрос:
в файл log_action.php добавил error_reporting(E_ALL & E_NOTICE);
Свернутый текст
PHP
<?php
    error_reporting
(E_ALL & E_NOTICE);
    session_start();
    include("oformlenie.php");
    include("mysql_connect.php");
    $login=mysql_real_escape_string($_POST['login']);
    $pass=md5($_POST['password']);
    
$str_sql_query 
= ("SELECT `id_code` FROM `users` WHERE `login`='".$login."' && 

`password`='"
.$pass."'");
$result=mysql_query($str_sql_query) or die (mysql_error()."<br/>".$str_sql_query);
if(
mysql_num_rows($result) == NULL)
   {
     echo '<div class="alert">';
     echo '<h3>Такой комбинации login/password не существует в базе данных!<br>';
     echo '<p>';
     echo'<a href="login.php"> <<< Назад </a></h3>';
     echo '</div>';
     exit();  
   
}
else
   {
     $mas=mysql_fetch_assoc($result);
     $_SESSION['id']=$mas['id_code'];
     $str_sql_query = ("SELECT `director` FROM `predpr` WHERE 

`id_code`='"
.$_SESSION['id']."'");
     $user_name=mysql_query($str_sql_query) or die (mysql_error()."<br/>".$str_sql_query);
     $mas=mysql_fetch_assoc($user_name);
     $_SESSION['user'] = $mas['director'];   
     echo 
'<div class="alert">';
     echo '<h3>Добро пожаловать, '.$_SESSION['user'].'!<br>';
     echo '<p>';
     echo'<a href="main.php"> <<< На главную </a></h3>';
     echo '</div>';
    }


Выдаестя: Notice: A session had already been started - ignoring session_start() in D:\Server\localhost\diplom\oformlenie.php on line 24.
Че б это значило?

Спустя 6 минут, 57 секунд (19.08.2009 - 11:13) Gabriel написал(а):
а при вводе пас в мд5 ненад переганять?(бред какойто несу но сам етим не занимался так особо)

Спустя 6 минут, 43 секунды (19.08.2009 - 11:19) ElfSam написал(а):
при вводе также пишу $pass= md5($_POST['pass']);
Но получается совсем другой шифр, не такой, что был сохранен в бд при регистрации

Спустя 22 часа, 48 минут, 15 секунд (20.08.2009 - 10:08) ElfSam написал(а):
Фу! Какой я болван ((
Шифровка/дешифровка очень просто делается:
При регистрации пароль шифруется
PHP
$passmd5($_POST['pass']);
и заносится в бд, а при входе проверка выполняется так
PHP
$str_sql_query = ("SELECT `id_code` FROM `users` WHERE `login`='".$login."' && `password`='".md5($pass)."'");


Спустя 1 час, 22 минуты, 53 секунды (20.08.2009 - 11:30) glock18 написал(а):
Цитата (ElfSam @ 19.08.2009 - 08:06)
error_reporting(E_ALL & E_NOTICE);


никто кроме не находит эту строку странной ?

Спустя 8 минут, 40 секунд (20.08.2009 - 11:39) Gabriel написал(а):
а че в ней страннного?

Спустя 2 часа, 48 минут, 38 секунд (20.08.2009 - 14:28) twin написал(а):
Цитата
никто кроме не находит эту строку странной ?

Мой косяк. Тильду прохлопал ушами. Скузми. Вот так надо:
PHP
error_reporting(E_ALL & ~E_NOTICE);

Спустя 23 часа, 49 минут, 45 секунд (21.08.2009 - 14:18) ElfSam написал(а):
Прилеплю в эту тему еще один вопрос.
Научился я регать пользователей. Научился их распознавать, когда они заходят на сайт. Теперь мне надо их поприветсвовать, типа "Здравствуйте, Петр Петрович!".
Можно было бы просто использовать сессию
PHP
if(!isset($_SESSION['user']))
        {
     echo 
'Здравствуйте, гость! (<a href="login.php"> Вход </a> / <a href="registrac.php"> 

Регистрация </a>)</h3></div>'
;
        }
     else
        {
            
$user_name=$_SESSION['user'];
           echo 
'Здравствуйте, '.$user_name.'! (<a href="login.php"> Вход  </a>/ <a 

href="registrac.php">Регистрация </a>)</h3></div>'
;
        }

Спустя 6 минут, 31 секунда (21.08.2009 - 14:24) ElfSam написал(а):
Но...
Когда пользователь регается, то он должен написать полностью ФИО (Петров Петр Петрович). И если просто сессию применить то и приветсвие будет такое же.
Мне надо отсюда выделить имя и отчество с помошью регулярного выражения.
Шаблон примерно так должен выглядить "заканчивается на <любая последовательность букв а-я> <Пробел> <любая последовательность букв а-я>".
Вот я его попытался зделать на пхп:
PHP
$user_name=eregi("([а-яА-Я]){1,}[[:space:]]([а-яА-Я]){1,}$", $_SESSION['user']);


Результат получился неожиданным:
Здравствуйте, 1!

У кого-нибудь есть мысли по этому поводу?

Спустя 6 минут, 27 секунд (21.08.2009 - 14:30) ElfSam написал(а):
Такой вариант на результат не повлиял
PHP
$user_name=eregi("[а-яА-Я]+[[:space:]][а-яА-Я]+$"$_SESSION['user']);

Спустя 7 минут, 25 секунд (21.08.2009 - 14:38) twin написал(а):
Чем каждый раз гонять регулярку, которая неизвестно что будет разбирать, лучше сразу сделать отдельные поля для имени и фамилии. Ведь юзер чёрти чё может написать.

Спустя 5 минут, 25 секунд (21.08.2009 - 14:43) ElfSam написал(а):
Мне так надо

Спустя 48 минут, 10 секунд (21.08.2009 - 15:31) Gabriel написал(а):
присоеденяюсь к твину! вот представь юзер заполнит все три поля чемто вроде "абабагаламага" и че ты будеш вытаскивать от туда??

Спустя 2 часа, 45 минут, 24 секунды (21.08.2009 - 18:17) ElfSam написал(а):
Все это лирика. А мне нужно решить данную задачу.
Я даж понял откуда там единица взялась. Просто 1 = TRUE, т.е. образец найден. Но как вернуть этот образец, вот теперь вопрос

Спустя 47 минут, 24 секунды (21.08.2009 - 19:04) twin написал(а):
Ну если до пробела, зачем вообще регулярка...
PHP
$user_name 'Иван Иваныч Иванов ';
$user_name explode(' ',$user_name);
echo 
$user_name[0];

Спустя 1 час, 53 минуты, 24 секунды (21.08.2009 - 20:58) ElfSam написал(а):
Это строка на три подстроки разбивается?

Спустя 9 минут, 20 секунд (21.08.2009 - 21:07) twin написал(а):
Это строка разбивается на массив.))

Спустя 12 часов, 56 минут (22.08.2009 - 10:03) ElfSam написал(а):
Вот как вытащить нужную подстроку по шаблону
PHP
$user_name=eregi("[а-яА-Я]+[[:space:]][а-яА-Я]+$"$_SESSION['user'], $name);


$name - массив, вкоторый записываются все совпадения, найденные в строке по шаблону. В моем случае - одно совпадение
PHP
echo $name[0];

Спустя 44 секунды (22.08.2009 - 10:04) ElfSam написал(а):
Но разбиение на моссив строк, по моему, лучше будет
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.