Автор Тема: Сесии (Sessions)  (Прочетена 33559 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

Деан Христов

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 41
    • Деан Христов
Re:Сесии (Sessions)
« Отговор #15 -: 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
« Последна редакция: 14 Април 2015, 23:11:09 от Avalanche »

HD

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 208
  • -Получени: 165
  • Публикации: 3077
Re:Сесии (Sessions)
« Отговор #16 -: 16 Април 2011, 12:29:17 »
Затвори си хедър функцията... Гледайки кода ти,  не си разбрал смисъла на сесиите. Изгледай отново видеото на Иван. И какво точно искаш да направиш с тоя код? Каква ти е идеята? :)

Деан Христов

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 41
    • Деан Христов
Re:Сесии (Sessions)
« Отговор #17 -: 16 Април 2011, 13:04:29 »
Затвори си хедър функцията... Гледайки кода ти,  не си разбрал смисъла на сесиите. Изгледай отново видеото на Иван. И какво точно искаш да направиш с тоя код? Каква ти е идеята? :)

Къде точно видя, че не е затворена скобата на хедара?
Къде точно е грешката в сесията?

HanKrum

  • Гост
Re:Сесии (Sessions)
« Отговор #18 -: 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. ?>

п.п. Доста странен код ?!?!

HanKrum

  • Гост
Re:Сесии (Sessions)
« Отговор #19 -: 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. }

трябваше да броя скоби :) , но пак ми се струва, че е странен кода
« Последна редакция: 14 Април 2015, 23:11:21 от Avalanche »

Деан Христов

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 41
    • Деан Христов
Re:Сесии (Sessions)
« Отговор #20 -: 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 кода и сесята в свеки файл. Много станно по принцим под линукс съто по този начин си организирам кода и нямам проблем, а тук неми е ясно защо се получава така?

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 190
  • Публикации: 3624
Re:Сесии (Sessions)
« Отговор #21 -: 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';
?>


По този начин ще видиш, че се разделя логиката от презентацията, а не както ти си го направил всичко в кюпа вкарано в една функция.
« Последна редакция: 16 Април 2011, 16:03:14 от jazzman »
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

Деан Христов

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 41
    • Деан Христов
Re:Сесии (Sessions)
« Отговор #22 -: 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';
?>


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

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 190
  • Публикации: 3624
Re:Сесии (Sessions)
« Отговор #23 -: 16 Април 2011, 16:14:53 »
No problem, савет се пише с "ъ".
Обърни внимание и на правописа си, ужасен е
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

Деан Христов

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 41
    • Деан Христов
Re:Сесии (Sessions)
« Отговор #24 -: 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

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 190
  • Публикации: 3624
Re:Сесии (Sessions)
« Отговор #25 -: 16 Април 2011, 16:26:03 »
Естествено, нямаш SESSION['user_id'] в session.php, вече по този файл ти трябва да направиш проверката в базата да извлечеш инфото от нея и да вкараш ид-то на юзера в SESSION['user_id'].
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

Деан Христов

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 41
    • Деан Христов
Re:Сесии (Sessions)
« Отговор #26 -: 16 Април 2011, 20:58:33 »
No problem, савет се пише с "ъ".
Обърни внимание и на правописа си, ужасен е
На теб нети ли се случва да допускаш правописни грешки ??? Или можеби имаш 6 по Български език, ако е така браво :)
« Последна редакция: 16 Април 2011, 21:00:21 от hard_dido »

HD

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 208
  • -Получени: 165
  • Публикации: 3077
Re:Сесии (Sessions)
« Отговор #27 -: 16 Април 2011, 22:33:15 »
No problem, савет се пише с "ъ".
Обърни внимание и на правописа си, ужасен е
На теб нети ли се случва да допускаш правописни грешки ??? Или можеби имаш 6 по Български език, ако е така браво :)
Първо не приемай поста на jazz като заяждане... Във всеки един твой пост е с грешки...  :)

Деан Христов

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 41
    • Деан Христов
Re:Сесии (Sessions)
« Отговор #28 -: 16 Април 2011, 22:46:32 »
No problem, савет се пише с "ъ".
Обърни внимание и на правописа си, ужасен е
На теб нети ли се случва да допускаш правописни грешки ??? Или можеби имаш 6 по Български език, ако е така браво :)
Първо не приемай поста на jazz като заяждане... Във всеки един твой пост е с грешки...  :)
Е да. Имам тук-там по някоя друга правописна грешка, но несмятам, че  това може да се тълкува като "Ужасно"

Деан Христов

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 41
    • Деан Христов
Re:Сесии (Sessions)
« Отговор #29 -: 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); в вашият файл.Там където работите с масиви и променливи  с глобална видимост.