Autor Zpráva
stilgarcz02
Profil
Zdravim,

rad bych nekoho poprosil o radu. Mam formular, ten zpracuje script, kterej ho zkontroluje a vypise obsah na obrazovku. Kdyz je vse ok, mam dalsi script, kterej pak ten obsah odesila. A ted ten problem. Normalne ten prenos z prostredni stranky (kontrola + vypis) do stranky (vlastne scriptu mail.php) mam udelanej, ze hodnoty vkladam do url a pak v mail.php je beru pres GET. Prusvih je samozrejme v tom, ze je to velikostne omezeny, takze kdyz se nekdo do formulare rozepise a je to vic jak ten limit, tak se formular neodesle.

Proto by me zajimalo, jestli to jde udelat i jinak nez pres vkladanini do url? Urcite ano, ale jen nevim, jak na to :-).

Takhle vypada konec prostredni stranky (scriptu zpracuj.php), jak tam pouzivam to vkladani do url:
$qs =

"?jmeno=" . urlencode ($_POST["jmeno"]) .
"&prijmeni=" . urlencode ($_POST["prijmeni"]) .
"&datum_narozeni=" . urlencode ($_POST["datum_narozeni"]) .
"&jmeno_zastupce=" . urlencode ($_POST["jmeno_zastupce"]) .
"&prijmeni_zastupce=" . urlencode ($_POST["prijmeni_zastupce"]) .
"&adresa_zastupce=" . urlencode ($_POST["adresa_zastupce"]) .
"&tel_cislo_zastupce=" . urlencode ($_POST["tel_cislo_zastupce"]) .
"&termin=" . urlencode ($_POST["termin"]) .
"&poznamky=" . urlencode ($_POST["poznamky"])

;
echo "<center> <p>";
$URL = "mail.php" . $qs;
echo ("<FORM METHOD=get ACTION=\"$URL\">");


echo ("<INPUT TYPE='submit' VALUE='Odeslat'>");

?>


Predem dekuji za jakoukoli radu ci pomoc.
koudi
Profil
Nedávej to přes GET, ale POST, případně přes SESSIONS
Mysho
Profil *
pouzi metodu post s tym ze
<input type="hodden" value="$to co xces" name="name">
stilgarcz02
Profil
To je prave to, nikde nemuzu najit to, jak se to dela pres POST.

Koukal sem na Session, pomohlo by tedy kdybych na zacatku scriptu registroval vsechny promene zhruba takto:

session_start();

session_register("promena1");
session_register("promena3");
atd.
a pak je volal pres $_session["promena1] ?
Mysho
Profil *
ano to by pomohlo
Kajman_
Profil *
echo ("<FORM METHOD=\"POST\" ACTION=\"$URL\">");
stilgarcz02
Profil
Praveze kdyz jsem to samy delal pres POST, tak se mi komunikace mezi zpracuj.php a mail.php nezadarila vubec. Pres to GET, jak to je ted to funguje.

Zapasim ted s tema sessions, ale nejak sem se do toho zamotal. Pouzivam phpEditorIDE a kdyz pisu prikazy jako napr. echo, tak se zvyrazni syntaxe. U session to nic nedela, syntaxe se zvyrazni jen kdyz ji volam. Kdyz session registruju, tak se objevi toto:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-8\www\pokusny formular session\zpracuj.php:3) in c:\program files\easyphp1-8\www\pokusny formular session\zpracuj.php on line 17

Neni mi taky jasny jestli je mam registrovat uz ve zpracuj.php (a v nem uz pouzivat misto $_POST uz $_SESSION) a nebo az v mail.php (a misto $_GET tady pouzivat $_SESSION).
tiso
Profil
stilgarcz02
Najlepšie je 1., 2. skript a časť 3.-tieho dať do jedného:
-vypíšeš formulár
-po odoslaní sa skontroluje vyplnenie povinných položiek, správnosť hodnôt a podobne, keď je niečo zle tak sa vypíše znovu formulár s predvyplnenými hodnotami ktoré tam user zapísal i s chybovým hlásením čo je zle.
-ak sú dáta v poriadku tak sa vykoná nejaká akcia (odošle sa mail, uložia sa dáta do DB, ...) a presmeruje sa na inú stránku kde sa zobrazí výsledok akcie (hláška mail bol odoslaný, a podobne...), alebo kde chceš aby človek pokračoval...
Takto je to oveľa elegantnejšie ako Tvoj terajší spôsob či to o čo si sa pokúšal.
stilgarcz02
Profil
Mockrat dekuji za rady, problem je vyresen.

Mel bych jeste jeden mensi dotaz. Jestlize tedy odesilam formular pres server, kde mam stranky, jak je to s podporou diakritiky v odesilanem mailu ? Jestlize mi nekdo vyplni ve formulari jmeno s diakritikou, tak se vetsinou i spravne odesle na mail. Ale obcas to dane pismeno zmizi nebo je misto nej neco jinoho. Jde napriklad o ž.

Je tendle problem s diakritikou ve scriptu a nebo na strane serveru (v nastaveni) ? Jde neco udelat aby diakritika sla na 100% ?
Toto téma je uzamčeno. Odpověď nelze zaslat.

0