Diskuze: Pomoc

PHP PHP Pomoc American English version English version

Avatar
Michael
Člen
Avatar
Michael:

Zdravím, po nahozeni webu mi to píše toto, nevíte co stím?

Notice: Undefined index: email in C:\xampp\htdoc­s\index.php on line 47

Notice: Undefined index: email in C:\xampp\htdoc­s\index.php on line 47

Notice: Undefined index: pass in C:\xampp\htdoc­s\index.php on line 48

Notice: Undefined index: pass in C:\xampp\htdoc­s\index.php on line 48

 
Odpovědět 11. srpna 13:21
Avatar
Ormy
Člen
Avatar
Ormy:

používáš někde proměnou s indexem 'email', kterej neexistuje. Nejlepší bude když sem dáš kód

 
Nahoru Odpovědět  +1 11. srpna 13:33
Avatar
Michael
Člen
Avatar
Michael:

a jak to mám vyřešit? chci se stím poprat :D

 
Nahoru Odpovědět 11. srpna 19:05
Avatar
NouF
Člen
Avatar
NouF:

if(isset($email)) { ..tvuj kod...}

Editováno 11. srpna 19:17
 
Nahoru Odpovědět  +2 11. srpna 19:16
Avatar
Ormy
Člen
Avatar
Ormy:

Spíš to ale bude index v nějakym poli, ne přímo proměná, takže něco jako $pole['email'].. Projdi si kód a zkontroluj jestli to máš někde inicializovaný nebo to vyřeš tak, jak psal kolega

 
Nahoru Odpovědět  +3 11. srpna 19:40
Avatar
Michael
Člen
Avatar
Michael:

