Autor Zpráva
Kubo2
Profil
čawte,
potreboval by som spracovať dáta z jedného súboru skriptom obsiahnutým v tom istom súbore - akú action mu mám dať?
blaaablaaa
Profil
action="#"
nebo
action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"
Ugo
Profil
1. stávající url (pohledej v proměnné $_SERVER)
2. prázdnou
3. hash
4. get parametr

osobně doporučuju prázno i ikdyž to neni validní a nebo hash
Kubo2
Profil
Počkajte... A takto to nemôže byť?
<form action="" method="post">
<label for="kr"> Údaje formulára ... </label>
<input id="kr">
<input type="submit" name="odosli" Value="ano">
</form>
<?php
if($_POST['odosli'] = "ano")
    {
// týmto obalím všetky príkazy, ktoré sa vykonajú pri odoslaní toho konkrétneho formulára
echo $dobre;
    }
else // čo sa stane pri hacknutí
    {
echo $hack;
    };
?>


Môže to byť aj takto?
Ugo
Profil
može, prázdná action dobrá action, akorát validátor bude asi řvát blbosti, ale tomu se jeden nezavděčí
Kubo2
Profil
tak díki, skúsim to tak spraviť, a napíšem, jak to funguje
Beavis
Profil
Kubo2:
Taky ti doporučím práznou action; dle mého je to nejlepší, nejde tam udělat chyba.. :-) A na validátor v tomhle kašli.
Kubo2
Profil
Beavis, validátori sou všechny dost blbé

Dávají si záležat na věcech, na kterých nám nezáleží


Mám ešte jednu otázku:
Ako spôsobiť, aby keď sa v tom istom súbore odošle ďaľší formulár, vypísaný predošlou funkciou, napíše sa opäť ďaľší obsah, a ten predošlý bude smazán?

Dobrý príklad máte napr. pri registrácii na http://www.webzdarma.cz
peta
Profil
Moc ti nerozumim.
Mas soubor ahoj.php. v nem mas formular. Formular vyplnis. Kliknes odeslat. On se odesle na soubor ahoj.php. Php zacne generovat novou stranku ahoj.php.
A ted se ma stat co?
a) chces zobrazit ten samy formular s udaji, ktere jsi odeslal?
b) chces zobrazit novy formular, ale neztratit udaje z predesleho?
c) chces zobrazit udaje z predesleho a soucasne je pouzit pro dalsi formular?

<?php $hodnota = isset($POST['hodnota']) ? $POST['hodnota'] : ""; ?>
<form action="" method="post">
a) <input name="hodnota" value="<?php echo $hodnota; ?>">
b) <input name="hodnota" value="<?php echo $hodnota; ?>" type="hidden">
c) <?php echo "<br>hodnota = $hodnota";?>
<input name="hodnota" value="<?php echo $hodnota; ?>" type="hidden">
</form>
abc
Profil
Kubo2:
Dovolil bych si opravit jednu chybičku, kterou jsem v rychlosti zahlédl:
if($_POST['odosli'] = "ano") => if($_POST['odosli'] == "ano")
Kubo2
Profil
abc:
Proč tam majú být dvě rovnátka ?
Mně to funguje i s jedným ...
pcmanik
Profil
Kubo2:
Zisti si co robi = a == v php, a ked uz to budes pozerat pozri si rovno aj ===. Toto su zakladne veci...
Someone
Profil
Kubo2:
Ne, nefunguje, vždy se to vyhodnotí jako true. Jedno = znamená přiřazování 2 = znamenají porovnání.

A já osobně doporučuji použít isset().
Kubo2
Profil
Jáj, už viem, toto == rovnosť a toto != nerovnosť, že? Tú nerovnosť poznám a používam, tak som si to odvodil :-] Inak díki
Kubo2
Profil
Ja:
...napíše sa opäť ďaľší obsah, a ten predošlý bude smazán?

Myslel som to tak, že keď sa predošlý skript spracuje, zmaže sa predošlý výstup a nahradí ho výstup zo spracovaného skriptu. A tak ďalej. Odošle sa formulár z tohoto výstupu, tento výstup sa zmaže a nahradí ho ďaľší. V tom istom súbore. Budem rád ak mi ešte napíšete a poradíte, ale práve mi napadlo jedno riešenie, idem ho vyskúšať . Tak zatím a zanechávam ďaľšie fórum.
Kubo2
Profil
funguje, úplně úžasně ;-]

Použil sem při tom GET parametr, proměnnú action a podmínku switch:
<form action="?action=read" method="post">
<input name="text">
<input name="ptv" type="submit">
</form>

<?php
switch($_GET['action'])
{
case 'write':
return funkcia_1();
break;
case 'get':
return funkcia_2();
break;
case 'read':
return funkcia_3();
break;
}
?>



vyriešené

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: