Научи ме

Програмиране => Уроци => PHP за начинаещи => Темата е започната от: gatakka в 25 Декември 2009, 18:34:25

Титла: Сесии (Sessions)
Публикувано от: gatakka в 25 Декември 2009, 18:34:25
** Тази тема дискутира:: Сесии (Sessions) (http://nau4i.me/c/72) **
Автор: Гатака
Титла: Отг:Сесии (Sessions)
Публикувано от: misq в 25 Декември 2009, 18:40:21
Разгледах урока за сесийте ти отново и видях 2 неща които не са точни ...

1 Каза че ще обясниш в друг урок за HiJacking или хай джакинг или там квото е и как да се предпазваме.. но никъде не видях

2 Каза че ще обясниш как да извеждаме сесийте в база данни
не че нз ама никъде не видях как става ..

3 Говриш за сесий като за бисквитки .. а те не са едно и също нещо сесията си създава една бисквитка PHP_SESSID ако не се лъжа...

докато бисквитките са съвсем друго нещо те се задават
setcookie($name, $value, $expire, $path, $domain, $secure, $httponly)

въпреки че не ги използвам ...


Извинявам се ако в някой от уроците си обяснил това а аз не съм го видял ...

И още нещо не разбрах 20 кб  може да бъде бисквитката създадена от сеися ли или 20 кб създадена с функциата по горе ?
Титла: Отг:Сесии (Sessions)
Публикувано от: lamondbg в 25 Декември 2009, 19:06:50
misq написа:
Цитат

2 Каза че ще обясниш как да извеждаме сесийте в база данни
не че нз ама никъде не видях как става ..

Я покажи, че тъкмо ми трябва.
Титла: Отг:Сесии (Sessions)
Публикувано от: walpsup в 25 Декември 2009, 19:31:04
lamondbg написа:
Цитат
misq написа:
Цитат

2 Каза че ще обясниш как да извеждаме сесийте в база данни
не че нз ама никъде не видях как става ..

Я покажи, че тъкмо ми трябва.

Ами аз мисля, че е доста нагло е така да казваш едва ли не дай ми кода ;] Без лоши чуства, но не мисля, че трябва така да става за всичко си има време, всички сме хора и ни е нужна почивка.Има си списък с уроците и техния ред на публикуване.
Титла: Отг:Сесии (Sessions)
Публикувано от: federer_11 в 25 Декември 2009, 19:49:31
lamondbg написа:
Цитат
misq написа:
Цитат

2 Каза че ще обясниш как да извеждаме сесийте в база данни
не че нз ама никъде не видях как става ..

Я покажи, че тъкмо ми трябва.


това пък е супер просто, няма смисъл от урок :P
Титла: Отг:Сесии (Sessions)
Публикувано от: lamondbg в 25 Декември 2009, 19:59:20
Явно не сте ме разбрали. Просто ми се струва че misq написа:
Цитат
не че нз ама никъде не видях как става ..
не вярно и ми стана интересно какво ще отговори @misq. Как да е...
Титла: Отг:Сесии (Sessions)
Публикувано от: misq в 26 Декември 2009, 01:49:43
Вижте сега аз не критикувам никой .. просто чух в урока че Иван говори за някакви неща .. и му казвам къде са му пропуските не му казвам направи урок  ... нито искам нещо от него ..

грешно сте ме разбрали
Титла: Отг:Сесии (Sessions)
Публикувано от: icanski в 15 Февруари 2010, 03:23:26
Благодаря, чудесен урок !
Титла: Отг:Сесии (Sessions)
Публикувано от: з.р.ъ.н.ч.о в 15 Февруари 2010, 07:47:50
misq написа:
Цитат
Разгледах урока за сесийте ти отново и видях 2 неща които не са точни ...

1 Каза че ще обясниш в друг урок за HiJacking или хай джакинг или там квото е и как да се предпазваме.. но никъде не видях

2 Каза че ще обясниш как да извеждаме сесийте в база данни
не че нз ама никъде не видях как става ..

3 Говриш за сесий като за бисквитки .. а те не са едно и също нещо сесията си създава една бисквитка PHP_SESSID ако не се лъжа...

докато бисквитките са съвсем друго нещо те се задават
setcookie($name, $value, $expire, $path, $domain, $secure, $httponly)

въпреки че не ги използвам ...


Извинявам се ако в някой от уроците си обяснил това а аз не съм го видял ...

И още нещо не разбрах 20 кб  може да бъде бисквитката създадена от сеися ли или 20 кб създадена с функциата по горе ?

Ти морал имаш ли изобщо?а?е... наглоста не стига, че ви показва нещо Иван, но и с претенции. Замълчи поне за малко!
Титла: Отг:Сесии (Sessions)
Публикувано от: gatakka в 15 Февруари 2010, 10:47:03
1 Каза че ще обясниш в друг урок за HiJacking или хай джакинг или там квото е и как да се предпазваме.. но никъде не видях

Не е направен. По темата може да се говори години. И честно казано, имам съмнения дали да ви показвам как се правят  " крабни "  понеже ще почнете да злоупотребявате, а много от нашите родни мили масови сайтове са податливи на тези хакове (gepime и подобните).

2 Каза че ще обясниш как да извеждаме сесийте в база данни
не че нз ама никъде не видях как става ..

Не е направен. Ще го има, но винаги може да потърсиш в интернет. Примери хиляди, и това е един от начините да се предпазиш от  " кражба " . Не ако посто я прехвърлиш в база, а понеже като я прехвърлиш вече може да правиш много допълнителни проверки и имаш тотален контрол върху сесията.

3 Говриш за сесий като за бисквитки .. а те не са едно и също нещо сесията си създава една бисквитка PHP_SESSID ако не се лъжа...

Не са едно и също, нарочно обяснявам така за да не се бъркате. В бисквитката се записва един уникален стринг с дължина 32 знака, а самите данни са на сървъра. Бисквитката е ключа към сесията, и този ключ взима данните.  И за да отвориш сесия, трябва да вдигнеш бисквитка. И в база да я сложиш пак ти трябва бисквитка. Така работи мрежата.
Титла: Отг:Сесии (Sessions)
Публикувано от: mary в 16 Февруари 2010, 09:00:57
Много благодаря за целия труд! Уроците са страхотни, всичко е обяснено много достъпно дори и за неразбирачи като мен. Ако някой иска да научи PHP трябва да започне от този сайт. Успех!
Титла: Отг:Сесии (Sessions)
Публикувано от: bulforce в 28 Май 2010, 21:02:18
Видях, че коментирате отвличане на сесии... темата е интересна но както гатака каза... маи не е много за широко дискутиране тъй като действително маи няма легално приложение.

Аз обаче искам да повдигна един друг въпрос, тои също е малко така с въпросителни но поне за мен има легално приложение. Става дума за отравяне на сесии. Моля ако има някои по-запознат с това да пише какви са му впечатлениятта.. проблеми.. идеи.. приложение.. модели.. и тнт.
Титла: Re:Сесии (Sessions)
Публикувано от: Деан Христов в 16 Април 2011, 11:13:43
Здравейте. изкам да попитам имам сшедният проблем вчера си сложих Windows7   инсатлирах  xampp и имам някъкав проблем със
$_session['?'];
Вадими следната грешка:
Notice: Undefined index: login in C:\xampp\htdocs\mcf\function.php on line 17
Ето го и кода?
Код: PHP
  1. <?php
  2.         $Test='safety';
  3.         if($_SESSION['login']===true) => Тук е ред 17
  4.         {
  5.             echo 'ok.';
  6.         }
  7.         else{
  8.             echo '<a href="index.php">Начало</a> | <a href="login.php">Вход</a> | <a href="register.php">Регистрация</a>';
  9.         }
  10.        
  11.         ?>
Ще ви бъда благодарен ако ми помогнете :)
Титла: Re:Сесии (Sessions)
Публикувано от: HD в 16 Април 2011, 11:22:13
Здравейте. изкам да попитам имам сшедният проблем вчера си сложих Windows7   инсатлирах  xampp и имам някъкав проблем със
$_session['?'];
Вадими следната грешка:
Notice: Undefined index: login in C:\xampp\htdocs\mcf\function.php on line 17
Етого и кода?
Код: PHP
  1. <?php
  2.         $Test='safety';
  3.         if($_SESSION['login']===true) => Тук е ред 17
  4.         {
  5.             echo 'ok.';
  6.         }
  7.         else{
  8.             echo '<a href="index.php">Начало</a> | <a href="login.php">Вход</a> | <a href="register.php">Регистрация</a>';
  9.         }
  10.        
  11.         ?>
Ще ви бъда благодарен ако ми помогнете :)
Като цяло не мога да разбера каква е идеята на кода ти. Дай да го видя целия.
Титла: Re:Сесии (Sessions)
Публикувано от: HanKrum в 16 Април 2011, 11:52:51
Като начало няма session_start()
Титла: Re:Сесии (Sessions)
Публикувано от: Деан Христов в 16 Април 2011, 12:16:54
Здравейте. изкам да попитам имам сшедният проблем вчера си сложих Windows7   инсатлирах  xampp и имам някъкав проблем със
$_session['?'];
Вадими следната грешка:
Notice: Undefined index: login in C:\xampp\htdocs\mcf\function.php on line 17
Етого и кода?
Код: PHP
  1. <?php
  2.         $Test='safety';
  3.         if($_SESSION['login']===true) => Тук е ред 17
  4.         {
  5.             echo 'ok.';
  6.         }
  7.         else{
  8.             echo '<a href="index.php">Начало</a> | <a href="login.php">Вход</a> | <a href="register.php">Регистрация</a>';
  9.         }
  10.        
  11.         ?>
Ще ви бъда благодарен ако ми помогнете :)
Като цяло не мога да разбера каква е идеята на кода ти. Дай да го видя целия.

Код: PHP
  1. <?php
  2. function my_hedar($title)
  3. {
  4.     session_start();
  5.  
  6.  
  7. ?>
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10.     <head>
  11.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  12.         <title><?php echo $title; ?></title>
  13.     </head>
  14.     <body>
  15.  
  16.         <div id="Top_menu">
  17.         <?php
  18.                
  19. if($_SESSION['is_logged']===true)
  20.                 {
  21.  
  22.                 }
  23.                 else{
  24.  
  25.                 }
  26.         ?>
  27.             </div>
  28.  
  29.         <?php
  30. }
  31. function my_futer()
  32. {
  33.  
  34.     echo '</body>
  35. </html>';
  36. }
  37.     ?>
