Autor | Zpráva | ||
---|---|---|---|
Jiko Profil * |
#1 · Zasláno: 26. 12. 2009, 17:23:31
Dobrý den,
nefunguje mi formulář tak jak by měl, při načtení mi naskočí ihned, že nejde formulář odeslat a formulář jde odeslat i pokud jsou údaje prádné. Prosím poradte. <?php echo '<h3>Kontaktní formulář</h3>'; echo '<div class="kontakt"> <form method="post" action="login.php?id=kontakt"> <label for="kont_jmeno">Jméno a přijmení:</label><input type="text" id="kont_jmeno" name="kont_jmeno"><br> <label for="kont_email">Email:</label><input type="text" id="kont_email" name="kont_email"><br> <label for="kont_text">Text zprávy:</label><textarea id="kont_text" name="kont_text" cols="40" rows="5"></textarea><br><br> <input style="margin-left: 300px; " type="submit" value="Odeslat"><br> </form> </div>'; $email = "pzleveling@gmail.com"; $predmet = "Podpora"; $zprava = $_POST["kont_text"]; $from = $_POST["kont_email"]; if (isset($_POST[kont_jmeno], $_POST['kont_email'], $_POST['kont_text'])){ mail($email, $predmet, $zprava, "From: $from"); echo '<p style="text-align: center; color: green;">Email úspěšně odeslán!</p>'; } else { echo "Email se nepodařilo odeslat!"; } ?> |
||
mckay Profil |
Jiko:
Začal bych s tímhle <?php if (isset($_POST['kont_jmeno'], $_POST['kont_email'], $_POST['kont_text'])){ ?> Edit: aha, tak jdou. Rozšířil si mi obzory. Ale tím isset netestuješ, jestli jsou prázdné, ale jestli přišli. Zkus použít <?php empty(); ?> Moderátor DoubleThink: Nepoužívej obrázky, které nejsou k tématu.
|
||
Joker Profil |
#3 · Zasláno: 26. 12. 2009, 17:36:48
Jiko:
To celé je soubor login.php? Pokud ano, tak: - Proč se na klienta nejdřív pošle formulář a až potom je skript? Je potřeba formulář pro odeslání další zprávy poté co zprávu odešlu? - Pravděpodobně chcete použít funkci empty() místo isset(). - Chybí uvozovky, viz mckay. - K čemu je dobrá GETem předávaná proměnná id? mckay: „Navíc si také nejsem jistý, že jde v isseT() oddělovat hodnoty pro otestování takto.“ Jde, viz manuál, nicméně Jiko potřebuje empty a ne isset. |
||
Jiko Profil * |
#4 · Zasláno: 26. 12. 2009, 17:55:23
Když tam dám empty vypíše mi to chybu.
Parse error: syntax error, unexpected ',', expecting ')' in /var/www/web5/masozrave.com/masozrave.com/ahoj/content/kontakt.php on line 25 |
||
Radek9 Profil |
#5 · Zasláno: 26. 12. 2009, 17:58:47 · Upravil/a: Radek9
Jiko:
Musíte to oddělit (tzn. každou proměnnou zvlášť) a spojovat pomocí and. <?php if (!empty($_POST['kont_jmeno']) and !empty($_POST['kont_email']) and !empty($_POST['kont_text'])){ ?> |
||
Jiko Profil * |
#6 · Zasláno: 26. 12. 2009, 18:24:24
Stále mi to vypisuje, že email nelze odeslat ještě před tím než se vůbec pokusím něco odeslat.
|
||
Joker Profil |
#7 · Zasláno: 26. 12. 2009, 18:53:09
Jiko:
„Stále mi to vypisuje, že email nelze odeslat ještě před tím než se vůbec pokusím něco odeslat.“ ...což by měl dělat i původní kód. Příčinou je, že se testuje jen jestli pole jsou prázdná a ne jestli formulář byl vůbec odeslán. |
||
Jiko Profil * |
#8 · Zasláno: 26. 12. 2009, 19:09:51
Co bych měl udělat?
|
||
Časová prodleva: 4 dny
|
|||
Molda Profil |
#9 · Zasláno: 30. 12. 2009, 13:15:16
<?php $email = "pzleveling@gmail.com"; $predmet = "Podpora"; if (isset($_POST['kont_jmeno'], $_POST['kont_email'], $_POST['kont_text']) AND (!empty($_POST['kont_jmeno']) AND (!empty($_POST['kont_email']) AND (!empty($_POST['kont_text']))))) { $zprava = $_POST["kont_text"]; $from = $_POST["kont_email"]; mail($email, $predmet, $zprava, "From: $from"); echo 'Email úspěšně odeslán!'; } ?> |
||
Časová prodleva: 14 let
|
0