Странна грешка, която не ми е излизала преди...?

streleca_stz

Registered
Здравейте! Та преди около 2 месеца започнах да си пиша форумче.. Та накрая ми писна и го зарязах.. но след месец си обнових xampp-a и днес като реших пак да го продължа проекта и където съм задал да проверява ми дава "Notice" и не мога да разбера как да го скрия... Ето пример:
Notice: Undefined index: is_logged in D:\xampp\htdocs\mcf\functions.php on line 29
А ето както има на ед 29:
PHP:
if($_SESSION['is_logged']===true)
А ако примерно се логна в профила изчезва.. нито пък ми се пречупва кода.. просто не знам защо се появяват.. :X Ако някой знае да сподели как мога да ги премахна..
 
PHP:
if(isset($_SESSION['is_logged']) and $_SESSION['is_logged']===true)
Иначе това какви грешки да се показват се променя от php.ini
 
Да така става и нищо не изкарва, но ще си е мъчение (поне за мен xD) да го пиша толкова подробно.. какво трябва да променя в php.ini, че да не излизат тези Notice-ове.. ?
 
Сложи си този код в началото на всеки скрипт:
PHP:
error_reporting(E_ERROR | E_WARNING | E_PARSE);
 
streleca_stz каза:
alex3 каза:
error_reporting(~E_NOTICE);

Мм при мен е така:
; error_reporting
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED
и не съм сигурен какво и как точно да променя xD
Виж, пред тях има ; . Това означава коментар. Под тях трябва да има друго без ; . Премахни го и сложи това, което ти дадоха.
 
tedo96 каза:
streleca_stz каза:
alex3 каза:
error_reporting(~E_NOTICE);

Мм при мен е така:
; error_reporting
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED
и не съм сигурен какво и как точно да променя xD
Виж, пред тях има ; . Това означава коментар. Под тях трябва да има друго без ; . Премахни го и сложи това, което ти дадоха.

Амм под тях започва HTML ERRORS..
; html_errors
; Default Value: On
; Development Value: On
; Production value: Off
..?
 
1. Имаш ли session_start(); в началото.
2. Задал ли си някъде стойност на $_SESSION['is_logged']
 
Malfurion каза:
1. Имаш ли session_start(); в началото.
2. Задал ли си някъде стойност на $_SESSION['is_logged']

Разбира се, че съм задал session_start();
И да задал съм го в логин страницата да я създава, когато логина е успешен..
 
Послушай съвета на @tedo96 :?:

Просто при по-новите версий на xampp (а можеби и на някой други уеб сървъри) има леки промени и когато някоя променлива не е декларирана изкарва забележки.
Или просто си слагай error reporting в файловете или си го промени от php.ini ;)
 
proba каза:
Послушай съвета на @tedo96 :?:

Просто при по-новите версий на xampp (а можеби и на някой други уеб сървъри) има леки промени и когато някоя променлива не е декларирана изкарва забележки.
Или просто си слагай error reporting в файловете или си го промени от php.ini ;)
Ммм пробвах и начина на тедо.. дори ми влезе в компа, за да ми помогна и пак не стана :X
 
Има няколко начина да се избегне тази грешка.

1. Слагаш isset() при проверката. (препоръчително)

2. Да заглушиш грешката кати използваш "@" т.е. if(@$session[]===true)

3. Да сложиш в php.ini на error_reporting стойност E_ALL & ~E_NOTICE и да рестартираш apache.

:)
 
Шшшш с теб пропуснахме 3та стъпка... :D
Иначе сега се сетих и за ini_set(); можеш с нея да зададеш каквото си искаш в php.ini без да имаш достъп до него.
 
Karcho каза:
Има няколко начина да се избегне тази грешка.

1. Слагаш isset() при проверката. (препоръчително)

2. Да заглушиш грешката кати използваш "@" т.е. if(@$session[]===true)

3. Да сложиш в php.ini на error_reporting стойност E_ALL & ~E_NOTICE и да рестартираш apache.

:)

Mмм точно, че аз се стремя да го оправя в php.ini ... :)
Таа промених php.ini-development от
; error_reporting
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED
на
; error_reporting
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED
E_ALL & ~E_NOTICE
Рестартирах апачито и пак не стана.. :X
 
Грешиш.

Влизаш само в php.ini не php.ini-development

И търсиш error_reporting докато намериш точно него, а не тези коментари.

намираш го, най вероятно ще ти е

error_reporting = E_ALL | E_STRICT

направи го на

error_reporting = E_ALL & ~E_NOTICE
 
Karcho каза:
Грешиш.

Влизаш само в php.ini не php.ini-development

И търсиш error_reporting докато намериш точно него, а не тези коментари.

намираш го, най вероятно ще ти е

error_reporting = E_ALL | E_STRICT

направи го на

error_reporting = E_ALL & ~E_NOTICE
Йее :D Малко късно отговарям, но чак сега упспях да се оправя.. :D Като го смених и вече ги няма досадните notice-ове.. мерси страшно много!

Имам само още един въпрос който не е свързан точно с notice, но не искам да правя по 1 000 теми на ден.. Става дума за тези грешки, които преди не са ми излизали..
Deprecated: Assigning the return value of new by reference is deprecated in D:\xampp\php\PEAR\Config.php on line 80

Deprecated: Assigning the return value of new by reference is deprecated in D:\xampp\php\PEAR\Config.php on line 166

Deprecated: Assigning the return value of new by reference is deprecated in D:\xampp\php\PEAR\Config\Container.php on line 111

Deprecated: Function ereg() is deprecated in D:\xampp\htdocs\tokiohotel-bg\poll\functions.php on line 85

Тъй като повечето не са от мой скрип, а са от самият сървър..?
Но пък не мога да опавя и моето.. ето го моя:
PHP:
$br_glas = ($br_glas === 0 || $br_glas === 1 || ereg('^[1-9]{1}[0-9]*[ ]{1}(sec|min|hour|day|week|month|year)$', $br_glas)) ? $br_glas : 0;
 
ereg() e дърта вече. Както другата функция, за която направи тема. Ползвай preg_match().

Радвам се, че си се оправил след толкова много писане. :D
 

Back
Горе