Това е целият код който го include в index.php
Титла: Re:Сесии (Sessions)
Публикувано от: HD в 16 Април 2011, 12:29:17
Затвори си хедър функцията... Гледайки кода ти,  не си разбрал смисъла на сесиите. Изгледай отново видеото на Иван. И какво точно искаш да направиш с тоя код? Каква ти е идеята? :)
Титла: Re:Сесии (Sessions)
Публикувано от: Деан Христов в 16 Април 2011, 13:04:29
Затвори си хедър функцията... Гледайки кода ти,  не си разбрал смисъла на сесиите. Изгледай отново видеото на Иван. И какво точно искаш да направиш с тоя код? Каква ти е идеята? :)

Къде точно видя, че не е затворена скобата на хедара?
Къде точно е грешката в сесията?
Титла: Re:Сесии (Sessions)
Публикувано от: HanKrum в 16 Април 2011, 13:46:14
Код: PHP
  1. <?php
  2. function my_hedar($title)
  3. {
  4.     session_start();
  5.  
  6.  
  7. ?>

би трябвало да е:
Код: PHP
  1. <?php
  2. function my_hedar($title)
  3. {
  4.     session_start();
  5. }
  6. ?>

п.п. Доста странен код ?!?!
Титла: Re:Сесии (Sessions)
Публикувано от: HanKrum в 16 Април 2011, 13:53:31
Ахаааа май, че вдянах, това ти е функцията my_hedar нали?
Код: PHP
  1. <?php
  2. function my_hedar($title)
  3. {
  4.     session_start();
  5.  
  6.  
  7. ?>
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10.     <head>
  11.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  12.         <title><?php echo $title; ?></title>
  13.     </head>
  14.     <body>
  15.  
  16.         <div id="Top_menu">
  17.         <?php
  18.                
  19. if($_SESSION['is_logged']===true)
  20.                 {
  21.  
  22.                 }
  23.                 else{
  24.  
  25.                 }
  26.         ?>
  27.             </div>
  28.  
  29.         <?php
  30. }

трябваше да броя скоби :) , но пак ми се струва, че е странен кода
Титла: Re:Сесии (Sessions)
Публикувано от: Деан Христов в 16 Април 2011, 14:15:08
Ахаааа май, че вдянах, това ти е функцията my_hedar нали?
<?php
function my_hedar($title)
{
    
session_start();


?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><?php echo $title?></title>
    </head>
    <body>

        <div id="Top_menu">
        <?php
               
if($_SESSION['is_logged']===true)
                {

                }
                else{

                }
        
?>

            </div>

        <?php
}

трябваше да броя скоби :) , но пак ми се струва, че е странен кода
Целта ми на тази фунция " my_hedar($title)" е да не си играя всеки път да пиша html кода и сесята в свеки файл. Много станно по принцим под линукс съто по този начин си организирам кода и нямам проблем, а тук неми е ясно защо се получава така?
Титла: Re:Сесии (Sessions)
Публикувано от: jazzman в 16 Април 2011, 15:52:26
Разбира се, можеш да го направиш по начина по който е, но е манджа с грозде.
Аз бих го направил по следният начин :
1, Създай си файл наречен session.php
2.В него сложи session_start и създай две нови функции с малко логика, в случая да провери дали има такъв потребител с такова id взето от базата и ако има той да се логне в системата, ако ли не да бъде пренасочен към файла с логин формата. По този начин ти правиш проверка преди да бъде инклуднат HTML документа и игнорираш грешки от рода - Warning: Cannot modify header information - headers already sent.

<?php

session_start
();

function 
logged_in(){
    return isset(
$_SESSION['user_id']);
}
function 
confirm_logged_in () {
   if(!
logged_in()){
      
header("Location: login.php"); /* Redirect to login.php file */
   
}
}

?>


3. След това вече създай файл с име header.php и в него сложи само HTML документа, няма смисъл да създаваш функция, смисъла от функцията е когато се извършва някаква логика  в нея:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><?php echo $title?></title>
    </head>
    <body>

        <div id="Top_menu">


4.Променливата title си я дефинираш в зависимост от това на коя страница се намираш и игнорираш съобщението -  Notice: Undefined index.

5. След това ползваш, примерно функцията include() за да ги вкараш в home страницата ти или там каквото ще бъде.

<?php
include('session.php');
include(
'header.php');
$title 'home';
?>


По този начин ще видиш, че се разделя логиката от презентацията, а не както ти си го направил всичко в кюпа вкарано в една функция.
Титла: Re:Сесии (Sessions)
Публикувано от: Деан Христов в 16 Април 2011, 16:07:06
Разбира се, можеш да го направиш по начина по който е, но е манджа с грозде.
Аз бих го направил по следният начин :
1, Създай си файл наречен session.php
2.В него сложи session_start и създай две нови функции с малко логика, в случая да провери дали има такъв потребител с такова id взето от базата и ако има той да се логне в системата, ако ли не да бъде пренасочен към файла с логин формата. По този начин ти правиш проверка преди да бъде инклуднат HTML документа и игнорираш грешки от рода - Warning: Cannot modify header information - headers already sent.

