Autor Zpráva
stilgarcz02
Profil
Zdravim, chtel nekoho poprosit, zda-li by se nepodival na dva scripty. Prvni z nich - zpracuj.php - zpracovava data z formulare a ty data vypise na obrazovku. Druhy po validaci odesila zminena data. Problem je zrejme v tom, ze nedochazi k prenosu dat z promenych tykajicich se dat prijezdu a odjezdu. Zpracuj.php vypise, vse co ma vcetne dnu odjezdu ($d_o), mesice odjezdu($m_o), atd. Problem nastava pri odesilani dat. Vsechna data jsou v $qs - teda krome prave zminenych s datumem, protoze kdyz je tam dam, tak to zahlasi, ze se soubor nepodarilo najit. Kdyz data do $qs nedam, tak se formular normalne odesle.

Mohl by jste mi nekdo prosim poradit, jak to udelat aby se posilaly i ty zmineny data (v samotnym formulari jsou delany pres <select>) ?

Tady je zpracuj.php :


<?php
require ("common.php");

$submit = 1;
if (!$jmeno) {
$submit = 0;
$jmeno = "<div class='neplatne'>neplatné jméno</div>";
}

if (!check_email ($email)) {
$submit = 0;
$email = "<div class='neplatne'>Neplatná e-mailová adresa</div>";
}

echo (
"<B>Zkontrolujte prosím zadané údaje :</B>" .
NL . NL .
"<p><b>Datum příjezdu:</b> " . NL); //DATUM PŘÍJEZDU

switch ($d_p) {
case "1" : echo ("01. "); break;
case "2" : echo ("02. "); break;
case "3" : echo ("03. "); break;
case "4" : echo ("04. "); break;
case "5" : echo ("05. "); break;

case "6" : echo ("06. "); break;
case "7" : echo ("07. "); break;
case "8" : echo ("08. "); break;
case "9" : echo ("09. "); break;
case "10" : echo ("10. "); break;

case "11" : echo ("11. "); break;
case "12" : echo ("12. "); break;
case "13" : echo ("13. "); break;
case "14" : echo ("14. "); break;
case "15" : echo ("15. "); break;

case "16" : echo ("16. "); break;
case "17" : echo ("17. "); break;
case "18" : echo ("18. "); break;
case "19" : echo ("19. "); break;
case "20" : echo ("20. "); break;

case "21" : echo ("21. "); break;
case "22" : echo ("22. "); break;
case "23" : echo ("23. "); break;
case "24" : echo ("24. "); break;
case "25" : echo ("25. "); break;

case "26" : echo ("26. "); break;
case "27" : echo ("27. "); break;
case "28" : echo ("28. "); break;
case "29" : echo ("29. "); break;
case "30" : echo ("30. "); break;

case "31" : echo ("31. "); break;
}

switch ($m_p) { //MĚSÍC PŘÍJEZDU
case "le" : echo ("Ledna "); break;
case "un" : echo ("Února "); break;
case "br" : echo ("Března "); break;
case "du" : echo ("Dubna "); break;
case "kv" : echo ("Května "); break;

case "cn" : echo ("Června "); break;
case "cc" : echo ("Července "); break;
case "sr" : echo ("Srpna "); break;
case "za" : echo ("Září "); break;
case "ri" : echo ("Října "); break;

case "li" : echo ("Listopadu "); break;
case "pr" : echo ("Prosince "); break;
}

switch ($r_p) { //ROK PŘÍJEZDU
case "06" : echo ("2006"); break;
case "07" : echo ("2007"); break;
case "08" : echo ("2008"); break;
case "09" : echo ("2009"); break;
}


echo (
"<p><b>Datum odjezdu:</b> " . NL);
switch ($d_o) { //DATUM ODJEZDU
case "1" : echo ("01. "); break;
case "2" : echo ("02. "); break;
case "3" : echo ("03. "); break;
case "4" : echo ("04. "); break;
case "5" : echo ("05. "); break;

case "6" : echo ("06. "); break;
case "7" : echo ("07. "); break;
case "8" : echo ("08. "); break;
case "9" : echo ("09. "); break;
case "10" : echo ("10. "); break;

case "11" : echo ("11. "); break;
case "12" : echo ("12. "); break;
case "13" : echo ("13. "); break;
case "14" : echo ("14. "); break;
case "15" : echo ("15. "); break;

case "16" : echo ("16. "); break;
case "17" : echo ("17. "); break;
case "18" : echo ("18. "); break;
case "19" : echo ("19. "); break;
case "20" : echo ("20. "); break;

case "21" : echo ("21. "); break;
case "22" : echo ("22. "); break;
case "23" : echo ("23. "); break;
case "24" : echo ("24. "); break;
case "25" : echo ("25. "); break;

case "26" : echo ("26. "); break;
case "27" : echo ("27. "); break;
case "28" : echo ("28. "); break;
case "29" : echo ("29. "); break;
case "30" : echo ("30. "); break;

case "31" : echo ("31. "); break;
}