if(isset($_POS­T['submit'])) {

 
Nahoru Odpovědět  -2 14. srpna 14:46
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na Michael
David Hynek:

Prostě používáš proměnné, které jsi ještě nevytvořil. Tedy aby ti to neříkalo, že nemáš nadefinované proměnné, musíš je nadefinovat. Stačí úvodem vložit nulovou hodnotu. Třeba

$email = ""; $pass = "";
Nahoru Odpovědět 15. srpna 10:42
Čím víc vím, tím víc věcí nevím.
Avatar
katrincsak
Člen
Avatar
katrincsak:

Nevím zda se to bere jako chyba, že tohle web ukazuje, osobně můj web "ukazuje to samé" a je to samozřejmě přesně tím jak je výše napsáno. Ale je běžné mít tyhle notifikace/chyby úplně vypnuté už jen kvůli bezpečnosti. Pakliže se nepletu. Vypnutí se dá provést běžně v php.ini a nebo přímo v htaccess.

Osobně by mě zajímalo zda je to brané jako něco špatně, nebo zda je to běžná věc. Přijde mi hloupost proměnnou naplnit jen kvůli notifikaci, která není chybou nýbrž jen informací, že by se mohlo jednat o zbytečnou proměnnou.

 
Nahoru Odpovědět  ±0 15. srpna 16:04
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na katrincsak
Marek Z.:

A nepřijde ti také jako hloupost používat proměnou, která vlastně vůbec neexistuje či nebyla zatím vytvořena?
Podle mě je chyba používat něco co vlastně není.

Editováno 15. srpna 21:32
Nahoru Odpovědět  +1 15. srpna 21:32
Chybami se člověk učí, běžte se učit jinam!
Avatar
mkub
Redaktor
Avatar
Odpovídá na katrincsak
mkub:

myslim, ze by sa to mohlo dat nastavit aj v php kode

 
Nahoru Odpovědět 16. srpna 10:25
Avatar
katrincsak
Člen
Avatar
Odpovídá na Marek Z.
katrincsak:

Hloupost mi to nepřijde v případě, že se na naplnění teprve čeká např. když jde o session. Nebo v případě propojení a využívání stejných proměnných v případě propojení napříč projektem, tak ne vždy musí dojít k naplnění. A zbytečné to jen kvůli notifikaci naplňovat.

Editováno 16. srpna 17:31
 
Nahoru Odpovědět  +1 16. srpna 17:29
Avatar
katrincsak
Člen
Avatar
Odpovídá na mkub
katrincsak:

Ano i za pomocí PHP to může jít nastavit.
http://php.net/…eporting.php

Editováno 16. srpna 17:36
 
Nahoru Odpovědět 16. srpna 17:36
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na katrincsak
Marek Z.:

Je hloupé to neošetřovat v případě, když vím, že existuje možnost, že se proměnná nemusí naplnit..

V tomto případě by notifikace nemusela vůbec vzniknout.

Nahoru Odpovědět  +2 16. srpna 20:47
Chybami se člověk učí, běžte se učit jinam!
Avatar
katrincsak
Člen
Avatar
Odpovídá na Marek Z.
katrincsak:

To souhlasím, že je lepší to ošetřit, ale asi mi to v některých případech přijde zbytečné a někdy kod na víc. Právě proto, že vedlejší účinek mít může jak inicial../nei­niciali... Nebo aspoň nenapadá mě jediný příklad kde by to byl opravdu problém a byla by to chyba,nebo by tím zanikala bezpečnost.

 
Nahoru Odpovědět 16. srpna 21:04
Avatar
mkub
Redaktor
Avatar
Odpovídá na Marek Z.
mkub:

premennu netreba vzdy naplnovat, hlavne u formularoch sa to deje, ked prvykrat si otvoris stranku, udaje nie su este vyplnene, premenne nie su este inicializovane, cize ani naplnene, ale po odoslani formulara uz dojde k inicializacii a naplneni premien, tu staci podmienka if (isset ($var1, $var2,...)) {...}
cize ak pri spracovani skriptu narazi na tuto podmienku, tak sa otestuje, ze ci su nastavene (definovane) premenne $var1 a $var2, pripadne aj dalsie, ak nie su, tak sa nevykona kod v zlozenych zatvorkach a bude sa pokracovat dalsim riadkom, ale akonahle uz su tie premenne definovane, tak sa automaticky vykona kod v zlozenych zatvorkach

 
Nahoru Odpovědět  +1 17. srpna 1:36
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na mkub
Marek Z.:

Já však nezastával názor, že proměnnou vždy naplnit pokud není definovaná.

Nahoru Odpovědět  +1 17. srpna 11:53
Chybami se člověk učí, běžte se učit jinam!
Avatar
00
Člen
Avatar
00:

Pokud web funguje, vypnout noticy.

(Proč název POMOC?)

 
Nahoru Odpovědět 17. srpna 12:07
Avatar
mkub
Redaktor
Avatar
Odpovídá na Marek Z.
mkub:

ani definovat premenu nie je treba - vid napr. osetrenie pomocou isset, kde sa testuje, ze ci je premenna nastavena, cize existuje

 
Nahoru Odpovědět 17. srpna 14:11
Avatar
Richard
Člen
Avatar
Richard:

Jak isset tak deklarování proměnný je správná volba, isset trochu správnější.
Pouhý vypnutí vypisování noticů je samozřejmě obrovská chyba, protože tím stále plníš error log.

Nahoru Odpovědět  +2 17. srpna 14:54
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Marek Z.
Redaktor
Avatar
Marek Z.:

Kód by měl vypadat tak, aby i při zapnutém debugu nehodil žádnou chybu či upozornění. Stále nevím co na tom nechápete.
Funkce isset neexistuje jen tak, když je možnost ji použít proč ji nepoužít?

Argumentace, že kód bude delší či nepřehledný je blbost..
Řešení NouF k tomuto tématu je nejideálnější.

Nahoru Odpovědět  +1 17. srpna 17:31
Chybami se člověk učí, běžte se učit jinam!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 20 zpráv z 20.