<?php

session_start
();

function 
logged_in(){
    return isset(
$_SESSION['user_id']);
}
function 
confirm_logged_in () {
   if(!
logged_in()){
      
header("Location: login.php"); /* Redirect to login.php file */
   
}
}

?>


3. След това вече създай файл с име header.php и в него сложи само HTML документа, няма смисъл да създаваш функция, смисъла от функцията е когато се извършва някаква логика  в нея:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><?php echo $title?></title>
    </head>
    <body>

        <div id="Top_menu">


4.Променливата title си я дефинираш в зависимост от това на коя страница се намираш и игнорираш съобщението -  Notice: Undefined index.

5. След това ползваш, примерно функцията include() за да ги вкараш в home страницата ти или там каквото ще бъде.

<?php
include('session.php');
include(
'header.php');
$title 'home';
?>


По този начин ще видиш, че се разделя логиката от презентацията, а не както ти си го направил всичко в кюпа вкарано в една функция.
Ще пробвам.Мерси за савета :)
Титла: Re:Сесии (Sessions)
Публикувано от: jazzman в 16 Април 2011, 16:14:53
No problem, савет се пише с "ъ".
Обърни внимание и на правописа си, ужасен е
Титла: Re:Сесии (Sessions)
Публикувано от: Деан Христов в 16 Април 2011, 16:17:31
Разбира се, можеш да го направиш по начина по който е, но е манджа с грозде.
Аз бих го направил по следният начин :
1, Създай си файл наречен session.php
2.В него сложи session_start и създай две нови функции с малко логика, в случая да провери дали има такъв потребител с такова id взето от базата и ако има той да се логне в системата, ако ли не да бъде пренасочен към файла с логин формата. По този начин ти правиш проверка преди да бъде инклуднат HTML документа и игнорираш грешки от рода - Warning: Cannot modify header information - headers already sent.

<?php

session_start
();

function 
logged_in(){
    return isset(
$_SESSION['user_id']);
}
function 
confirm_logged_in () {
   if(!
logged_in()){
      
header("Location: login.php"); /* Redirect to login.php file */
   
}
}

?>


3. След това вече създай файл с име header.php и в него сложи само HTML документа, няма смисъл да създаваш функция, смисъла от функцията е когато се извършва някаква логика  в нея:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><?php echo $title?></title>
    </head>
    <body>

        <div id="Top_menu">


4.Променливата title си я дефинираш в зависимост от това на коя страница се намираш и игнорираш съобщението -  Notice: Undefined index.

5. След това ползваш, примерно функцията include() за да ги вкараш в home страницата ти или там каквото ще бъде.

<?php
include('session.php');
include(
'header.php');
$title 'home';
?>


По този начин ще видиш, че се разделя логиката от презентацията, а не както ти си го направил всичко в кюпа вкарано в една функция.
Ще пробвам.Мерси за савета :)

Много странно пробвах така по твойта логика сесията се стартира но пак изкача това съобщение:
// Notice: Undefined index: is_logged in C:\xampp\htdocs\mcf\index.php on line 4
Титла: Re:Сесии (Sessions)
Публикувано от: jazzman в 16 Април 2011, 16:26:03
Естествено, нямаш SESSION['user_id'] в session.php, вече по този файл ти трябва да направиш проверката в базата да извлечеш инфото от нея и да вкараш ид-то на юзера в SESSION['user_id'].
Титла: Re:Сесии (Sessions)
Публикувано от: Деан Христов в 16 Април 2011, 20:58:33
No problem, савет се пише с "ъ".
Обърни внимание и на правописа си, ужасен е
На теб нети ли се случва да допускаш правописни грешки ??? Или можеби имаш 6 по Български език, ако е така браво :)
Титла: Re:Сесии (Sessions)
Публикувано от: HD в 16 Април 2011, 22:33:15
No problem, савет се пише с "ъ".
Обърни внимание и на правописа си, ужасен е
На теб нети ли се случва да допускаш правописни грешки ??? Или можеби имаш 6 по Български език, ако е така браво :)
Първо не приемай поста на jazz като заяждане... Във всеки един твой пост е с грешки...  :)
Титла: Re:Сесии (Sessions)
Публикувано от: Деан Христов в 16 Април 2011, 22:46:32
No problem, савет се пише с "ъ".
Обърни внимание и на правописа си, ужасен е
На теб нети ли се случва да допускаш правописни грешки ??? Или можеби имаш 6 по Български език, ако е така браво :)
Първо не приемай поста на jazz като заяждане... Във всеки един твой пост е с грешки...  :)
Е да. Имам тук-там по някоя друга правописна грешка, но несмятам, че  това може да се тълкува като "Ужасно"
Титла: Re:Сесии (Sessions)
Публикувано от: Деан Христов в 16 Април 2011, 23:36:58
No problem, савет се пише с "ъ".
Обърни внимание и на правописа си, ужасен е
На теб нети ли се случва да допускаш правописни грешки ??? Или можеби имаш 6 по Български език, ако е така браво :)
Първо не приемай поста на jazz като заяждане... Във всеки един твой пост е с грешки...  :)
Е да. Имам тук-там по някоя друга правописна грешка, но несмятам, че  това може да се тълкува като "Ужасно"

