За последние 24 часа нас посетили 51519 программистов и 1446 роботов. Сейчас ищут 919 программистов ...

Сессии сделал пример..но работает на половину.

Тема в разделе "PHP для новичков", создана пользователем Dima4321, 30 ноя 2010.

  1. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    PHP:
    1. <form action="action.php" method="post">
    2.     <table>
    3.         <tr>
    4.             <td>Логин:</td>
    5.             <td><input type="text" name="LOGIN" /></td>
    6.         </tr>
    7.         <tr>
    8.             <td>Пароль:</td>
    9.             <td><input type="password" name="PASS" /></td>
    10.         </tr>
    11.         <tr>
    12.             <td></td>
    13.             <td><input type="submit" value="Войти" /></td>
    14.         </tr>
    15.     </table>
    16. </form>

    Файл action.php

    PHP:
    1. <?php
    2.  
    3. include('conn.php');
    4.  
    5. if ($_SEESION[id]=='dima')
    6.  
    7. {
    8.  
    9. echo " Значит ты вернулся с 3 страницы";
    10.  
    11.  
    12. echo "<a href='page2.php'> Перейди дальше</a>";
    13.  
    14. }
    15.  
    16. else
    17.  
    18. {
    19.  
    20.  
    21. if ($_POST[LOGIN]=='dima' and $_POST[PASS]=='abcd')
    22.  
    23. {
    24.    
    25.    
    26.     $_SESSION[id]=$_POST[LOGIN];
    27.      
    28.     $id=$_SESSION[id];
    29.  
    30.     $a=$_POST[LOGIN];
    31.  
    32.     $b=$_POST[PASS];
    33.    
    34.     echo " Твой  id $id <br>";
    35.  
    36.    
    37.  
    38.  $query ="SELECT * FROM paroli";
    39.  
    40.   $data = mysql_query($query);
    41.  
    42.  
    43.   $row=mysql_fetch_assoc($data);
    44.  
    45.     echo "Добро пожаловать в форум <b>$row[LOGIN]</b>" ;
    46.  
    47.     echo " Не забудь свой пароль <b> $row[PASS]</b><br>";
    48.  
    49.    
    50. echo "<a href='page2.php'> Перейди дальше</a>";
    51.  
    52.  
    53.  
    54.  
    55. }
    56.  
    57.  
    58. else
    59.  
    60. {
    61.  
    62. echo "Жаль. Сессия не передалась";
    63.  
    64. }
    65.  
    66. }
    67.  
    68.          
    69. ?>
    page2.php
    PHP:
    1. <?php
    2.  
    3. include('conn.php');
    4.  
    5.  
    6.     session_start();
    7.    
    8.      
    9.     $id=$_SESSION[id];
    10.  
    11.  echo "Ура твой ID передался. Поздравляю $id<br>";
    12.  
    13.  
    14. ?>
    15.  
    16. <a href='page3.php'> Давай попробуем дальше</a>
    page3.php

    PHP:
    1. <?php
    2.  
    3. include('conn.php');
    4.  
    5.  
    6.     session_start();
    7.    
    8.      
    9.     $id=$_SESSION[id];
    10.  
    11.  echo "И снова все передалось. Поздравляю $id<br>";
    12.  
    13.  
    14. ?>
    15.  
    16. <a href='action.php'> Давай вернемся на главную страницу</a>
    Когда возвращаюсь на страницу action пишет Жаль. Сессия не передалась ((
     
  2. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Я тебе ещё сколько раз должен написать в разных топиках, что элементы массива заключаются в кавычки?!
    $_SESSION['id'] а не $_SESSION[id] и так далее по тексту

    А пишет так, потому что у тебя условие, связаное с проверкой пост, а не сессии.
     
  3. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Я оставляю без кавычек потому как скрипты (возможно парадокс) с перменными POST спокойно рабоитают без кавычек.




    Вот же проверка сессии ??


    PHP:
    1.  if ($_SEESION[id]=='dima')
    2.  
    3.  {
    4.  
    5.  echo " Значит ты вернулся с 3 страницы";
    6.  
    7.  
    8.  echo "<a href='page2.php'> Перейди дальше</a>";
    9.  
    10.  }
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ensiferum
    отъебись от него. он сам с усам.
     
  5. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0

    ну вот уже и лексика пошла...
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Dima4321
    иди дальше пиши константы =)
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    так и будет должность: писатель констант
     
  8. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    А причем тут константы ??))
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    потому что блин ты пишешь константы =) доброе утро.
     
  10. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    PHP:
    1. if ($_SEESION[id]='dima')
    так тоже не помогает если ты о "=="
     
  11. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Для облегчения понимания обрал всё из условий и расствил переносы. Смотри:

    PHP:
    1.  <?php
    2.  
    3.  include('conn.php');
    4.  
    5. if ($_SEESION[id]=='dima') {
    6.  
    7. // Условие № раз
    8.  
    9. } else {
    10.  
    11.     if ($_POST[LOGIN]=='dima' and $_POST[PASS]=='abcd') {
    12.      
    13.       // условие № два  
    14.     } else {
    15.  
    16.         echo "Жаль. Сессия не передалась";
    17.     }
    18. }
    19. ?>
    Вычистив мусор, может увидишь, что правильно пишется $_SESSION['id'], а не $_SEESION[id]
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    =) хватит тролить. не смешно уже.
     
  13. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Эх зайцы вы мои..бросили меня..не помогаете ))

    все таки сделал я эти чертовы сессии, колхозно конечно с точки зрения взлома. Но авторизация от новичка готова )

    form.php

    PHP:
    1. <form action="index.php" method="post">
    2.     <table>
    3.         <tr>
    4.             <td>Логин:</td>
    5.             <td><input type="text" name="LOGIN" /></td>
    6.         </tr>
    7.         <tr>
    8.             <td>Пароль:</td>
    9.             <td><input type="password" name="PASS" /></td>
    10.         </tr>
    11.         <tr>
    12.             <td></td>
    13.             <td><input type="submit" value="Войти" /></td>
    14.         </tr>
    15.     </table>
    16. </form>
    17.  

    index.php

    PHP:
    1.  
    2. <?php
    3.  
    4.  
    5. if ($_POST[LOGIN]=='dima' and $_POST[PASS]=='abcd')
    6.  
    7.  
    8. {
    9.  
    10.  
    11. $_SESSION['auto']=true;
    12.  
    13. require('action.php');
    14.  
    15.  
    16. }
    17.  
    18.  
    19. else
    20.  
    21.  
    22. {
    23.  
    24. echo "неправильно имя или пароль";
    25.  
    26. ?>
    27.  
    28. <br>
    29. <a href='form.php'>назад</a>
    30.  
    31. <?php
    32.  
    33. }
    34.  
    35. ?>

    action.php


    PHP:
    1. <?php
    2.  
    3.  
    4. include('conn.php');
    5.  
    6.  
    7. if(!isset($_SESSION['auto']))
    8.  
    9. {
    10.  
    11. echo "нельзя так запускать";
    12.  
    13. }
    14.  
    15. else
    16.  
    17. {
    18.  
    19.  
    20. Мой код(скрипт) вывода из таблицы позиций
    21.  
    22. }
    23.  
    24.  
    25. ?>
    26.  
     
  14. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    ктсати нельзя ли вставить header ("Location:form.php'); в файл index в строчки 22-33 , чтобы был переброс(редирект) сразу на повторную авторизацию.. вместо <a href='form.php'>назад</a>

    Пробовал..но у меня не получилось почему-то..(
     
  15. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Dima4321
    Да ты блин вообще читаешь, что тебе пишут?
     
  16. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    ты опять про кавычки массивов ??))

    if ($_POST[LOGIN]=='dima' and $_POST[PASS]=='abcd') это условие работает без кавычек

    if ($_POST['LOGIN']=='dima' and $_POST['PASS']=='abcd') --можно и по-твоему ))
     
  17. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    поставь error_reporting(E_ALL); в начале скрипта и радуйся нотисам
     
  18. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    а мне казалось, что нотисы не входят в E_ALL странно
     
  19. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Padaboo
    в смысле глушить? Можно E_ALL && ~E_NOTICE. Просто у него нотисы глушатся, ну он и рад жизни.
     
  20. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Спрашиваю снова раз меня проигнорировали.

     
  21. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Ну и что именно не получилось? Ошибка или что?
     
  22. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    К Попову!
     
  24. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    слушайте , а можно мне нецензурный ragemod врубить ?
     
  25. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    http://phpfaq.ru/headers

    Смените аватару, разрешены только личные фотографии.