html codes uit sql uitvoeren
De startpost gaat op een andere manier dan alle reacties. Maar ik begrijp iets totaal niet. In de startpost kan ik een img scr tag plaatsen en die dan wordt uitgevoerd. Maar bij de reacties werkt dit niet.
Het ziet er daardoor als resultaat zo uit:
Ik heb werkelijk geen idee wat te doen. Ik heb met htmlchars gewerkt en dat geeft allemaal hetzelfde resultaat. Moet ik kijken naar de input of naar de uitvoer? In de sql tabel staat de html gewoon zoals ingevoerd.
Gewijzigd op 22/06/2011 20:33:55 door Ferdi Verbeek
Naar beide? Hoe gaat het de database in? Gebruik je ergens strip_tags?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if (isset($_POST['comment']) && $_POST['text'] != "")
{$query = "INSERT INTO $tab_townposts (itemid,userid,datestamp,text) VALUES
('".$_POST['itemid']."','".$_POST['userid']."',
NOW(),'".$_POST['text']."')";
mysql_query($query);
$query = "UPDATE ".$tab_town." SET datepost=NOW() WHERE id = '".$_POST['itemid']."'";
mysql_query($query);
header("location: ".$_SERVER['PHP_SELF']."?townid=".$_POST['itemid']);
}
?>
if (isset($_POST['comment']) && $_POST['text'] != "")
{$query = "INSERT INTO $tab_townposts (itemid,userid,datestamp,text) VALUES
('".$_POST['itemid']."','".$_POST['userid']."',
NOW(),'".$_POST['text']."')";
mysql_query($query);
$query = "UPDATE ".$tab_town." SET datepost=NOW() WHERE id = '".$_POST['itemid']."'";
mysql_query($query);
header("location: ".$_SERVER['PHP_SELF']."?townid=".$_POST['itemid']);
}
?>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
<script type="text/javascript">
function addText(text){
document.getElementById('foo').value += text;
}
</script>
?>
<script type="text/javascript">
function addText(text){
document.getElementById('foo').value += text;
}
</script>
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
<tr><td colspan=\"2\" class=\"placecomment-text\">
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
<textarea name=\"text\" id=\"foo\" cols=\"61\" rows=\"5\" align=\"left\"></textarea>
<input type=\"hidden\" name=\"itemid\" value=\"".$id."\">
<input type=\"hidden\" name=\"userid\" value=\"".$user['id']."\">
<input type=\"submit\" name=\"comment\" value=\"Plaats reactie\">
</form>
</td></tr>
?>
<tr><td colspan=\"2\" class=\"placecomment-text\">
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
<textarea name=\"text\" id=\"foo\" cols=\"61\" rows=\"5\" align=\"left\"></textarea>
<input type=\"hidden\" name=\"itemid\" value=\"".$id."\">
<input type=\"hidden\" name=\"userid\" value=\"".$user['id']."\">
<input type=\"submit\" name=\"comment\" value=\"Plaats reactie\">
</form>
</td></tr>
?>
Bij dit laatste stuk heb ik er htmlspecialchars tussen proberen te zetten door dit tussen de textarea tags te plaatsen en dan te doen op $_POST['text']. Maar er gebeurt dan niks.
Dit gaat over het invoeren dus. Het tonen:
Gewijzigd op 22/06/2011 20:40:53 door Ferdi Verbeek
Script is lek => sql-injection.
Ik heb dit bovenaan staan hoor:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$_POST = RealEscape($_POST);
$_GET = RealEscape($_GET);
$_SERVER = RealEscape($_SERVER);
?>
$_POST = RealEscape($_POST);
$_GET = RealEscape($_GET);
$_SERVER = RealEscape($_SERVER);
?>
Die escaped alles. Dan zou dat toch goed moeten gaan? Maar ik begrijp nog steeds niet waarom hij de html tags niet aanneemt. Als ik met <b> werk doet hij het wel, maar een url plaatsen vergeet het maar of een img.
Gewijzigd op 22/06/2011 20:55:58 door Ferdi Verbeek