Autor | Zpráva | ||
---|---|---|---|
Micho87 Profil |
Nazdr, mam taky problem:
1stranka: Zdajte meno:<br> <FORM ACTION="php2.php" METHOD=POST> <INPUT TYPE=text NAME=xxx> <br> <INPUT TYPE=SUBMIT VALUE="odoslat"> </FORM> 2stranka: <!- php2.php -> <body> <?php echo $xxx; ?> a vypisuje mi to toto: Notice: Undefined variable: xxx in c:\inetpub\wwwroot\php2.php on line 7 co tomu je? |
||
none Profil |
#2 · Zasláno: 22. 4. 2005, 17:26:04
nemas nadstaveny zápis do php2
podle me. |
||
Micho87 Profil |
#3 · Zasláno: 22. 4. 2005, 17:27:19
a to sa da ako napravit?
|
||
Hynek Profil * |
#4 · Zasláno: 22. 4. 2005, 17:34:01
Máš nějak divně nastavení php, skript je správně. (Ale možná bys tam mohl házet ty uvozovky name="xxx" ;-)
|
||
Micho87 Profil |
#5 · Zasláno: 22. 4. 2005, 17:40:09
s " " alebo s ' ' to robi to iste.
|
||
Lemur Profil * |
#6 · Zasláno: 22. 4. 2005, 17:49:58
register_gloabals. Viz dokumentace k PHP . Spousta lidí pořád ještě neví, že na proměné z requestu se musí přistupovat přes superglobální pole, pokud jsou vypnuté registyer_globals. Nezapínejte je! Je lepší používat místo $xxx $_POST["xxx"] (nebo $_GET nebo $_REQUEST nebo $_COOKIE nebo $_SESSION) , protože zapnuté register_globals je meč s dvojím ostrím, a to druhé ostří je sakra ostré a přímo vybízí k útoku pomocí podvržení vnitřních proměnných ... Zrovna včera jsem strávil pár hodin opravou starších stránek (cca 100+ souborů, asi půl mega dohromady), které přestali chodit po tom, co majitel změnil hosting a na novém byly register_globals (správně) vypnuté.
|
||
Micho87 Profil |
#7 · Zasláno: 22. 4. 2005, 18:45:19
Uz mi to funguje. Diky Lemur. Takto to ma byt. Musi tam byt GET s POST mi to nejde:
1stranka. default.php Zdajte meno:<br> <FORM ACTION="php2.php" METHOD=$_GET['xxx']> <INPUT TYPE=text NAME="xxx"> <br> <INPUT TYPE=SUBMIT VALUE="odoslat"> </FORM> 2stranka. php2.php <?php echo $_GET['xxx']; ?> |
||
Lemur Profil * |
#8 · Zasláno: 22. 4. 2005, 19:01:48
Není zač. Ale je tam ještě jedna chybka, místo
<FORM ACTION="php2.php" METHOD=$_GET['xxx']> má být <form action="php2.php" methot="get" (nebo methot="post") > nebo <form action="php2.php" nebo methot="post" > GET je defaultní předávání proměných přes URL. Je to vhodné jen na relativně malé objemy dat a vypadá to ošklivě. POST se posílá samostatně, může být mnohem delší a hlavně není vidět v URL. |
||
La_ToRaNTe Profil |
#9 · Zasláno: 22. 4. 2005, 20:10:49
Zkus to s tím post takhle:
Zdajte meno:<br> |
||
Micho87 Profil |
#10 · Zasláno: 23. 4. 2005, 09:02:39
ok diky aj tak mi ide, konecne
|
||
Micho87 Profil |
#11 · Zasláno: 23. 4. 2005, 09:22:07 · Upravil/a: Micho87
ale este by som potreboval toto opravit:
Zdajte meno:<br> <form> <input type="text" NAME="xxx"> <br> <input type="SUBMIT" VALUE="odoslat"> </form> <?php echo "$xxx"; ?> -takto mi to nejde a chel by som aby sa mi zobrazilo na tej stranke co som napisal ked pouzijem toto: Zdajte meno:<br> <form action="default.php" method="POST"> <input type="text" NAME="xxx"> <br> <input type="SUBMIT" VALUE="odoslat"> </form> <?php echo $_POST['xxx']; ?> tak mi to ide ale predtym mi napise Notice: Undefined index: xxx in c:\Inetpub\wwwroot\default.php on line 16 - ako to odstranim????? |
||
La_ToRaNTe Profil |
#12 · Zasláno: 23. 4. 2005, 10:21:17
Zkus to takhle :
|
||
Hansek Profil * |
#13 · Zasláno: 23. 4. 2005, 10:29:51
To prvni ti nejde proto protoze nemas definovanou metodu odesilani promenych ("get" nebo "post") a soubor kterz bude ty promene zpracovavat. A pak sou ty promeny soucasti pouze toho formulare. Jinak ty veci jako "Zadejte jmeno" atd. maji byt uvedeny v tagu
<label>Zadejte jmeno:</label>. Takhle to funguje:
|
||
Hansek Profil * |
#14 · Zasláno: 23. 4. 2005, 10:31:40
La_ToRaNTe
No tak pokud to chce vypisovat v ramci souboru kde je ten formular tak mu to pujde stejne az po obnoveni stranky coz si myslim ze je blbost. |
||
La_ToRaNTe Profil |
#15 · Zasláno: 23. 4. 2005, 10:40:48
Hansek
Ted te asi nechápu. Jinak ty veci jako "Zadejte jmeno" atd. maji byt uvedeny v tagu To jako v tom "label" a proč? to nějáké pravidlo ? |
||
Hansek Profil * |
#16 · Zasláno: 23. 4. 2005, 10:42:08
La_ToRaNTe
No tak pokud to chce vypisovat v ramci souboru kde je ten formular tak mu to pujde stejne az po obnoveni stranky coz si myslim ze je blbost. |
||
Hansek Profil * |
#17 · Zasláno: 23. 4. 2005, 10:43:22
La_ToRaNTe
JJ je to aby to bylo semanticky spravne. |
||
Hansek Profil * |
#18 · Zasláno: 23. 4. 2005, 10:44:35
Kdo neveri at tam bezi.
Přístupné formuláře |
||
La_ToRaNTe Profil |
#19 · Zasláno: 23. 4. 2005, 10:45:46
Hansek
JJ je to aby to bylo semanticky spravne. Wow, o tom jsem nikdy neslyšel, zatím jsem to ani nikde neviděl teda :)) , aspon co sem koukal po stránkách. |
||
Micho87 Profil |
#20 · Zasláno: 23. 4. 2005, 10:50:44
hansek a ako mam spravit ten drufy formular.
|
||
Micho87 Profil |
#21 · Zasláno: 23. 4. 2005, 10:58:41
tento: Zdajte meno:<br>
<form action="default.php" method="POST"> <input type="text" NAME="xxx"> <br> <input type="SUBMIT" VALUE="odoslat"> </form> <?php echo $_POST['xxx']; ?> takto mi ide ale na zaciatku mi vypise toto a to tam nechcem mat. Notice: Undefined index: xxx in c:\Inetpub\wwwroot\default.php on line 18 |
||
Hansek Profil * |
#22 · Zasláno: 23. 4. 2005, 10:58:47
La_ToRaNTe
Je to kvuli lepsi manipulaci s formularovymi poli. Micho87 vytvor dalsi soubor default.php do nej napis tohle: <?php |
||
Hansek Profil * |
#23 · Zasláno: 23. 4. 2005, 10:59:09
La_ToRaNTe
Je to kvuli lepsi manipulaci s formularovymi poli. Micho87 vytvor dalsi soubor default.php do nej napis tohle: <?php |
||
Hansek Profil * |
#24 · Zasláno: 23. 4. 2005, 10:59:53
La_ToRaNTe
Je to kvuli lepsi manipulaci s formularovymi poli. Micho87 vytvor dalsi soubor default.php do nej napis tohle: <?php |
||
Micho87 Profil |
#25 · Zasláno: 23. 4. 2005, 11:25:38
a pokial by som chcel aby to bolo vsetko na jednej stranke, da sa to?
|
||
Hansek Profil * |
#26 · Zasláno: 23. 4. 2005, 11:50:19
Tak nejlepsi je to udelat pomoci funkce switch():
|
||
krteczek Profil |
#27 · Zasláno: 23. 4. 2005, 13:06:51
ten druhy soubor musi byt:
if(!empty($_POST["proměnna"])) { echo $_POST["proměnna"]; } krteczek |
||
Micho87 Profil |
#28 · Zasláno: 23. 4. 2005, 13:17:47
Diky krteczek, Hansek, Lemur.
Uz mi to ide. dik |
||
Hansek Profil * |
#29 · Zasláno: 23. 4. 2005, 15:08:57
krteczek
ale on to chtel jen zobrazit (promenou xxx) ty uz ji testujes. Takze ten druhej soubor nemusi byt jako je tvuj priklad. Pokud by doslo na testovani roznejch aspektu tak si to uz Micho udela podle predstav. |
||
krteczek Profil |
#30 · Zasláno: 23. 4. 2005, 16:20:52
šlo tam o ten vyrok:Notice: Undefined index: xxx in c:\Inetpub\wwwroot\default.php on line 18 na tom hostingu maji nastaven >>ukecaný výpis<< který kontroluje proměnne jestli jsou definovane, jde proste o to že každá proměnná musí být před použitím definovaná, nebo pokud ji přenášíš z jednoho skriptu do druhého pomocí post,get,nebo ji hledáš v requestu, musíš otestovat jestli byle předána a podle toho přizpůsobit skript.
prostě když otevřeš tu druhou stránku tohoto připadu bez toho že by jsi na ni šel odkazem z formuláře,nebo nevyplníš fornulář tak bude proměnná prázdná a pro php nedefinovaná krteczek PS: ten ukecaný výpis doporučuji nastavit i u vás na domácím počítači: tady jsem se o tom trošku rozepsal:http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=57 04 |
||
Téma pokračuje na další straně.
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0