Tutaj dyskutujemy o PHP oraz zgłaszamy i rozwiązujemy problemy dotyczące tego języka.
Dissio
Początkujący
Posty: 20 Dołączył(a): niedziela, 13 lipca 2014, 16:37
Post
przez Dissio » niedziela, 13 lipca 2014, 16:39
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
Posty: 1332 Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:
Post
przez Morfidon » poniedziałek, 14 lipca 2014, 01:34
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
Posty: 20 Dołączył(a): niedziela, 13 lipca 2014, 16:37
Post
przez Dissio » poniedziałek, 14 lipca 2014, 11:16
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
Posty: 1332 Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:
Post
przez Morfidon » środa, 16 lipca 2014, 11:49
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.