« 1 2 »
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
nemas nadstaveny zápis do php2
podle me.
Micho87
Profil
a to sa da ako napravit?
Hynek
Profil *
Máš nějak divně nastavení php, skript je správně. (Ale možná bys tam mohl házet ty uvozovky name="xxx" ;-)
Micho87
Profil
s " " alebo s ' ' to robi to iste.
Lemur
Profil *
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
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 *
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
Zkus to s tím post takhle:
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 $_POST['xxx'];
?>
Micho87
Profil
ok diky aj tak mi ide, konecne
Micho87
Profil
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
Zkus to takhle :

<html>
<body>
Zdajte meno:<br>
<form action="<? echo $_SERVER[PHP_SELF]; ?>" method="POST">
<input type="text" NAME="xxx"> <br>
<input type="SUBMIT" VALUE="odoslat">
</form>

<?php
echo $_POST['xxx'];
?>
</body>
</html>
Hansek
Profil *
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:

// <index.php>

<form action="default.php" method="post">
<label>dajte meno: <br /></label>
<input type="text" name="xxx"><label><br /></label>
<input type="submit" value="odoslat">
</form>

// ----- Konec souboru index.php


// <default.php>
<?php
echo $_POST['xxx'];
?>

// ----- Konec souboru default.php
Hansek
Profil *
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
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 *
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 *
La_ToRaNTe
JJ je to aby to bylo semanticky spravne.
Hansek
Profil *
Kdo neveri at tam bezi.
Přístupné formuláře
La_ToRaNTe
Profil
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
hansek a ako mam spravit ten drufy formular.
Micho87
Profil
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 *
La_ToRaNTe
Je to kvuli lepsi manipulaci s formularovymi poli.

Micho87
vytvor dalsi soubor default.php do nej napis tohle:


<?php 


echo $_POST['xxx'];

?>

Hansek
Profil *
La_ToRaNTe
Je to kvuli lepsi manipulaci s formularovymi poli.

Micho87
vytvor dalsi soubor default.php do nej napis tohle:


<?php 


echo $_POST['xxx'];

?>

Hansek
Profil *
La_ToRaNTe
Je to kvuli lepsi manipulaci s formularovymi poli.

Micho87
vytvor dalsi soubor default.php do nej napis tohle:


<?php 


echo $_POST['xxx'];

?>

Micho87
Profil
a pokial by som chcel aby to bolo vsetko na jednej stranke, da sa to?
Hansek
Profil *
Tak nejlepsi je to udelat pomoci funkce switch():


<?php

$akce=$_GET[akce];

switch($akce)
{
default:
?>

<form action="index.php?akce=zpracuj" method="post">
<label for="xxx">dajte meno: <br /></label>
<input type="text" name="xxx" id="xxx" /><label><br /></label>
<input type="submit" value="odoslat">
</form>

<?php
break;

case zpracuj:
echo $_POST['xxx'];
break;

}
?>
krteczek
Profil
ten druhy soubor musi byt:
if(!empty($_POST["proměnna"]))
{
echo $_POST["proměnna"];
}
krteczek
Micho87
Profil
Diky krteczek, Hansek, Lemur.

Uz mi to ide. dik
Hansek
Profil *
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
š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
« 1 2 »
Toto téma je uzamčeno. Odpověď nelze zaslat.