| 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: 17 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0