Autor | Zpráva | ||
---|---|---|---|
wedder Profil |
#1 · Zasláno: 23. 10. 2007, 10:58:48
Zdravím, prosím o radu, mám problém, že u hostitele, kde mám stránky s použitím funkce Mail() tuto funkci nějak omezili a píšou mi následující:
"Musite osetrit vstupy - tedy aby napr. pomoci novych radek nesly vkladat hlavicky mailu a tedy tak posilat pres formulare spam." Ale nevím si s tím rady, nejsem v php tak zdatný, už jste to prosím někdo řešil? poradíte? díky. |
||
wedder Profil |
#2 · Zasláno: 23. 10. 2007, 11:08:46
ještě mi k tomu poslali následující:
jde o to, ze pomoci novych radku ve vasem formulari muze nekdo zmenit hlavicku emailu a odesilat emaily pres nas server komukoli od kohokoli. |
||
djlj Profil |
#3 · Zasláno: 23. 10. 2007, 11:10:52 · Upravil/a: djlj
Jojo, takový u nás taky jeden hostoval.
Prostě je tvůj formulář moc „benevolentní“. Regulárními výrazy kontroluj, zda jsou odeslané údaje správné. Kdybys sem poslal kónkrétní úsek kódu, jistě by ti někdo poradil konkrétně. |
||
wedder Profil |
#4 · Zasláno: 23. 10. 2007, 11:35:12
Tady je kód formuláře, kde se vyplňují údaje:
echo '<form action="index.php" method="GET" name="Rezervace_odeslano" ONSUBMIT= "return checkRequired(this);">'; echo '<div align="center"><input type="text" name="pocet" size="1" value="0"><font class=table2> počet dospělých osob za '.number_format($rowl["cena"], 0, ',', ' ').' Kč </font> <input type="hidden" name="cena" value="'.$rowl["cena"].'"> <input type="hidden" name="menu" value="rezervace_last">'; if ($rowl["cenadite"]<>0) echo '<input type="text" name="pocetdeti" size="1" value="0"><font class=table2> počet dětí za '.number_format($rowl["cenadite"], 0, ',', ' ').' Kč</font>'; echo '<input type="hidden" name="cenadite" value="'.$rowl["cenadite"].'</div>"> <input type="hidden" name="rzeme" value="'.$rowl["zeme"].'"> <input type="hidden" name="rlokalita" value="'.$rowl["lokalita"].'"> <input type="hidden" name="rhotel" value="'.$rowl["hotel"].'"> <input type="hidden" name="rnastup" value="'.$nastup.'"> <input type="hidden" name="rdni" value="'.$rowl["dni"].'"> <input type="hidden" name="rkonec" value="'.$konec.'"> <input type="hidden" name="rodlet" value="'.$rowl["odlet"].'"> <input type="hidden" name="rstrava" value="'.$rowl["strava"].'"> <input type="hidden" name="rdoprava" value="'.$rowl["doprava"].'"> <hr color="gray"> <br><font class=table2>* takto označené položky nutno vyplnit</font><br><table border="0" width="750" id="table1" class="table2"> <tr> <td width="70">Titul</td> <td width="160"><input type="text" name="titul" size="10"></td> <td width="70">Příjmení*</td> <td width="160"><input type="text" name="prijmeni" size="20" required></td> <td width="70">Jméno*</td> <td width="160"><input type="text" name="jmeno" size="20" required></td> </tr> <tr> <td width="70">Ulice</td> <td width="160"><input type="text" name="ulice" size="20"></td> <td width="70">Město</td> <td width="160"><input type="text" name="mesto" size="20"></td> <td width="70">PSČ</td> <td width="160"><input type="text" name="psc" size="20"></td> </tr> <tr> <td width="70">Telefon*</td> <td width="160"><input type="text" name="telefon" size="20" required></td> <td width="70">Email*</td> <td width="160"><input type="text" name="email" size="20" required></td> <td width="70"> </td> <td width="160"> </td> </tr> <tr> <td width="70">Poznámka</td> <td width="680" colspan="5"> <p align="center"><textarea rows="5" name="poznamka" cols="50"></textarea></td> </tr> </table>'; echo '<center> <input type="submit" name="odeslano" value="Odeslat" class="button" style="color: white; background: gray; font-weight: bold;"></center><hr color="gray">'; |
||
wedder Profil |
#5 · Zasláno: 23. 10. 2007, 11:39:33
a tady je odesílání:
<? $i=0; $subject = "Rezervace "; $headers .= "From: $email "; $headers .= "Content-Type: text/html; charset=windows-1250 "; // Mime typ $message .= "Hotel: $rzeme -> $rlokalita -> $rhotel<br>"; $message .= "<br>$rdni dní, odlet: $rodlet, doprava: $rdoprava<br>"; $message .= "<br>Termín: $rnastup - $rkonec<br>"; $pocet = $_GET['pocet']; $message .= "<br>Jméno: $titul, "; $message .= "$jmeno "; $message .= "$prijmeni<br>"; $message .= "Adresa: $ulice, "; $message .= "$psc "; $message .= "$mesto<br>"; $message .= "Telefon: $telefon, "; $message .= "e-mail: <a href='mailto:$email'>$email</a><br>"; $message .= "<br>$poznamka<br>"; if (mail("wedder@seznam.cz",$subject,$message,$headers)) { echo "<p align="center"><Font size="2" color="red"><br><b>Vaše zpráva byla úspěšně odeslána"</b></Font></p>"; } else { echo "<p><Font size="2" color="gray"><br><b>Chyba v odesílání</Font></p>"; } exit(); ?> |
||
Taps Profil |
#6 · Zasláno: 23. 10. 2007, 11:44:19
wedder
Zkus tam dát podmínku, která ti bude kontrolovat vyplnění formulářových polí |
||
djlj Profil |
#7 · Zasláno: 23. 10. 2007, 11:55:24
Regulárním výrazem kontroluj email. Ta část „From: $email“ si přímo říká o to, aby přes to někdo rozeslal stovky mailů.
|
||
Časová prodleva: 16 let
|
0