sesje php

Tutaj dyskutujemy o PHP oraz zgłaszamy i rozwiązujemy problemy dotyczące tego języka.
Dissio
Początkujący
Początkujący
Posty: 20
Dołączył(a): niedziela, 13 lipca 2014, 16:37

sesje php

Post przez Dissio »

Witajcie cwicze sobie php , jestem praktycznie nowicjuszem, mam taki problem:

Code: Zaznacz cały

 ($login=filter_var($_POST['login'],FILTER_SANITIZE_STRING);
            $haslo=filter_var($_POST['haslo'],FILTER_SANITIZE_STRING); 
wyskakuje mi undefinided index. a dzieje sie tak w tym momencie kiedy probuje wpisac linie

Code: Zaznacz cały

if((!empty($_POST['login'])    and !empty($_POST['haslo'])) or $_SESSION['zalogowany'] == 1) 
(a dokladniej od 'or' do "1)")
jednak nie wiem w czym tkwi problem, prosze o pomoc i wyrozumialosc pozdrawiam

Code: Zaznacz cały

<?php 
 
session_start();
 
?>
 
 
 
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>oskar</title>
        <meta name="author" content="Oscar" />
        <!-- Date: 2014-06-16 -->
    </head>
    <body>
 
<form action="" enctype="multipart/form-data" method="post">
 
     Login:<input type="text" name="login" value="">
    Haslo:<input type="password" name="haslo" value="">
    <input type="submit"  value="Wyslij">
 
 
 
 
 
</form>
 
 
 
<?php    
 
    /* Sesja czy zalogowany */
 
    if ((isset($_POST['login']) and isset($_POST['haslo'])) or $_SESSION['zalogowany'] == 1){
 
 
 
 
        if((!empty($_POST['login'])    and !empty($_POST['haslo'])) or $_SESSION['zalogowany'] == 1){
 
 
 
            $login=filter_var($_POST['login'],FILTER_SANITIZE_STRING);
            $haslo=filter_var($_POST['haslo'],FILTER_SANITIZE_STRING);
 
        if(($login=="dissio"and $haslo=="abc" or $_SESSION['zalogowany'] == 1))
 
        {
            echo "zalogowales sie!";
            $_SESSION['zalogowany'] = 1;
 
        }
        else {
        echo "bledny login lub haslo".""."sprobuj ponownie <a href=sesje2.php> tutaj </a>";
 
        }
 
 
 
 
 
 
 
 
        }
 
        else{
 
            echo "nie podales loginu lub hasla!";
        }
 
 
 
 
 
    } 
 
 
 
 
 
 
?>    
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: sesje php

Post przez Morfidon »

Nie korzystaj z operatorów and i or, ale z && i ||, bo mają minimalnie inne znaczenie. Podaj dokładnie error, wklej go tu.

Pozdrawiam :)
Dissio
Początkujący
Początkujący
Posty: 20
Dołączył(a): niedziela, 13 lipca 2014, 16:37

Re: sesje php

Post przez Dissio »

Witaj, poprawilem "and" i "or", jednak problem wciaz wystepuje, a tutaj bledy (skopiowane zrodlo strony z bledami):

Code: Zaznacz cały

<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: login in C:\wamp\www\aptana\Cwiczenia\$session\sesje.php on line <i>88</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0000</td><td bgcolor='#eeeeec' align='right'>248632</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp\www\aptana\Cwiczenia\$session\sesje.php' bgcolor='#eeeeec'>..\sesje.php<b>:</b>0</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: haslo in C:\wamp\www\aptana\Cwiczenia\$session\sesje.php on line <i>89</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0000</td><td bgcolor='#eeeeec' align='right'>248632</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp\www\aptana\Cwiczenia\$session\sesje.php' bgcolor='#eeeeec'>..\sesje.php<b>:</b>0</td></tr>
</table></font>
zalogowales sie!</br><a href=sesje.php>Odswiez</a></br><a href=sesje.php?akcja='wyloguj'>Wyloguj</a></br>	
	
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: sesje php

Post przez Morfidon »

Notice to z ang. ostrzeżenie a nie błąd (error) nie masz się czym przejmować jeśli skrypt działa. Program ostrzega "hej tu potencjalnie może być błąd, ale niekoniecznie".

Aby wyłączyć ostrzeżenia:
1)znajdź plik php.ini w swoim serwerze
2) otwórz go notatnikiem
3) CTRL +F (szukaj)
4) wpisz error_reporting
5) zedytuj linie na: error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
6) zapisz
7) zrestartuj koniecznie serwer

Następnym razem nie kopiuj proszę tak błędu (w postaci całego kodu html), tylko wklej to co wyświetliło jako błąd.
Post Reply