| | |
| Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
ahojte,
tentoraz ma sem nedohnala núdza ale zvedavosť;
mám takýto kod (cvičenie z knihy):
Kód: <?php $odoslane = $_POST['odoslane']; if ($odoslane==0) { ?>
<form action="lekcia6.php" method="post"> Prvá premenná: <input type="text" name="a" ><br><r> Druhá premenná: <input type="text" name="b><br><br> <select name="operacia"> <option value="1">Sčítanie</option> <option value="2">Odčítanie</option> <option value="3">Násobenie</option> <option value="4">Delenie</option> </select><br><br> <input type="hidden" name="odoslane" value="1"> <input type="submit" value="Vypočítat"> </form>
<?php
}
else { $operacia = $_POST['operacia']; $a = $_POST['a']; $b = $_POST['b'];
if ($operacia==1) { $sucet=$a+$b; echo $a . " + " . $b . " = " . $sucet; }
elseif ($operacia==2) { $rozdiel=$a-$b; echo $a . " - " . $b . " = " . $rozdiel; } elseif ($operacia==3) { $sucin=$a*$b; echo $a . " * " . $b . " = " . $sucin; }
else { $podiel=$a/$b; echo $a . " / " . $b . " = " . $podiel; } }
?> ulohou bolo vytvorit formular kde sa zadaju dva čísla a požadovaná operacia a po odoslani sa vyhodi výsledok; funguje mi to v pohode; avšak ak som dal toto Kód: $a = $_POST['a']; $b = $_POST['b']; na začiatok skriptu, takže tento vyzeral (zmena je v bolde) takto: Kód: <?php $odoslane = $_POST['odoslane']; [b] $a = $_POST['a']; $b = $_POST['b'];[/b] if ($odoslane==0) { ?>
<form action="lekcia6.php" method="post"> Prvá premenná: <input type="text" name="a" ><br><r> Druhá premenná: <input type="text" name="b" ><br><br> <select name="operacia"> <option value="1">Sčítanie</option> <option value="2">Odčítanie</option> <option value="3">Násobenie</option> <option value="4">Delenie</option> </select><br><br> <input type="hidden" name="odoslane" value="1"> <input type="submit" value="Vypočítat"> </form>
<?php
}
else { $operacia = $_POST['operacia'];
if ($operacia==1) { $sucet=$a+$b; echo $a . " + " . $b . " = " . $sucet; }
elseif ($operacia==2) { $rozdiel=$a-$b; echo $a . " - " . $b . " = " . $rozdiel; } elseif ($operacia==3) { $sucin=$a*$b; echo $a . " * " . $b . " = " . $sucin; }
else { $podiel=$a/$b; echo $a . " / " . $b . " = " . $podiel; } }
?> tak mi vyhadzovalo hlášku ktorú vidíte v nadpise tejto diskusie. čo nechápem je to prečo mi takú hlášku nevyhodilo pri tejto časti kodu "$operacia = $_POST['operacia'];" ktorá sa nachádza na začiatku; pritom obe pochádzajú z formulára; tak nechápem; skúšal som experimentovat (dat tomu prazdnu value) ale neprišeil som na to prečo to je tak. takže moja otázka znie: prečo je to tak? vedeli by ste prosím niekto sa k tomu nejako vyjadrit? [/code]
|
|
Registrovaný: 09.06.10 Prihlásený: 30.11.12 Príspevky: 20 Témy: 1 |
na vsetky POSTY dat isset teda
Kód: isset($_POST["nieco"])
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 20.07.2010 19:03 | |
|
Tie dva riadky musia byť v tej vetve else(post>0), lebo inak priraďuješ niečo čo neexistuje. To ti aj parser napísal - undefined index - nič také nie je definované, keďže si nič neposlal. Definované je to vtedy, keď to pošleš odniekiaľ cez post.
|
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
camo píše: Tie dva riadky musia byť v tej vetve else(post>0), lebo inak priraďuješ niečo čo neexistuje. To ti aj parser napísal - undefined index - nič také nie je definované, keďže si nič neposlal. Definované je to vtedy, keď to pošleš odniekiaľ cez post.
no to práve chápem. ale nechápem prečo mi tú istú hlášku nevyhodilo aj pri "$odoslane = $_POST['odoslane']; " ----to je tiež hodnota ktorú posielam cez POST
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 21.07.2010 8:21 | |
|
To je pravda, teraz sme dvaja čo to nechápu...
EDIT:
Mne ten tvoj kód vyhadzuje aj Undefined index: odoslane
Nerobí to len vtedy, keď si to pozerám v PSPade, teda keď to neprejde cez parser PHP. Keď to pozerám cez localhost tak reaguje normálne ako som písal.
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
bud to osetri ako pisal PanLolec
alebo si vypni notice
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
no chystám sa nastudovat si to isset ako radí panlolec; zatial som to skúšal bez nastudovania (experimentovanie podla prikladov na nete) a vyhadzovalo mi to blbosti - lebo sa k tej premennej priradila nejaka hodnota
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
mozes pouzit aj
if(!empty())
to je na tebe Ja mam radsej empty...
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
davider137 píše: no to práve chápem. ale nechápem prečo mi tú istú hlášku nevyhodilo aj pri "$odoslane = $_POST['odoslane']; " ----to je tiež hodnota ktorú posielam cez POST
notice vypisuje pri kazdej nedefinovanej premennej, teda aj pri $_POST['odoslane'], mozes pouzit napr. nasledujuci zapis pre kontrolu, ci bol formular uz odoslany:
Kód: if($_POST) { //odoslany } else { //neodoslany }
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 06.08.10 Prihlásený: 26.11.10 Príspevky: 5 Témy: 0 | Napísal awase: 06.08.2010 11:53 | |
|
defaultne nastavenie phpecka (v php.ini) je E_ALL & ~E_NOTICE. To znamena ze php vypisuje chyby ale nie upozornenia. Tieto maju len informacny charakter a ich vypis sa zapina pocas vyvoja aplikacie. Takze nie je to ziadna chyba ktoru treba osetrovat. Staci nastavit php
|
|
| Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Notice: Undefined variable v PHP, ASP | 4 | 390 | 02.06.2012 16:25 pogo | | nechapem tomuto oznameniu (Notice:Undefined...) v PHP, ASP | 10 | 666 | 12.06.2009 20:39 mienkofax | | Acer EX5620G-5A2G25Mi 15.4C/T5550/2G/250/W/C/B/Lin v Notebooky a netbooky | 5 | 431 | 28.06.2008 11:50 ScorpionSX | | [VYRIESENE] Undefined function v PHP, ASP | 2 | 445 | 09.03.2009 12:51 max-m | | Úprava kódu, undefined variable v PHP, ASP | 7 | 457 | 06.03.2016 14:23 killer | | NOTICE: The number of disks is not adequate to create a raid v Pevné disky a radiče | 6 | 1387 | 01.08.2007 20:06 Morpheus | | Fatal error: Call to undefined function mysql_connect() v PHP, ASP | 5 | 669 | 05.02.2011 16:45 gamelaster | | Codeblocks a SDL,error undefined reference to 'WinMain@16' v Assembler, C, C++, Pascal, Java | 6 | 780 | 20.11.2010 18:32 reDo | | Karel : "undefined reference to `world' " v Assembler, C, C++, Pascal, Java | 18 | 593 | 10.05.2013 22:44 Sue271 | | jQuery .index() v JavaScript, VBScript, Ajax | 2 | 631 | 20.02.2011 10:20 Ando | | Z-Index v HTML, XHTML, XML, CSS | 2 | 507 | 29.10.2017 0:42 GamerSK | | z-index? v HTML, XHTML, XML, CSS | 14 | 1165 | 11.09.2008 16:25 rooobertek | | search index v Databázy | 2 | 552 | 11.01.2010 16:13 Unlink | | Google index v Ostatné | 1 | 388 | 06.03.2016 8:56 killer | | INDEX POLA v JavaScript, VBScript, Ajax | 1 | 661 | 15.10.2009 11:39 Ďuri | | input index v PHP, ASP | 6 | 551 | 05.07.2009 19:42 php30 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|