Autor | Zpráva | ||
---|---|---|---|
denCo Profil |
#1 · Zasláno: 20. 5. 2009, 16:58:12 · Upravil/a: denCo
cawte, mam funkciu mail() ale chcem to spravit aby sa mi spojil uzivatelom zadany mail aj s celym textom
<?php function Ciste($sprava) { $sprava = str_replace ("<", "<", $sprava); $sprava = str_replace (">", ">", $sprava); $sprava = str_replace ("\"", """, $sprava); $sprava = str_replace ("'", "'", $sprava); return $sprava; } if ($_POST['odoslal'] == 1) { $mail = $_POST['mail']; $predmet = $_POST['predmet']; $telo = $_POST['telo']; $valid = ereg("^[0-9a-zA-Z=#!%&*()_-]+[.]?[0-9a-zA-Z=#!%&*()_-]*@[0-9a-zA-Z]+[.][0-9a-zA-Z]{1,4}[.]?[0-9a-zA-Z]*", $mail); if ($valid != 1) { $chyba = "Zadali ste neplatný mail!"; } if (empty($telo) || empty ($predmet)) { $chyba2 = "Neposielajte mi prázdny mail!"; } $predmet = Ciste($predmet); $telo = Ciste($telo); if (empty($chyba) && empty($chyba2)) { $komu = "moja@adresa.sk"; $hlavicka = "From: \"$mail\" <$mail>\r\n"; $hlavicka .= "Content-Type: text/plain; charset=utf-8\r\n"; $telo = $mail . "/n" . $telo; mail ($komu, $predmet, $telo, $hlavicka); $chyba = "<script> window.location.replace( \" ./mail.php \" ); </script>"; } } ?> ........ <form method="post" action ="mail.php"> <table> <tr><td>Váš e-mail:</td> <td> <div class="chyba"> <?php echo $chyba; ?> </div> <input maxlength="50" class="mix" type="text" name="mail"/></td></tr> <tr><td>Predmet správy:</td> <td> <div class="chyba"><?php echo $chyba2; ?> </div><input maxlength="50" class="mix" type="text" name="predmet"/> </td></tr> <tr><td>Text správy:</td> <td><textarea name="telo" class="telo"> </textarea></td></tr> <tr><td colspan="2"> <center> <input type="submit" name="odoslat" value="Odoslať"/> <input type="hidden" name="odoslal" value="1"> </center> </td> </tr> </table> </form> všetko mi ide v pohode len tento riadok $telo = $mail . "/n" . $telo; mi stále robí problémy, lebo vipíše mail dobre ale nedá nový riadok ale dá značku /n a text.... co vizera asi takto: asd@asd.sk/n cely text spravy ako to mam spravit aby mi tu znacku /n nepisalo ale aby mi text presiel na dalsi riadok??? dik moc a este ze co tam mam doplnit, aby vipisalo ze ci je odoslany alebo nie... dik |
||
anonymní Profil * |
#2 · Zasláno: 20. 5. 2009, 17:07:45
Nemá tam být \n
|
||
denCo Profil |
#3 · Zasláno: 20. 5. 2009, 17:13:24 · Upravil/a: denCo
„Nemá tam být \n“
nic v zlom ale tym ze napises co tam nema byt mi nepomozes, tak co tam ma byt? edit: sry prepac ale nevsimol som si ze si dal naopak to lomitko |
||
WertriK Profil |
#4 · Zasláno: 20. 5. 2009, 17:13:36
$telo = $mail . "\n" . $telo; |
||
tiso Profil |
#5 · Zasláno: 20. 5. 2009, 18:17:33
denCo miesto vlastnej funkcie Ciste() použi vstavanú funkciu htmlspecialchars()!
|
||
denCo Profil |
#6 · Zasláno: 20. 5. 2009, 18:28:45 · Upravil/a: denCo
„denCo miesto vlastnej funkcie Ciste() použi vstavanú funkciu htmlspecialchars()!“
preco??? dikes, to lomitko ma stve :D |
||
Werewolf Profil |
#7 · Zasláno: 20. 5. 2009, 18:46:31
denCo
„preco??? “ Tak například, říká Ti něco slovo modem? A víš, jak je modem pomalý? A víš, jak je pomalé připojení lidí, kteří se přes modem připojují? Pokud funkci Ciste() nahradíš funkcí htmlspecialchars(), ušetříš asi 1150 znaků, což je přes kilobajt. A bez urážky, funkce htmlspecialchars() je přehlednější, než tohle... tahle... radši nic... Asi bych vyplýtval maximální počet znaků. |
||
denCo Profil |
#8 · Zasláno: 20. 5. 2009, 18:57:24
viem co je modem, a je to rovnako (prip. lepsie) zabezpecenie???
|
||
denCo Profil |
#9 · Zasláno: 20. 5. 2009, 19:22:42 · Upravil/a: denCo
a este sa chcem spytat, ze ci mam radcej pouzit
$chyba = "<script> window.location.replace( \" ./mail.php \" ); </script>"; aby mi nechodili nahodou emaili dva za sebou alebo radcej mam napisat, aby vipisalo ze mail bol uspesne odoslany... co je lepsie alebo co by ste doporucili |
||
keeehi Profil |
#10 · Zasláno: 20. 5. 2009, 20:54:08
Werewolf
souhlasím s použitím funkce htmlspecialchars(), ale nějak nechápu jak to souvisí s modemem. Tento script se provádí na servru a uživatel ho vůbec nestahuje. Takže jemu je jedno, jak je velký. |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0