ugrás a tartalomhoz

PHP konfigurálás

labu01wx · 2009. Május. 8. (P), 22.55
Sziasztok!
Valaki meg tudná mondani, hogy hol lehet azt beállítani, hogy a PHP ne akadjon fel minden "formaságon"?
pl.:
<?php
if ($_GET['text']==van){
  echo ('Van szöveg');}
else{
  echo ('Nincsszöveg');}
?>
Ez két dolog miatt sem tetszik neki:
1: ha csak simán text.php ként hivatkozom rá akkor ugye a $_GET['text'] nincs definiálva
2: ha text.php?text=van ként hivatkozom rá akkor a $_GET['text'] értéke string ami nem van hanem "van".
Ezek a gondok 5.2.9-2 php +apache párossal nem voltak, most szintén 5.2.9-2-es php-t használok IIS-sel. A php-t most nem a saját installere, hanema microsoft web platform installer rakta fel (szerintem az nem állított be valamit). Nézegettem a php.ini-t denem találtam olyan opciót ami erre vonatkozik. Tudom, hogy meg lehetne taqnulni az "xphp"-t, de a weblap motorok sem mennek így.
A segítséget előre is köszönöm.
 
2

Helyesen kell írni

Poetro · 2009. Május. 8. (P), 23.59
if (!empty($_GET['text']) && $_GET['text'] == 'van'){  
  echo ('Van szöveg');
}  
else{  
  echo ('Nincsszöveg');
}  
1

hm?

Drawain · 2009. Május. 8. (P), 23.58
Lehet én vagyok tudatlan de még ilyenről nem is hallottam:
$_GET['text']==van
Mi a gond azzal, ha stringként ellenőrzöd? Ha így teszel ahogy írtad, akkor egy van nevű konstansra utalsz, amire nyilván hibát dob ha nincs előre definiálva. Gondolom ha definiálod, és a tartalma a "van" string lesz, akkor működni fog, de van e ennek értelme itt? :)
4

Azt tudom, hogy a van alak

labu01wx · 2009. Május. 9. (Szo), 11.18
Azt tudom, hogy a van alak alapból konstanst jelent, de ha a php nem talál van nevü konstansot akkor átalakítja olyan típusúvá, mint amilyen a $_GET['text'] változó.
Valaki meg tudnám mondani, hogy egy apache mellé szüzen felrakott php configjában milyen hibajelentési fokozat van? Mert most error_reporting = 0, amivel működik is minden, de azért meg szeretném találni az arany középutat.
3

error_reporting()

Szekeres Gergő · 2009. Május. 9. (Szo), 08.21
php.ini-ben megtalálod. Pl: ha nem definiált változóra, konstansra hivatkozol, notice-ot kapsz. Sokan ezért kikapcsolják a noticeok kijelzését, a php.net-en megtalálod mikéntjét.

De valóban jobb lenne, ha normális kódot írnál. Az "E_ALL" fejlesztés ráadásul sokkal hatékonyabb tud lenni, mert könnyebben megtalálod a hibáid. Ez inkább tüneti kezelés, nem valódi megoldás.
5

Én tudok normális kódot írni

labu01wx · 2009. Május. 9. (Szo), 11.40
Én tudok normális kódot írni az a van is véletlenül nem "van" :D , sokszor még hasznos is, hogy meg kell nézni, hogy definiált-e a GET/POST-os változó mert ha kikapcsolom a hibajelzést akkor alapból nullának hiszi ami okozhat gubancokat. Most már csak arra adjatok választ, hogy miért van az, hogy az ext mappában ott van a php_mccrypt.dll, a php.ini-ben regisztrálva van, de a phpmyadmin-tól mégis ezt kapom:
"Cannot load mcrypt extension. Please check your PHP configuration."
6

isset

Drawain · 2009. Május. 9. (Szo), 22.20
if (isset($_GET["text"]) && ($_GET["text"] == "van")) {...}
Nem jó? :)