Autor | Zpráva | ||
---|---|---|---|
Štěpa5 Profil * |
#1 · Zasláno: 13. 5. 2008, 10:09:47
Zkouším vytvořit podle různých návodů formulář na web, můžete mi prosím poradit jestli jdu správnou cestou nebo je to špatně? Moc díky.
<form action="mail.php" method="post"> <table style="width: 510px; height: 395px;"> <tbody> <tr> <td style="width: 151px;"><small><b>Jméno</b></small></td> <td style="width: 343px;"><small><b>Přímení</b></small></td> </tr> <tr> <td style="width: 151px;"><input name="firstname" class="text" id="firstname" value="" type="text"></td> <td style="width: 343px;"><input name="lastname" class="text" id="lastname" value="" type="text"></td> </tr> <tr> <td style="width: 151px;"><small><b>Telefon</b></small></td> <td style="width: 343px;"><small><b>Email</b></small></td> </tr> <tr> <td style="width: 151px;"><input name="phone" class="text" id="phone" value="" type="text"></td> <td style="width: 343px;"><input name="email" class="text" id="email" value="" type="text"></td> </tr> <tr> <td style="width: 343px;" colspan="4"> </td> </tr> <tr> <td style="width: 500px;" colspan="4"><b>VAŠE POPTÁVKA </b>(Prosíme o co nejpřesnější specifikaci dotazu)</td> </tr> <tr> <td style="width: 343px;" colspan="4"><textarea name="request" class="textarea" id="request" rows="5" cols="25"></textarea></td> </tr> <tr> <td style="width: 343px;" colspan="3"> </td> </tr> <tr> <td style="width: 343px;" colspan="4">Přiložit soubor</td> </tr> <tr> <td style="width: 343px;" colspan="3"><input name="upload_file" id="upload_file" class="file" type="file"></td> </tr> <tr> <td style="width: 343px;" colspan="3"> </td> </tr> <tr> <td style="width: 343px;" colspan="3"><input class="submit" value="Odeslat poptávku" type="submit"></td> </tr> </tbody> </table> </form> <?php $jmeno = $_POST['jmeno']; $mail = $_POST['mail']; $predmet = $_POST['predmet']; $text = $_POST['text']; $prijemce = "muj mail@muj mail"; $zahlavi = "From: " . $mail . "\r\n"; if ( !empty($jmeno) and !empty($mail) and !empty($predmet) and !empty($text)) { mail($prijemce, $predmet, $text, $zahlavi); echo "<h3>Mail byl úspěšně odeslán.</h3>"; } else { echo "<h3>Nevyplnili jste všechna pole. Mail nebyl odeslán.</h3>";} ?> |
||
peta Profil |
#2 · Zasláno: 13. 5. 2008, 12:16:28
Štěpa5
ANO NE. Co vic ti odpovedet na otazku? :) Jeste nejaka otazka? Nebo jsi snad chtel zkontrolovat cast kodu? Idealni je plne funkcni odkaz: kod.php a kod.php.txt . Jakekoliv casti kodu posilane do diskuse vetsinou vedou k tomu, ze stejne rekneme, ze problem je nekde v ostatnim kodu. Co se tyce odesilani mailu, tak mozna budiz, jinak RSS. A pokud budiz, urcite bych kopii ukladal do databaze. Z ruznych duvodu nemusi mail dorazit a z ruznych duvodu muzes to mit chybne zabezpecene proti spamu. Aspon si to muzes kontrolovat. |
||
TSD Profil |
#3 · Zasláno: 13. 5. 2008, 12:30:08
Štěpa5
Myslím že třeba toto <tr> <td style="width: 343px;" colspan="3"> </td> </tr> <tr> <td style="width: 343px;" colspan="4">Přiložit soubor</td> </tr> není úplně ideální, ale pokud jde o samotný formulář, tak tam žádnou chybu nevidím. |
||
Měsíček Profil |
#4 · Zasláno: 13. 5. 2008, 13:45:03
Já si myslím, že házet interní styly do tabulek je prasárna a ještě větší prasárna to je, když se stejný styl opakuje, zadalší mi není jasné proč to nezkrátíš ..
mail($prijemce, $predmet, $text, $zahlavi); můžeš dát přeci rovnou mail($_POST["prijemce"], $_POST["predmet"], ... ); kdyby tam těch proměnných bylo více (například registrační formulář, tak se to již nevyplatí, protože s proměnnýma se bude pracovat vícekrát a tak by to bylo delší, ale ty těch proměnných máš málo a ještě k tomu s nimi moc nepracuješ, tak proč to nezkrátit? |
||
vertigo4 Profil |
#5 · Zasláno: 13. 5. 2008, 13:55:58
Štěpa5
ty proměnné nejsou vůbec ošetřené... |
||
Měsíček Profil |
#6 · Zasláno: 13. 5. 2008, 13:59:02
"ty proměnné nejsou vůbec ošetřené..."
Nechceš trochu více upřesnit? |
||
Štěpa5 Profil * |
#7 · Zasláno: 13. 5. 2008, 18:45:16
Díky všem, moc dobrou cestou tedy nejdu, zkusím to předělat. Pokud bych mohla ještě poprosit, nevím co znamená "proměnné nejsou ošetřené" a jak by mělo být zapsáno pokud chci ve formuláři přiložit soubor a odeslat na mail? V kódu bude např. <input type="file" name="soubor"> ale co v php?
|
||
Měsíček Profil |
#8 · Zasláno: 13. 5. 2008, 19:01:40
"V kódu bude např. <input type="file" name="soubor"> ale co v php?"
2x až 3x větší balast kódu .. nejspíše budeš muset použít $_FILES[] nebo $_FILE[] .. už nevím :) |
||
vertigo4 Profil |
#9 · Zasláno: 13. 5. 2008, 20:27:22
Štěpa5
No posílání příloh je celkem složité... doporučím ti PHPmailer, je to skvělá třída na posílání mailů a jednoduše se tam přidají i přílohy. nevím co znamená "proměnné nejsou ošetřené" Znamená to, že to co dotyčný posílá, není nijak zabezpečeno... nechci zde rozepisovat co by mělo být ošetřeno, protože když využiješ oné třídy PHPmailer, tak se o to ani nemusíš starat... |
||
Měsíček Profil |
#10 · Zasláno: 13. 5. 2008, 20:29:25
Ale já bych to docela Vertigo rád věděl, jak a proč chceš ošetřovat proměnné u obyčejného skriptu na odesílání e-mailů.
|
||
vertigo4 Profil |
#11 · Zasláno: 13. 5. 2008, 20:32:08
Měsíček
tak si založ vlastní téma... |
||
Měsíček Profil |
#12 · Zasláno: 13. 5. 2008, 20:33:53
Nemám zájem základat stále nová a nová témata.., ale jestli mi chceš udělat radost pošli mi své řešení na e-mail, díky.
|
||
peta Profil |
#13 · Zasláno: 14. 5. 2008, 08:23:11
vertigo4
vertigo4 : ty proměnné nejsou vůbec ošetřené... Štěpa5 : nevím co znamená "proměnné nejsou ošetřené" vertigo4 : nechci zde rozepisovat co by mělo být ošetřeno, protože když využiješ oné třídy PHPmailer, tak se o to ani nemusíš starat Měsíček : Nechceš trochu více upřesnit? Tak 2 maji stejny dotaz ve stejnem foru, tyka se to tehoz tematu a maji si zalozit nove tema? :) Měsíček rekneme, ze je dobre kontrolovat spravny tvar e-mail adresy, kontrolovat text od spamu a dalsi veci. Kdyz takovyto formular vystavis na web, prijde ti hafo zajimavych zprav, ze nejak vystourali, ze mas maleho pindika a proto ti nabireji pilulky na jeho prodlouzeni a zvetseni :) Navic vyhrajes v mnoha loteriich. |
||
Časová prodleva: 16 let
|
0