| Autor | Zpráva | ||
|---|---|---|---|
| Rudy Profil |
#1 · Zasláno: 2. 8. 2012, 22:51:54
Dobrý den,
Vytvořil jsem si návštěvní knihu v php. Jediný problém je, že se do textového pole vloží smajlící v podobě textu např.<IMG SRC=\"smileys/9.gif\" alt=\"\">. Je to tím, že mám na 135 řádku zakodovány znaky html ($vzkaz = HTMLSpecialCHars($vzkaz);). Když, tento řádek smažu, tak se smajlíci zobrazí v grafické podobě, ale bylo mi řečeno, že se toto nemá dělat zdůvodu bezpečnosti, jelikož by mi někdo mohl lehce ovládnout web. Kód <html><body>
<?php
$action = $_POST['action'];
$jmeno = $_POST['jmeno'];
$mail = $_POST['mail'];
$vzkaz = $_POST['vzkaz'];
$kontrola = $_POST['kontrola'];
function antispam($email, $jmeno){
$return = "<script type=\"text/javascript\"><!--\ndocument.write('<a href=\"' + 'mailto:' + '";
for($i=0;$i<strlen($email);$i++){
$code .= $email{$i}=='@' ? "' + '".ord("@")."' + '"
: "".ord($email{$i}).";";
}
$return .= $code."' + '\">' + '".$jmeno."' + '<\/a>');\n--></script>";
RETURN $return;
}
?>
<form method="post"
action="kniha.php" name="f">
<table><tr><td>jméno:</td>
<input type="hidden" value="uloz" name="action" />
<td><input type="text" name="jmeno" value="<?php echo $jmeno ?>" size="50" /</td>
</tr><tr><td>e-mail:</td>
<td><input type="text" name="mail" value="<?php echo $mail ?>" size="50" /></td>
</tr><tr></tr>
<tr><td valign="top">Vzkaz</td>
<td><textarea name="vzkaz" cols="40" value="<?php echo $vzkaz ?>" rows="5"><?php echo $vzkaz ?>
</textarea></td></tr>
<tr><td></td><td>Ochrana proti spamu: 4 plus 5 =
<input type="text" name="kontrola" value="<?php echo $kontrola ?>" size="8" />
</td>
<tr><td></td><td>
<input type="submit" value="odeslat"></td>
</tr>
</table>
</form>
<table>
</td></tr>
<tr><td> <font size="2"><font color="008000">
<script type="text/javascript">
function Smile(what)
{
document.forms.f.vzkaz.focus();
document.forms.f.vzkaz.value=document.forms.f.vzkaz.value+what;
}
</script>
<b>Smajlíci:
<img onclick="Smile('**01 ')" src="smileys/1.gif">
<img onclick="Smile('**01 ')" src="smileys/2.gif">
<img onclick="Smile('**01 ')" src="smileys/3.gif">
<img onclick="Smile('**01 ')" src="smileys/4.gif">
<img onclick="Smile('**01 ')" src="smileys/5.gif">
<img onclick="Smile('**01 ')" src="smileys/6.gif">
<img onclick="Smile('**01 ')" src="smileys/7.gif">
<img onclick="Smile('**01 ')" src="smileys/8.gif">
<img onclick="Smile('**01 ')" src="smileys/9.gif">
<img onclick="Smile('**01 ')" src="smileys/10.gif">
<img onclick="Smile('**01 ')" src="smileys/11.gif">
<img onclick="Smile('**01 ')" src="smileys/12.gif">
<img onclick="Smile('**01 ')" src="smileys/13.gif">
<img onclick="Smile('**01 ')" src="smileys/14.gif">
<img onclick="Smile('**01 ')" src="smileys/15.gif">
<img onclick="Smile('**01 ')" src="smileys/16.gif">
</center>
</font></b>
<?php
//zde se ptame, zda byla odeslana pomoci formulare promenna $text
if(isset($vzkaz)):
/* a zde jiz nahrazujeme urcitz smajlik nasim obrazkem umistenym ve stejne
slozce jako nas skript*/
$vzkaz = str_replace("**01", "<IMG SRC=\"smileys/1.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**02", "<IMG SRC=\"smileys/2.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**03", "<IMG SRC=\"smileys/3.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**04", "<IMG SRC=\"smileys/4.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**05", "<IMG SRC=\"smileys/5.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**06", "<IMG SRC=\"smileys/6.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**07", "<IMG SRC=\"smileys/7.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**08", "<IMG SRC=\"smileys/8.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**09", "<IMG SRC=\"smileys/9.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**10", "<IMG SRC=\"smileys/10.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**11", "<IMG SRC=\"smileys/11.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**12", "<IMG SRC=\"smileys/12.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**13", "<IMG SRC=\"smileys/13.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**14", "<IMG SRC=\"smileys/14.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**15", "<IMG SRC=\"smileys/15.gif\" alt=\"\">", $vzkaz);
$vzkaz = str_replace("**16", "<IMG SRC=\"smileys/16.gif\" alt=\"\">", $vzkaz);
endif;
?>
<?php
if ($action=='uloz'):
$soubor = "kniha.body.php";
@$ext = fopen($soubor, "r");
@$obsah = fread($ext, filesize($soubor));
@FClose($ext);
if($kontrola != "9"):
echo "<h6>_patná odpov__</h6>";
elseif(($vzkaz=="") or ($jmeno=="")):
echo "<h6>Nejsou vypln_ny po_adované údaje</h6>";
else:
$ext = fopen("kniha.body.php", "w");
$mail = HTMLSpecialCHars($mail);
if($mail == "")
$mail = "";
else $mail = antispam($mail,$mail);
$jmeno = HTMLSpecialCHars($jmeno);
$vzkaz = HTMLSpecialCHars($vzkaz);
$tab = "<tr><td width=\"300\" >".$jmeno."</td>
<td align=\"right\">".Date(" d/m/Y H:i:s")."</td>
</tr><tr><td colspan=\"2\">".$vzkaz."</td>
</tr><tr><td width=\"150\">".$mail."</td>
</tr><tr><td colspan=\"2\"><hr size=\"1\"></td>
</tr>";
fputs($ext, "$tab");
fputs ($ext, "$obsah");
FClose($ext);
@$ext = fopen("kniha.body.php", "r");
@fpassThru($ext);
endif;
else: @$ext = fopen("kniha.body.php", "r");
@fpassThru($ext); endif;
?>
</table>
</body>
</html> |
||
| ShiraNai7 Profil |
#2 · Zasláno: 3. 8. 2012, 12:38:15
Tak smajlíky nahrazuj až po tom, co voláš htmlspecialchars().
|
||
| Rudy Profil |
#3 · Zasláno: 3. 8. 2012, 15:34:51
ShiraNai7:
To jsem zkoušel, ale pořád nic. |
||
|
Časová prodleva: 14 let
|
|||
0