ugrás a tartalomhoz

Súlyos gondok php include-olás közben

Laszlo14 · 2012. Feb. 16. (Cs), 14.29
Hali!

Van egy oldal (search.php) ahova külön formokat include-olok be a helyzetnek megfelelően. Vagyis érthetőben.

//search.php//
<?php
//lekérdezem az átavett adatot//
$act=$_GET['act'];
//ha -nev- a kapott érték akkor a nev.php-t töltöm be//
if($act="nev"){
	include("search/nev.php");
}
//ha online akkor az online.php-t//
elseif($act="online"){
	include("search/online.php");
}

?>
Viszont az a gondom, hogy ha <a href="search.php?act=online>Online</a>-ra kattintok akkor is a nev.php-t tölti be.
 
1

Mert az összehasonlításhoz ==

QXY · 2012. Feb. 16. (Cs), 14.52
Mert az összehasonlításhoz == kellene.

Tehát:

if($act=="nev"){ ...

elseif($act=="online"){ ...
De szerintem inkább használj switch szerkezetet. Áttekinthetőbb és könnyebb módosítani/bővíteni.
4

Úhh, hát szerintem ennyire

Laszlo14 · 2012. Feb. 16. (Cs), 15.35
Úhh, hát szerintem ennyire még semmit nem néztem el :-D Köszi mind három választ
2

Az egyetlen egyenlőségjel az

Udi · 2012. Feb. 16. (Cs), 14.53
Az egyetlen egyenlőségjel az értékadás jele, a dupla (és tripla) egyenlőségjel az összehasonlításé.

Ez mindig le fog futni, mert nem ellenőrzi az $act változót, hanem értéket ad neki:

if($act="nev"){  
    include("search/nev.php");  
}
Ez már ellenőriz:

if($act=="nev"){  
    include("search/nev.php");  
}
Az egyszerű kommentet (//) pedig nem kell lezárni, az a sor végéig érvényes, csak a többsoros kommentet kell lezárni (/* */)
3

Hibás operátor

molnigee · 2012. Feb. 16. (Cs), 14.57
A feltételben nem egyenlőség vizsgálat történik hanem értékadás.
5

Tipp

gabesz666 · 2012. Feb. 16. (Cs), 16.51
Az ilyen hibák kiküszöbölésére szokták azt csinálni, hogy az összehasonlítandó értékeket felcserélik.

...
if("nev" == $act) {
}
...
Ha véletlenül csak egy egyenlőségjel kerülne a feltételbe, akkor szintaktikai hibával elszállna kód.
6

Yoda Conditions

MadBence · 2012. Feb. 16. (Cs), 17.21
Yoda Conditions +1
(szerencsére attól, hogy benne van a Yoda szó, még szabad try-catch szerkezetet használni :-) )
7

+1

Poetro · 2012. Feb. 16. (Cs), 17.32
8

-1

Hidvégi Gábor · 2012. Feb. 16. (Cs), 17.47
Szerintem a kód olvashatóságát rontja. Amikor elkezdesz programozni, elköveted egy-kétszer ezt a hibát, de utána rááll a szemed.
9

-1 +1, szerintem is rontja az

inf · 2012. Feb. 17. (P), 00.31
-1 +1, szerintem is rontja az olvashatóságot :D akkor most 0-n állunk? :D
10

Elsőre nekem is úgy tűnt. De

kuka · 2012. Feb. 17. (P), 11.42
Elsőre nekem is úgy tűnt. De a Java hasonló esete végül meggyőzött és azóta a Yoda kifejezésekre sem nézek görbén:

if (nev.equals("kuka")) // olvasható

if (nev!=null && nev.equals("kuka")) // null biztos

if ("kuka".equals(nev)) // köztes megoldás