Valaki segitene a q miért hiba?
Notice: Undefined index: q in C:\xampp\htdocs\search\index.php on line 2
Notice: Undefined index: q in C:\xampp\htdocs\search\index.php on line 2
A hibaüzenetben benne van, hogy a 2. sorban van a hiba (igazából csak megjegyzés/figyelmeztetés). Tehát oda kell betenni az említett ellenőrzést, például:
if (isset($_GET['q']) && $_GET['q'] === 'Search...') {
Itt írtam rá neked egy megoldást.
Van benne példa a feltételvizsgálatra is.
https://www.gyakorikerdesek.hu/szamitastechnika__weblapkeszi..
Amúgy ezért mondom (4x), hogy az alapokkal kezd. Pl az is az alapokhoz tartozik, hogy egy if esetén minden feltételnek igaznak kell lennie (tehát && van köztük) akkor a vizsgálatot csak addig végzi, míg bele nem fut az első hamis részbe.
Tehát ha az isset()-el ellenőrzöd, hogy létezik-e a tömb adott attribútuma akkor utána vígan ellenőrizeheted az értékét is hiba nélkül. Miért? mert ha nem létezik, nem fogja már az értékét sem vizsgálni annak ami nem létezik, tehát nem dob hibát.
Amíg ezek nem mennek kár ilyen összetett dolgokba belemenni. De ettől függetlenül azért próbáltam egy dummy bemutatót összehozni neked, amiben a fontosabb dolgok szerepelnek.
Akkor mondom, mik a hibák...
1. Képként teszel fel egy kódot, kódmegosztó weblap helyett
2. Notepad++ nem igazán kódolásra való. Tessék normális editort használni: Phpstorm, Atom, Sublimetext, Visual studio code, stb
3. Persze, hogy hibát dob a 2. sor, ha nincs q querystringed. Talán illene egy isset-tel ellenőrízni előbb.
4. Minek a 39. sorba az üres echo? Akkor már fordítsd meg a feltételt és az else ág legyen az alap.
5. 42. sorban a $q változó mégis honnan jön? Sehol nincs definiálva!
6. Ugye még véletlenül sem akartad a _GET paramétert szűrés nélkül bedobni a query-be? SQL injection-ről hallottál már?
7. 52. sor: Miféle URL a <? merthogy ez van megadva, a $id már a href attrib-on kívülre íródik. Azon kívül a h3 tag nincs jól lezárva.
Nagyon remélem, hogy csak tanulsz és gyakorolsz, nem pedig valami fizetős projekten dolgozol, mert a fülem kettéáll, mikor legacyban megkapok valami ilyen kontármunkát, aztán csak hümmög a megbízó, mikor közlöm, hogy az egész kuka és újra kell írni...
#7 Nyugi, csak próbálkozik / tanul.
A probléma, hogy kapásból belecsapott a közepébe és így nyilván nehéz. Ne vedd el a kedvét. :)
Legalább lelkes...
Másik kérdése (sok van) alatt kiveséztük már a dolgot és többször javasoltam, hogy kezdje az alapoknál. Remélem megfogadja végre a tanácsom.
Én is inkább csináltam egy egyszerűbb, eljárás-alapú megoldást (a #5 megoldása is szép, de egy kezdőnek túl nagy falat egyből objektum-orientáltsággal, PDO-val, PostgreSQL-lel kezdeni):
pár megjegyzés hozzá:
* a HTML-kód elején (első sor) ne felejtsd le a <!DOCTYPE html>-t, és javasolt a karakterkódolás megadása (4.sor) is
* a Javascript-kódos bohóckodást kiszedtem - túlbonyolítja az egészet és zavaró a felhasználó számára
* a Notepad++ teljesen jó kódszerkesztő - bár a #7-es hozzászóló által javasolt alternatívák jobban elterjedtebbek az iparban
* ha felhasználótól kapsz adatokat - űrlapon, URL-en, stb... keresztül - azokat mindig szűrd/ellenőrizd le a szerveroldalon, mert különben az adatbázisod bánja, vagy a jóhiszemű felhasználók kerülnek kellemetlen helyzetbe (lásd a 23. sort)
* adatbázis-kapcsolódás illetve -lekérdezés esetén ügyelj a hibajelzésre - sokat segít hibakereséskor
* a lekérdezés, illetve az adatbázis-kapcsolat használata után érdemes azokat felszabadítani (35. sor)/lezárni (38. sor) - erőforrás-takarékossági szempontból
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!