Autor Zpráva
wedder
Profil
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
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
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
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č &nbsp;&nbsp;</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">&nbsp;</td>
<td width="160">&nbsp;</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
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
wedder
Zkus tam dát podmínku, která ti bude kontrolovat vyplnění formulářových polí
djlj
Profil
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ů.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: