Új hozzászólás Aktív témák
-
fordfairlane
veterán
válasz
Brown ügynök #6606 üzenetére
Jól értem, nem az a gond, hogy $_GET['id'] nincs minden egyes index.php meghíváskor? Mert akkor vagy rakj be egy isset($_GET['id']) feltételvizsgálatot a használata előtt, vagy kapcsolt ki a notice-ok kijelzését.
-
Sk8erPeter
nagyúr
válasz
Brown ügynök #6606 üzenetére
Igazából most kb. ugyanazt írtad le, mint korábban...csak a lényegre nem válaszoltál.
A "másik kért url-nél" valszeg nincs beállítva a $_GET['id'], nem jó az átirányítás .htaccess-ből, vagy valami hasonló probléma van, mindenesetre ha a $_GET['id'] nem létezik, az 'id' indexen nyilván nem is fog elérni semmit a $_GET-ből, így kapsz egy notice-t.
Érdemes lenne inkább leellenőrizni minden esetben, hogy egyáltalán létezik-e a $_GET['id'] változó, be van-e állítva (isset), ezt átadni egy változónak, aminek minden esetben van valami ilyen default értéke - nem tudom, nálad hogy van megoldva, de lehetne egy alapértelmezett cikk, amire mutat, pl. cikk1, vagy cikk0, vagy csak simán cikk.
Példa:
$id = 0; // default érték, de úgy csináld meg, hogy stimmeljen, legyen alapértelmezett cím, amit ilyenkor megmutat
if( !empty($_GET['id']) ){ /// isset($_GET['id']) is lehetne, de így két legyet ütsz egy csapásra: ha nincs beállítva (!isset), ez az ág úgysem lesz igaz, ráadásul ellenőrzi, hogy nem üres-e; igazából ide még plusz ellenőrzéseket is illene betenni
$id = $_GET['id'];
}
if( $uri == ...........){
........
}
elseif ($uri == '/blog/cikk'.$id){
mutató_függvény($id);
}
.......Persze ez így nem igazán szép megoldás, hogy alapértelmezett cikk.$id útvonalat nyit meg, lehetne inkább pl. úgy megoldani, hogy amennyiben nincs beállítva a $_GET['id'] változó, akkor valami olyan oldalra irányít, ahonnan kiválaszthatja a felhasználó a kívánt cikket (esetleg hibaoldal, stb.).
Pl.
if( empty($_GET['id']) ){
mutatom_a_cikkeket_hogy_ott_valaszd_ki_fv( ); // ne legyen ekkora neve :D
}Így a korábbit csak azért írtam, hogy lásd, hogy a $_GET értékek meglétét MINDEN esetben ellenőrizni KELL, és annak megfelelően cselekedni, különben ha nincs beállítva (bármilyen probléma okán!), akkor NEM fog működni, legalábbis nem úgy, ahogy szeretnéd, és az ilyen lehetséges hibajelenségekre fel KELL készülni, hogy nagyjából minden hibalehetőséget kiszűrj. Ráadásul ellenőrzés nélkül közvetlenül átadni egy felhasználótól kapott adatot, a legrosszabb gyakorlat.
Remélem nem azt fogod most erre reagálni, hogy "de ez így akkor is működik, nem változtatok rajta".
Ha továbbra is fennáll a gond, akkor meg egy kicsit konkrétabb választ írj, ne ugyanazokat írd le másképp, amiket korábban.
Új hozzászólás Aktív témák
- AKCIÓ! GAMER PC: Új RYZEN 5 4500-5600X +RTX 3060/3070/3080 +Új 16-64GB DDR4! GAR/SZÁMLA! 50 FÉLE HÁZ
- UHH! HP EliteBook 840 G8 Fémházas Laptop 14" -45% i5-1145G7 4Mag 32/512 FHD IPS Intel Iris Xe Magyar
- Xiaomi Redmi Note 13 Pro 5G - 8/256 - Media Markt garancia
- Xiaomi Redmi 9at - 2/32 - szürke
- Xiaomi Mi8 - 6/128 - fekete
- Lenovo Yoga Pro 9 (16IMH9) - Intel Core Ultra 9 185H, RTX 4060, 32GB, érintős ELKELT
- Samsung Galaxy A12 64GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! MSI B450M R5 5500 32GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Chieftec 600W
- Beszámítás! HP Z2 G4 Tower Workstation számítógép garanciával, hibátlan működéssel
- Lenovo Thinkpad P1 gen1, gen2, P52s FHD, 4K oled touch
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest