Kezdőoldal » Számítástechnika » Weblapkészítés » Valaki segitene a q miért hiba?

Valaki segitene a q miért hiba?

Figyelt kérdés

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


[link]



2020. júl. 3. 09:58
1 2
 1/13 anonim ***** válasza:
Mert nem létezik.
2020. júl. 3. 10:06
Hasznos számodra ez a válasz?
 2/13 anonim ***** válasza:
Megpróbálod az értékét összehasonlítani egy sztringgel, de maga a változó nem létezik. (Pontosabban: a $_GET asszociatív tömbnek nincs 'q' indexű eleme.) Így nem hamis értéket fog adni, hanem hibát. Ilyenkor célszerű az isset függvénnyel megvizsgálni, hogy létezik-e. if (isset($_GET['q'])) {.....}
2020. júl. 3. 10:08
Hasznos számodra ez a válasz?
 3/13 A kérdező kommentje:
és ezt hogy vagy hova bocsi hogy ennyit kérdezek csak legalább ezt meg akarom csinalni normalisan
2020. júl. 3. 10:19
 4/13 anonim ***** válasza:

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...') {

2020. júl. 3. 11:25
Hasznos számodra ez a válasz?
 5/13 anonim ***** válasza:

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.

2020. júl. 3. 11:30
Hasznos számodra ez a válasz?
 6/13 anonim ***** válasza:
38%
Nálam az alapok ott kezdődnek, hogy ha van egy hibaüzenet akkor rá tudok guglizni és az alapján keresni a megoldást.
2020. júl. 3. 12:25
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:
47%

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...

2020. júl. 3. 13:19
Hasznos számodra ez a válasz?
 8/13 anonim ***** válasza:

#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.

2020. júl. 3. 13:27
Hasznos számodra ez a válasz?
 9/13 A kérdező kommentje:
Ma neki fogok az alapoknak is
2020. júl. 3. 13:30
 10/13 anonim ***** válasza:

É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):

[link]

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

2020. júl. 3. 14:49
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!