Тази досадна грешка:
Notice: Undefined index: fs in C:\xampp\htdocs\mcf\login.php on line 6 се получава от настройките в php.ini по точно в секция
error_reporting. Проблемат се оправя по два начина
1. Настройка на секцията в php.ini трябва да бъде по следният начин:
еrror_reporting = E_ALL & ~E_NOTICE
2. Просто да сложите този код: error_reporting (E_ALL ^ E_NOTICE); в вашият файл.Там където работите с масиви и променливи  с глобална видимост.
Титла: Re:Сесии (Sessions)
Публикувано от: Avalanche в 16 Април 2011, 23:40:08
Е да. Имам тук-там по някоя друга правописна грешка, но несмятам, че  това може да се тълкува като "Ужасно"
Ти може и да "несмяташ", обаче е малко тревожно положението ;)
Титла: Re:Сесии (Sessions)
Публикувано от: jazzman в 18 Април 2011, 18:44:25
Цитат
Е да. Имам тук-там по някоя друга правописна грешка, но несмятам, че  това може да се тълкува като "Ужасно"
Нищо лично не храня към теб, дори напротив  :)
И аз допускам много грешки, а сме българи и не говори добре за нас да пишем неграмотно.
Титла: Re:Сесии (Sessions)
Публикувано от: Деан Христов в 18 Април 2011, 23:24:53
Цитат
Е да. Имам тук-там по някоя друга правописна грешка, но несмятам, че  това може да се тълкува като "Ужасно"
Нищо лично не храня към теб, дори напротив  :)
И аз допускам много грешки, а сме българи и не говори добре за нас да пишем неграмотно.
Ммм. Със сигорност е така, значи като се върна назат с няколко изречения чак ми става смешно за правописа си но това са грешки от недоглеждане по скоро.
Титла: Re:Сесии (Sessions)
Публикувано от: wuser в 18 Април 2011, 23:34:55
Дидо моля спри, че ни напуши смях без джойнт. Просто си задай въпросите. Назад моме Калино ;)
Титла: Re:Сесии (Sessions)
Публикувано от: kerkenez в 19 Април 2011, 09:52:58
Не сте на матура по БЕЛ, давайте по темата.
Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 08 Юни 2011, 15:07:55
Kakъв е проблемът?

Налични:
PHP Version 5.3.2-1ubuntu4.9
Ubuntu 10.04 LTS

За n-ти път гледам ревизията за сесии и също за конфигурация на php.ini. Всичко повторено сляпо и чеп тате мляко - кравата е ялова.
При тази подредба в кода трябваше да гърми относно хедърите бля-бля-бля. Обаче всичко баца ток и жици. Праскам пробели на кубици, html преди php и всичко гуд. Има нещо гнило в Дания!

(http://s1.postimage.org/f8v5bdac/session.jpg) (http://s1.postimage.org/3yusv4g8d/session.png)

Къде да копам, че нещо като не е така ме прави крейзи!
Титла: Re:Сесии (Sessions)
Публикувано от: HD в 08 Юни 2011, 15:25:16
Виж error_reporting-a.. Виж дали нещо ще се промени ако добавиш един ред в кода error_reporting[E_ALL |E_STRICT]
Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 08 Юни 2011, 16:32:28
Pедактирах php.ini, a след него рестартирах/презаредих Apapche2. Ново 20.
При първо зареждане извежда това:
Google
Notice: Undefined index: a in /var/www/session.php on line 6 1


след което изчезва забележката при презареждане на браузъра. Кодът работи и нищо, което да очакваш. Иначе на xampp под windows e 6+.

(http://xmages.net/storage/10/1/0/c/3/thumb/thumb_6bfb2dde.png) (http://xmages.net/storage/10/1/0/c/3/upload/6bfb2dde.png)

Други предположения.
Добавям: NetBeans 6.9.1
Титла: Re:Сесии (Sessions)
Публикувано от: HD в 08 Юни 2011, 16:55:35
Интересен проблем имаш ти.  Как инсталира необходимите модули за  работа с php , в частност apache?? :)
Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 08 Юни 2011, 17:16:22
с тази команда и всичко мина по мед и масло:
sudo apt-get install lamp-server^

Титла: Re:Сесии (Sessions)
Публикувано от: HD в 08 Юни 2011, 17:23:18
Нещо се е сбозило, защото правиш всичко правилно както е, но Апача нещо се излага... Защо не пробваш да го махнеш LAMP-a и да го инсталираш наново или да ги инсталираш поотделно както е показал учителя Гатакка в неговото първо видео..  ???
Титла: Re:Сесии (Sessions)
Публикувано от: jazzman в 08 Юни 2011, 17:31:00
Ти дефакто нямаш сесия. Имаш празна променлива, само.
Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 08 Юни 2011, 17:51:15
Това бе първия подобен проблясък при мен, но при учителя нещата изглеждат вече архаични. Той демонстрира в виртуална машина под ubuntu 8.x, докато аз съм с две версии напред. Там мисля инсталираше php 5, докато при мен е 5.3.

Имам още нoтбук и на него стои ubuntu notebook 10.10. Същата инсталация с гореспомената команда и същия ядец. Реших да проверя. Набрах всичко наново и няма предупреждение, че не може да мофифицра хедърите или както там звучи на английски.

И сега накъде? Държа на свежи версии стиковани с phpmyadmin.

Ти дефакто нямаш сесия. Имаш празна променлива, само.
Не знам какво да кажа. Гледам урока и повтарям. При Иван гърми, при мен не. Сега поватрям урока за "Aдресна книга". При учителя гърми, при мен - не. Това е първа част, към 18мин на видеото.

Чакай малко. Всичко имам. Явно не си гледал урока кое какво е и как работи. Иначе сесия имам и тя повтаря името от php.ini.

(http://xmages.net/storage/10/1/0/5/d/thumb/thumb_b917f7a9.png) (http://xmages.net/storage/10/1/0/5/d/upload/b917f7a9.png)
Титла: Re:Сесии (Sessions)
Публикувано от: HD в 08 Юни 2011, 18:23:17
Прочети внимателно какво ти казва jazz. Относно това за архайчните видео уроци, аз винаги си ги инсталирам поотделно като модули и проблеми нямам. Инсталират се и си работят добре и си инсталират наличните ъпдейти...
Титла: Re:Сесии (Sessions)
Публикувано от: jazzman в 08 Юни 2011, 18:36:31
Виж, нямам много време да обяснявам, но нямаш стойност към $_SESSION['a'], тази променлива е недифирана
Смисълът от session_start e да кешира времено стойноста на $_SESSION и да придаде стойноста към новата под-страница.
Ти имаш стартирана сесия, но без информация в променливата.
Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 08 Юни 2011, 18:52:04
OK, благодря, че заделяш време, но това не решава проблема.

В ляво е филма на учителя. В дясно преписан кода и изпълнен от браузъра.

(http://prikachi.com/images/385/3429385u.png)

а сега следва поредни кадри от видеото на Иван, където се вижда проблема, а горе при мен не се получава.

(http://prikachi.com/images/390/3429390x.png)

Рестартирам под windows. Вдигам phpdesigner и пиша същите няколко реда код. Пускам от xampp и гърми. Засега вярвам на очите си и на видяното от урока. Ясно, ще си остана с неволята.

благодаря за вниманието
Титла: Re:Сесии (Sessions)
Публикувано от: HD в 08 Юни 2011, 19:00:59
Moже ли да отвориш отново php.ini файла и да провериш дали display_errors e ON. Също така виж дали ще има някаква промяна ако в код-а ти най-горе добавиш ето този ред
<?php
error_reporting
(E_ALL |E_STRICT);

?>

Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 08 Юни 2011, 19:09:32
Moга. Отварям, копирам там и публикувам тук:

; Possible Values:
;   Off = Do not display any errors
;   stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
;   On or stdout = Display errors to STDOUT
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = On


След което добавям предложения код и става това:

<?php
error_reporting
(E_ALL |E_STRICT);
?>

<a href="index2.php">Go</a>
<?php
session_start
();
$_SESSION['user_id']=true;
?>

и изгрява едно голо Go.
В Ubuntu-то ми живее Кики, май... ???

Редакция
Това е ресурса (http://tuxtweaks.com/2010/04/installing-lamp-on-ubuntu-10-04-lucid-lynx/), когото следвах при инсталация на PHP/Apache/MySQL.
Титла: Re:Сесии (Sessions)
Публикувано от: intel в 08 Юни 2011, 20:21:33
Добре де, а като направиш следното пак ли гърми:

<?php session_start(); ?>

<a href="index2.php">Go</a>

<?php
$_SESSION
["user_id']=true;
?>

Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 08 Юни 2011, 20:30:39
Връща следното

Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in /var/www/index.php on line 8

и от прочетено си спомних че преди време инсталирах cURL, чрез тази команда
sudo apt-get install curl

Деинсталирах cURL, но промяна няма.
sudo apt-get purge curl

оправих синтактическата грешка - ординарна кавичка вместо двойна и отново всичко онемя. Започвам да си представям преинсталация от нулата.

Накратко, с корекцията на кавичката
<?php session_start(); ?>

<a href="index2.php">Go</a>

<?php
$_SESSION
['user_id']=true;
?>

се появява познатото Go.
Титла: Re:Сесии (Sessions)
Публикувано от: intel в 08 Юни 2011, 20:45:18
Еми това трябва да се появява...
Относно грешката с кавичката, аз копирах твоя код дословно и го промених, та затова е останала тази проблемна кавичка така...

Иначе сега трябва да работи нормално навсякъде. Това е правилния и единствен начин за сесии. Когато искаш в файла ти да може да се оперира със сесийни променливи винаги се слага в началото session_start(), а не да търсиш като гламав примерно в 1000 ред-а код къде точно си сложил стартирането на сесията...

Ако оставим това, и ако пак имаш проблем на win хоста, значи проблема е другаде, а не в самия код.
Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 08 Юни 2011, 20:53:26
Получи се развален телефон.
На windows всичко е по правилата. Проблемът ми е тук в ubuntu!

С този код

<a href="index2.php">Go</a>

<?php
session_start
();
$_SESSION['user_id']=true;
?>

пак се появява едно голо Go. A би следвало да изплющи, че не може да прати вече хедерите и там дрън-дрън ярина.
Титла: Re:Сесии (Sessions)
Публикувано от: HanKrum в 08 Юни 2011, 20:56:51
Златно правило: session_start() в началото.

Какво би станало при това:
<?php
session_start
();
?>

<a href="index2.php">GO</a>
<?php
$_SESSION
['user_id']=true;
?>

Титла: Re:Сесии (Sessions)
Публикувано от: intel в 08 Юни 2011, 21:05:51
Много е лесен отговора на вече разбрания ти въпрос от мен.
Сега явно на убунто-то, LAMP-инсталацията има опция да крие всички грешки и/или предварително да записва грешките в лог файл (заради security причини...)

Както и да е. Ако искаш мога да ти помогна отдалечено да видим защо става така.
Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 08 Юни 2011, 21:14:44
В урока на учителя за php.ini има момент, когато засяга логовете и там се упоменава за 1МВ размер на лог-файла. Не зная къде се намира този файл, за да го погледна. Сега ще разровя директория /etc/php5/apache2/php.ini за логове
Титла: Re:Сесии (Sessions)
Публикувано от: HD в 08 Юни 2011, 21:42:49
PHP не беше ли мултиплатформен език? Не може един код да работи под Уин, a под Линукс да не бачка по същия начин. Поне аз така го разбирам. Според мен проблема е в LAMP. Toва го написах още на предишната страница. Махни LAMP-a и инсталирай софта както показва Иван. Да видим дали ще има някакъв ефект.
Титла: Re:Сесии (Sessions)
Публикувано от: immor7al в 08 Юни 2011, 22:52:41
Абе не е на 100% платформен.Сесията в начало и няма да имаш дертове. Под линукс ако си изключил показването на грешни тогава може да не се покаже.
Титла: Re:Сесии (Sessions)
Публикувано от: echeveria в 08 Юни 2011, 23:12:46
Мога ли да попитам изобщо какъв е смисъла на това парче код? особено на:
$_SESSION['user_id']=true;
Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 09 Юни 2011, 07:04:23
Toва е част от урока. В случая смисъла се губи, но ако човек седне и изгледа ревизията за сесии ще схване. В урока учителят показа,  че преди session_start();  не трябва да има нищо. И за да онагледи примери измести над тях линка, което е html код. Съответно изпълнен, PHP изрева, че хедърите и т.н. Този момент при мен не се случва под Ubuntu.

PHP е платформено независим, но има своите нюанси. Паралено с уроците чета две книги за PHP. Едната е 500стр, а другата с внушителен обем от 1100стр. Авторите и на двете обясняват защо нещата са профи, ако седим в линукс среда и това за мен е така.Windows e един ташак. Там няма админ, група и останалите, там няма права, там нямa 0777, сървърите са *nix. Минусът на книгите е че е поднесено на много високо ниво и всякаш на галоп, докато уроците на учителя осветляват практически нещата. Нещата твърдо клонят към преинсталиране, защото нещо като не работи като хората за какъв чеп ми е, че изобщо работи с характер.
Титла: Re:Сесии (Sessions)
Публикувано от: echeveria в 09 Юни 2011, 07:36:13
За коя книга става въпрос?
Титла: Re:Сесии (Sessions)
Публикувано от: jazzman в 09 Юни 2011, 22:05:04
Хм.....много странно и при не излиза съобщението, а съм сигурен, че преди излизаше и от така добих навик, винаги да слагам session_start () преди HTML-a  ???
Може би е от версията на PHP-то .
Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 10 Юни 2011, 20:24:22
Днес си убих прекрасния ден и съответно довечера ще напиша поредно стихотворение или ще награбя палитрата с пастели.

Изтрих всичко. Изтеглих Ubuntu 11.04. Инсталирах го. Няма такава простотия Unity. Toва е замислено за тъпани. Убих половин час да го разкарам, защото съм на 24' монитор и всичко бе ситняци. Инсталирах всичко по парче. Първо MySQL, после индиянеца, после PHP, Накрая phpmyadmin. Всичко изгря като в приказките и оооо...PHP Version 5.3.5-1ubuntu7.2.

Хайде пак комбинации в php.ini и от толкова тъпкане на вълната - къндясах, че такова повече няма да има и всичко е замазано в новата версия на PHP.

хайде да си мерим php-тата с това кодче <a href="index2.php">Go</a>
<?php
session_start
();
$_SESSION['user_id']=true;
?>

при мен продължава да излиза едно голо Go!

Ако в следващите 24ч не получа вдъхновение от 11.04 ще се върна на фантастичния 10.04LTS, a това означва, че няма да се изтягам на плажа, ами ще преинсталирам!
Титла: Re:Сесии (Sessions)
Публикувано от: HanKrum в 11 Юни 2011, 10:42:43
Лора, препоръчвам ти Ubuntu 10.10 (в който няма такива животни като юнити и работи много добре). А относно кода, какво искаш да се случи, че май не вдянах за какво иде реч?!
Титла: Re:Сесии (Sessions)
Публикувано от: jazzman в 11 Юни 2011, 14:39:30
Цялата заигравка дойде от това, че сървъра не и изхвърля съобщениeто:

Цитат
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at......

Лора, влез в php.ini файла и потърси реда който носи името - output_buffering и го направи output_buffering = Off, там трябва да имаш буфер и затова да няма и грешки.
Титла: Re:Сесии (Sessions)
Публикувано от: infinity1305 в 11 Юни 2011, 16:16:36
Бинго, получаваш виртуален сладолед на клечка.
Ето:
Go Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/info.php:3) in /var/www/info.php on line 4

Лошите чичковци бяха настроили output_buffering = 4096

В един урок, май за php.ini, учителят спомена за този буферинг, че даже забавял действието, но нали не го бъзика там...абе гумена лейка съм си...мерси
Титла: Re:Сесии (Sessions)
Публикувано от: jazzman в 11 Юни 2011, 16:49:03
Не мисля, че си "гумена лейка", бележката ти беше напълно уместна и аргументирана  ;)
Титла: Re:Сесии (Sessions)
Публикувано от: intel в 11 Юни 2011, 16:50:04
Дам, ако беше лейка изобщо нямаше да си зададеш въпроса, защо не става така. И дори нямаше да се опиташ да разбереш причината :)
А за намирането на отговора, да не говорим. Един съвет - пробвах Zend Server CE.
Доста добра среда е, и се инсталира почти автоматично. :)
Титла: Re: Сесии (Sessions)
Публикувано от: infinity1305 в 24 Септември 2011, 22:18:51
Добър вечер

$_SESSION['login_' . $cookiename] = $data;това е код от Simple Machines Forum - файл Subs-Auth.php

Някаква променлива $data дава значение на глобален масив $_SESSION. Обаче кaкъв е този ключ/индекс  ['login_' . $cookiename]. Това не мога да го схвана като синтаксис, а после като идея. Обяснете ми.

лека вечер
Титла: Re: Сесии (Sessions)
Публикувано от: echeveria в 24 Септември 2011, 23:24:21
Ключа в името си login_ и стойността на $cookiename - това е синтаксиса знака за . (точка) ако не ти е яснен аз не мога да ти помогна. Смисъла няма как да го извадя от контекста на примера какво са имали предвид от smf!
Титла: Re: Сесии (Sessions)
Публикувано от: jazzman в 24 Септември 2011, 23:25:45
Кое по-точно не ти става ясно?
Това си е най-обикновено свързване на стринг с променлива,  която държи някаква информация съхранявана в $data.
Ето няколко примера:

Код: PHP
  1.  
  2. $data = array('my_login_'.$mydata.'');
  3.  
  4. $data = 'my_login'.$mydata;
  5.  
  6.  
Титла: Re: Сесии (Sessions)
Публикувано от: jazzman в 24 Септември 2011, 23:28:02
Еч, по едно и също време сме писали - Sorry about that  :)
Титла: Re: Сесии (Sessions)
Публикувано от: infinity1305 в 25 Септември 2011, 20:29:23
Да, начина на конкатенация ме смути. Стори ми се екзотично на вид и не можех да осмисля поведението. Написах примерче и ми светна кое какво чини. И стана това, което си мислих преди. Значението infy на променливата $cookiename отиде на кино.

<?php
session_start();

$data = array (1020);
$cookiename 'infy';

$_SESSION['login_'.$cookiename] = $data;

print_r($_SESSION);
//извежда Array ( [login_infy] => Array ( [0] => 10 [1] => 20 ) ) 
?>

За пореден път се убеждавам, че PHP ще е петия език в живота ми на когото ще се посветя до край. Един ден анонимните ще молят да им стана духовен водач към победата.

зелена точка за jazzman
до нови срещи
Титла: Re:Сесии (Sessions)
Публикувано от: bulforce в 17 Ноември 2012, 23:25:36
Днес си убих прекрасния ден и съответно довечера ще напиша поредно стихотворение или ще награбя палитрата с пастели.

Изтрих всичко. Изтеглих Ubuntu 11.04. Инсталирах го. Няма такава простотия Unity. Toва е замислено за тъпани. Убих половин час да го разкарам, защото съм на 24' монитор и всичко бе ситняци. Инсталирах всичко по парче. Първо MySQL, после индиянеца, после PHP, Накрая phpmyadmin. Всичко изгря като в приказките и оооо...PHP Version 5.3.5-1ubuntu7.2.

Хайде пак комбинации в php.ini и от толкова тъпкане на вълната - къндясах, че такова повече няма да има и всичко е замазано в новата версия на PHP.

хайде да си мерим php-тата с това кодче <a href="index2.php">Go</a>
<?php
session_start
();
$_SESSION['user_id']=true;
?>

при мен продължава да излиза едно голо Go!

Ако в следващите 24ч не получа вдъхновение от 11.04 ще се върна на фантастичния 10.04LTS, a това означва, че няма да се изтягам на плажа, ами ще преинсталирам!


Както и да го гледам тоя код освен едно голо GO! друго няма да видиш.
Пробвай следния код и пиши какво виждаш.
 <a href="index2.php">Мъжки полов орган с три букви</a>
<?php
session_start
();
$_SESSION['user_id']=true;
?>

При още едно използване на "ценични" изрази и  неспазване на правилата на форума ще има санкции! Borovaka