<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; PHP срочно нужна помощь session & cookie]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=28689&amp;type=atom" />
	<updated>2013-06-21T19:25:24Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=28689</id>
		<entry>
			<title type="html"><![CDATA[Re: PHP срочно нужна помощь session & cookie]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=351074#p351074" />
			<content type="html"><![CDATA[<p>Спасибо за ответ!<br />Но я уже решил эту проблему... <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></content>
			<author>
				<name><![CDATA[webber]]></name>
				<uri>https://linuxforum.ru/profile.php?id=26446</uri>
			</author>
			<updated>2013-06-21T19:25:24Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=351074#p351074</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: PHP срочно нужна помощь session & cookie]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=350419#p350419" />
			<content type="html"><![CDATA[<p>В недалеком прошлом у меня была такая галлюцинация.<br />В базе имеется таблица<br />1 колонка - Имя<br />2 колонка - MD5(login+password+erunda)<br />3 колонка - идентификатор выданный пользователю<br />4 колонка - время до которого этот идентификатор действует</p><p>Скрипт логина, получающий методом post имя и пароль<br /></p><div class="codebox"><pre><code>&lt;?php
  if(isset($_POST[&#039;name&#039;])){
    include &#039;t/connect.php&#039;;
    $log=addslashes($_POST[&#039;name&#039;]);
    $q=mysql_query(&quot;SELECT pas FROM auth WHERE login=&#039;$log&#039;&quot;) or die (&quot;нетуда&quot;);
    $f=mysql_fetch_row($q);
    if (MD5($_POST[&#039;name&#039;].$_POST[&#039;passwod&#039;].&quot;xb[ef[ef&quot;)==$f[0]){
      $tmp=MD5(rand(1,10).rand(10,25).date().&quot;ytgjyznrf!&quot;);
      $da=time()+3600;
      $lg=$_POST[&#039;name&#039;];
      if (mysql_query(&quot;UPDATE auth SET id=&#039;$tmp&#039;, limitD=&#039;$da&#039; WHERE login=&#039;$lg&#039;&quot;)){
    if (SetCookie(&quot;vmovsid&quot;,&quot;$tmp&quot;,time()+3600))
        header(&quot;Location: &quot;);   // при успешной авторизации перейдет по адресу
    else
       exit(&quot;невозможно установить кукиесы&quot;);
     }
     else
      exit (&quot;нетуда брынь $mysql_error()&quot;);
    }
    else{
       echo &quot;неправильно введен пароль&quot;;
        header(&quot;Location: куда-нить&quot;);
    }
  }
 else 
    exit (&quot;за вами выехала милиция&quot;);
?&gt;</code></pre></div><p>Скрипт получает логин имя и пароль, далее MD5(login+password+erunda) сравнивается со значением в базе для пользователя &quot;имя&quot;. Если успешно выдаем пользователю кукиес с идентификатором, также этот идентификатор записываем в базу и устанавливаем время до которого по нему можно входить.</p><p>Во все файлы к которым ограничен доступ обычным пользователям добавляем строку<br /></p><div class="codebox"><pre><code>&lt;?php include &#039;secure.php&#039;?&gt;</code></pre></div><p>Скрипт secure.php проверяет наличие идентификатора полученного от пользователя на валидность<br /></p><div class="codebox"><pre><code>&lt;?php
    if(isset($_COOKIE[&#039;vmovsid&#039;])){
      include &#039;connect.php&#039;;
      $q=mysql_query(&quot;SELECT id, limitD FROM auth&quot;);
      $f=mysql_fetch_row($q);
      if ($_COOKIE[&#039;vmovsid&#039;] == $f[0] &amp;&amp; time() &lt; $f[1]){
      ; // ниче не делаем, все впорядке
      }
      else {
    setcookie(&quot;vmovsid&quot;,&quot;&quot;);
    exit (&quot;попробуйте &lt;a href=/adminka&gt;авторизоваться&lt;/a&gt; заново&quot;);
      }
    }
    else
      exit(&quot;вы не прошли &lt;a href=&#039;/adminka&#039;&gt;авторизацию&lt;/a&gt; на сайте&quot;);
?&gt;</code></pre></div><p>По мне так вполне работоспособно. Правда требует некоторых доработок кода.</p>]]></content>
			<author>
				<name><![CDATA[marikk]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20103</uri>
			</author>
			<updated>2013-06-17T05:22:58Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=350419#p350419</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[PHP срочно нужна помощь session & cookie]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=350336#p350336" />
			<content type="html"><![CDATA[<p>Всем привет я начинаю учить PHP&nbsp; авторизация работа c session &amp; cookie.</p><p>Задача такая ограничить доступ в админку обычному пользователю форма авторизация общая при в авторизации админа должен быть доступ<br />к admin.php а при неавторизованных пользователях или обычных пользователях выбрасывало на главную (session &amp; cookie шифровать)</p><p>Я написал что вроде такого</p><p>Пример форма Login отправляет логин и пароль (POST) на login.php<br /></p><div class="codebox"><pre><code>&lt;?php

if($_POST[&#039;username&#039;] != &#039;&#039; and $_POST[&#039;passwd&#039;] != &#039;&#039;)
{
    if($_POST[&#039;username&#039;] == &#039;User1&#039; and $_POST[&#039;passwd&#039;] == &#039;Pass1&#039;)
    {
         session_start();
         setcookie(&#039;username&#039;, sha1($_POST[&#039;username&#039;]), time()+ 3600 * 24 * 7); // даем куки на 7 дней
         echo &#039;Hi &#039;. $_POST[&#039;username&#039;];
    }
}
?&gt;</code></pre></div><p>А вот пример настоящий который я пишу для сайта своего<br /></p><div class="codebox"><pre><code>    public function Login($login_in, $passwd_in, $remember){
        
        $this-&gt;LoginDB($login_in);
        $this-&gt;result-&gt;fetch();
            if($this-&gt;login == $login_in and $this-&gt;passwd == sha1($passwd_in))
            {
                session_start();
                if($this-&gt;groupname == &#039;admin&#039;)
                {
                    $_SESSION[&#039;login&#039;] = sha1($this-&gt;login);
                    if($remember){
                        setcookie(&#039;login&#039;, sha1($this-&gt;login), time()+ 3600 * 24 * 7);
                    }
                    header(&quot;Location: /admin.php&quot;);
                }
                else
                {
                    $_SESSION[&#039;login&#039;] = sha1($this-&gt;login);
                    if($remember){
                        setcookie(&#039;login&#039;, sha1($this-&gt;login), time()+ 3600 * 24 * 7);
                    }
                    header(&quot;Location: user.php&quot;);
                }
            }
        else{
            header(&quot;Location: /login.php&quot;);
        }</code></pre></div><br /><p>Вопрос как организовать проверку в файле&nbsp; admin.php<br />Я набросал в файле admin.php<br /></p><div class="codebox"><pre><code>&lt;?php
     if($_SESSION[&#039;username&#039;] !=&#039;&#039;){
          if($_SESSION[&#039;username&#039;] == ??? с чем сравнивать)
     
    }
?&gt;</code></pre></div><br /><p>Покажите пример кто может!!!!!!!!!!!!!!</p>]]></content>
			<author>
				<name><![CDATA[webber]]></name>
				<uri>https://linuxforum.ru/profile.php?id=26446</uri>
			</author>
			<updated>2013-06-15T22:14:04Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=350336#p350336</id>
		</entry>
</feed>
