Autor | Zpráva | ||
---|---|---|---|
Erixx Profil |
#1 · Zasláno: 24. 6. 2010, 15:47:57
Zdravím,
poradí někdo , jak dostat emailovout adresu nahrnou v MYSQL do formuláře, na který mají být e-maily odesílány? Děkuji <h3>Odeslání e-mailu</h3> <? $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="" and $spam=="4918") { Mail(" require 'db.php'; @$vysledek = MySQL_Query('SELECT * FROM email ORDER BY poradi DESC'); //SQL příkaz if (!$vysledek): echo '<p>Error! Na stránce se vyskytla chyba! Zkuste svůj požadavek zopakovat. '; break; endif; while ($data = MySQL_Fetch_Array($vysledek)){ echo '".$data[email]."'; } } while (false); ", $predmet, $zprava, "From: " . $email); echo "<P>Váš e-mail <I><font color='red'>byl úspěšně odeslán!</font></I> Děkujeme Vám za Váš zájem!</P>"; } else { echo "<P>Váš e-mail bohužel <I><font color='red'>nebyl odeslán!</font></I> Kontrola e-mailu hlásí, že <I><font color='red'>nebyly vyplněny, případně byly vyplněny nesprávně všechny povinné údaje</font></I>.<BR>"; echo "<BR>Stiskněte prosím tlačítko Zpět a napište Vaši zprávu znovu.</P>"; } ?> |
||
Alphard Profil |
#2 · Zasláno: 24. 6. 2010, 15:57:56
while ($data = MySQL_Fetch_Array($vysledek)){ mail($data['email'], $predmet, $zprava); |
||
Erixx Profil |
#3 · Zasláno: 24. 6. 2010, 17:07:13
Pokusil jsem se to dát dokupy, ale bud mi to píše parse error, případně se mi na email odešlou prázdná data
nebo viz tento script data se odešlou na email zadaný v databázi správně, ale nemužu přijít jak ošetřit ty spodní podmínky + kontrolu vyplnění políček, s původnímy script nefungoval. Prosím o radu <? $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="" and $spam=="4918") require 'db.php'; @$vysledek = MySQL_Query('SELECT * FROM email ORDER BY poradi DESC'); //SQL příkaz if (!$vysledek): echo ' Na stránce se vyskytla chyba! '; break; endif; while ($data = MySQL_Fetch_Array($vysledek)){ mail($data['email'], $predmet, $zprava, "From: " . $email); echo "Váš e-mail byl úspěšně odeslán!"; echo "Váš e-mail nebyl odeslán!</I>.<BR>"; } ?> |
||
Alphard Profil |
#4 · Zasláno: 24. 6. 2010, 21:19:58
Blok za if není v závorkách { a }.
|
||
AM_ Profil |
#5 · Zasláno: 24. 6. 2010, 21:32:08 · Upravil/a: AM_
Erixx:
„@$vysledek“ zavináč pryč > echo "Váš e-mail byl úspěšně odeslán!"; > > echo "Váš e-mail nebyl odeslán!</I>.<BR>"; tohle je evidentní nesmysl, přece nebudeš vypisovat zároveň, že se mail odeslal i neodeslal. Navíc to pokaždé vypíše nespárované </I>. Kód odsazuj od kraje dle vnořených bloků programu { }, ne jak se ti zrovna zachce. > if ($predmet!="" and $email!="" and $zprava!="" and $spam=="4918") > > > require 'db.php'; pokud jsou splněny podmínky, načteš db.php, pokud ne, tak db.php vynecháš a spustíš zbytek skriptu? hloupé, ne? Pořádně si pročti a promysli, jak jsem ti to opravil, pokud ty chyby nepochopíš, bylo to zhola k ničemu... <?php //používej raději plnou notaci <?php $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="" and $spam=="4918") { require 'db.php'; $vysledek = MySQL_Query('SELECT * FROM email ORDER BY poradi DESC'); //výpisy chyb se nepotlačují - chyby se neschovávají, ale řeší! //--- SQL příkaz --- k čemu takový komentář? pokud někdo nepozná SQL příkaz, zřejmě nemá vůbec smysl, aby kód četl if (!$vysledek){ echo ' Na stránce se vyskytla chyba! '; //cituji manuál: break ends execution of the current for, foreach, while, do-while or switch structure. ty přeci v žádné z těchto struktur nejsi, tak kde bereš break? die(); //alternativa - ukončí vykonávání skriptu } //opraveno, sry while ($data = MySQL_Fetch_Array($vysledek)){ if (mail($data['email'], $predmet, $zprava, "From: " . $email)){ //tady musí být nějaká podmínka, jinak to nedává smysl echo "Email na adresu {$data['email']} byl úspěšně odeslán.<BR>"; } else { echo "Na adresu {$data['email']} se nepodařilo e-mail odeslat!<BR>"; //tvůj !. (vykřičník tečka), to je nové české interpunkční znaménko? co znamená? } } } ?> |
||
Alphard Profil |
#6 · Zasláno: 24. 6. 2010, 21:36:55
[#5] AM
Podmínka na 10. řádku je otevřená { a uzavřená endif; |
||
Erixx Profil |
#7 · Zasláno: 25. 6. 2010, 11:35:12
Ahoj, díky oběma za cenné rady.
Am_: Ja vím že jsem tam měl nesmysly, ale pořád mi to házelo chyby a nakoenc jsem musel odstranit i ty podmínky, jinak jsme to nemohl rozchodit. Ty chyby jako .!...</I>... Ve scriptu jsem měl více věcí, tady jsem ho zkrátil a přehlídl tam nějaké tyhle zbytky. Prostudoval jsem ten tvůj script a vyzkousel, emaily jsou se spojením s mysql funkční - paráda, pouze je někde chba v ošetření podmínky, pokud nezadám všechny povinné údaje if ($predmet!="" and $email!="" and $zprava!="" and $spam=="4918") , příkaz se provede ale hláška echo "Na adresu {$data['email']} se nepodařilo e-mail odeslat!"; se nevypíše. Nevíš chybu? Případně jak by se udělala kontrola zadaných údajů pomocí javascriptu přímo při odesílání emailu pomocí vyskakovacích alertboxů? script: <table cellpadding=3 cellspacing=0 border=0><p> <form action="page.php?id=540" method="post"> <tr> <td valign="top"><p>Předmět zprávy *</b></td> <td><select size="1" input name="predmet"> <option value="Posta z vaseho webu - nebyl vyplnen predmet zpravy"> -Zvolte předmět zprávy- </option> <option value="Posta z vaseho webu">Odeslat libovolný dotaz</option> <option value="Posta z vaseho webu - Pripominka k webovym strankam">Odeslat připomínku k webovým stránkám</option> </select></td> </tr> <tr> <td valign="top"><p>Kontaktní e-mail *</p></td> <td><input type="text" name="email" size="25" value=""></td> </tr> <tr> <tr> <td valign="top"><p>Opište kód *<IMG SRC="4918.gif" border="0" weight=50 height=30></p></td> <td><input type="text" name="spam" size="25" value=""></td> </tr> <tr> <td valign="top"><p>Zde napište vaši zprávu *</p></td> <td><textarea name="zprava" rows="6" cols="35"></textarea></td> </tr> <tr> <td valign="top"></td> <td><input type="submit" value="Odeslat formulář!"> <input type="reset" value="Vymazat údaje!"></td> </tr> </form> </table> děkuju za radu |
||
Erixx Profil |
#8 · Zasláno: 25. 6. 2010, 19:43:25
Tak už jsem to dal dokupy včetně kontrol a alert boxů.
Díky za předchozí pomoc se scriptíky :) |
||
Časová prodleva: 14 let
|
0