switch ($m_o) { //MĚSÍC ODJEZDU
case "le" : echo ("Ledna "); break;
case "un" : echo ("Února "); break;
case "br" : echo ("Března "); break;
case "du" : echo ("Dubna "); break;
case "kv" : echo ("Května "); break;

case "cn" : echo ("Června "); break;
case "cc" : echo ("Července "); break;
case "sr" : echo ("Srpna "); break;
case "za" : echo ("Září "); break;
case "ri" : echo ("Října "); break;

case "li" : echo ("Listopadu "); break;
case "pr" : echo ("Prosince "); break;
}

switch ($r_o) { //ROK ODJEZDU
case "06" : echo ("2006"); break;
case "07" : echo ("2007"); break;
case "08" : echo ("2008"); break;
case "09" : echo ("2009"); break;
}

echo (
"<p><b>Jméno:</b> $jmeno" . NL .
"<p><b>Příjmení:</b> $prijmeni" . NL .
"<p><b>Telefon:</b> $telefon" . NL .
"<p><b>E-mail:</b> $email" . NL .
"<p><b>Počet osob:</b> $pocet_osob" . NL .
"<p><b>Počet pokojů:</b> $pocet_pokoju" . NL .
"<p><b>Poznámky:</b> <BR>$poznamky"

);



$qs =

"?jmeno=" . urlencode ($jmeno) .
"&prijmeni=" . urlencode ($prijmeni) .
"&telefon=" . urlencode ($telefon) .
"&email=" . urlencode ($email) .
"&pocet_osob=" . urlencode ($pocet_osob) .
"&pocet_pokoju=" . urlencode ($pocet_pokoju) .
"&poznamky=" . urlencode ($poznamky)

;

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

if ($submit) {
echo ("<INPUT TYPE='submit' VALUE='Odeslat'>");
}
?>

<INPUT TYPE="button" VALUE="Zpět"
onClick="self.history.back();"
>


2. Dalsi dotaz je o neco mensi. Lze nejak udelat, aby se tendle formular poslal i na emailovou adresu, kterou mi zada uzivatel ?
Popripade kdybych mu chtel poslat, co vlastne vyplnil + nejakou zpravu pro nej


Tady je mail.php :



<?php
$to = "mujemail@";
$subj = "\nrezervace";
$body = "\nObjednávka z Webového Formuláře".
"\nDatum příjezdu: $d_p\n" .
"\nDatum odjezdu: $d_o\n" .
"\nJméno: " . quotemeta ($jmeno) .
"\nPříjmení: " . quotemeta ($prijmeni) .
"\nTelefon: " . quotemeta ($telefon) .
"\nE-mail: " . addslashes ($email) .
"\nPocet osob:" . quotemeta ($pocet_osob) .
"\nPočet pokojů: " . quotemeta ($pocet_pokoju) .
"\nPoznámky:\n " . quotemeta ($poznamky)

;
$success = mail ($to, $subj, $body);
if ($success) {
echo ("<h1>Formulář se podařilo odeslat.</h1>");
} else {
echo ("<h1
stilgarcz02
Profil
Jejda, omlouvam se, ze je to tak dlouhy, ale nejak se to roztahlo a hlavne ty veci v switch to prodluzujou
souki
Profil
nečtl jsem to celé, ale měl bych dvě rady..
1) ten rpvní switch je úplně zbytečný... proč nemůžeš udělat
if($d_p>0&&$d_p<32)echo $d_p.". ";

?
a v tom druhém bych použil asociativní pole.....
2) na serveru budou možná vypnuté globals, tak zkus na začátek dát
$jmeno = $_REQUEST['jmeno'];
a podobně pro ostatní data z formuláře
stilgarcz02
Profil
Praveze jak jeste jak nejsem v PHP moc zbehlej, tak sem pouzil neco jednoduchyho ( i kdyz pracnejsiho). Ten prvni problem se mi uz podarilo vyresit :-). To s tim asociativnim polem vyzkousim. Diky moc
Toto téma je uzamčeno. Odpověď nelze zaslat.

0