Beste SD-leden,
Nog altijd ben ik bezig met me eigen nieuws systeem. Ik zit echter met een probleem. Als ik de tekens " of ' gebruik en die lees ik er even later uit de database dan staat het zo:
http://www.ajaxcafe.nl/test/index.php?p=nieuws&lezen=22
Zoals je op de pagina ziet, wordt het gelezen als: /" of /' of hoe het ook staat (weet het niet uit me hoofd). Zo staat het echter ook in de database, dus ik denk dat het er aan ligt bij het posten van het nieuws bericht.
Tijdens het posten doe ik het zo:
$bericht = mysql_real_escape_string($_POST["area1"]);
Maar misschien moet het anders... Iemand een oplossing?
Code:<?php session_start(); include ( "functions.php" ); if (!Beveiliging()) { echo "<span class=\"blauwkop\">» Niet bevoegd</span><br /> <br /> Voor deze pagina dient u ingelogd te zijn! Klik <a href=\"index.php?p=admin/login\">hier</a> om in te loggen!"; } else { include ("admin_menu.php"); $datum = date('Y-m-d'); if(!$_POST["submit"]) { echo "<span class=\"zwartdik\">Nieuws toevoegen</span> <form action=\"\" method=\"post\" class=\"formulier\"> <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\"> <tr> <td width=\"20%\"><span class=\"zwartdik\">Auteur:</span></td> <td width=\"80%\"> <select name=\"auteur\" optionvalue=\"\"> <option value=\"\" selected=\"selected\"></option> <option value=\"J. Burgers\">Jeroen Burgers</option> <option value=\"J. van den Berg\">Job van den Berg</option> </select></td> </tr> <tr> <td width=\"20%\"><span class=\"zwartdik\">Datum:</span></td> <td width=\"80%\"><input name=\"datum\" type=\"text\" size=\"55\" value=\"$datum\"></td> </tr> <tr> <td width=\"20%\"><span class=\"zwartdik\">Titel:</span></td> <td width=\"80%\"><input name=\"titel\" type=\"text\" size=\"55\"></td> </tr> <tr> <td width=\"20%\" valign=\"top\"><span class=\"zwartdik\">Bericht:</span></td> <td width=\"80%\">"; ?> <script language="JavaScript" type="text/javascript">area = new HyperTextArea('area1', "", 450, 200,'');</script> <?php echo "</td></tr> <tr> <td width=\"20%\"><span class=\"zwartdik\">Hoofdbericht:</span></td> <td width=\"80%\"><input type=\"checkbox\" name=\"hoofdbericht\" value=\"1\"></td> </tr> <tr> <td width=\"20%\"> </td> <td width=\"80%\"><input type=\"submit\" class=\"submit\" name=\"submit\" value=\"Toevoegen\" /> <input type=\"reset\" class=\"submit\" value=\"Opnieuw\" /></td> </tr> </table> </form>"; } if ($_POST["submit"]) { $datum = mysql_real_escape_string($_POST["datum"]); $titel = mysql_real_escape_string($_POST["titel"]); $bericht = mysql_real_escape_string($_POST["area1"]); // $bericht = addslashes($_POST["area1"]); $auteur = mysql_real_escape_string($_POST["auteur"]); $hoofdbericht = mysql_real_escape_string($_POST["hoofdbericht"]); if($auteur == "" or $datum == "" or $titel == "" or $bericht == "") { $message = "U heeft niet alle velden correct ingevuld! Controleer of u de auteur, de datum, de titel en het bericht correct heeft ingevuld!"; print "<font color=red>".$message."</font> <a href=\"#\" onClick=\"history.back()\">Ga terug!</a>"; } else { $query = "INSERT INTO nieuws (datum, titel, bericht, auteur, hoofdbericht) VALUES ('$datum','$titel','$bericht', '$auteur', '$hoofdbericht')"; $result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); echo "<span class=\"zwartdik\">Het nieuws bericht is succesvol toegevoegd!</span><br /> <br /> » <a href=\"index.php?p=admin/nieuws_add\">Nog een nieuwsbericht toevoegen!</a><br /> » <a href=\"index.php?p=admin/nieuws\">Ga naar het overzicht!</a>"; } } } ?>
- mysql_real_escape_string probleem
-
09-03-2009, 14:47 #1
- Berichten
- 102
- Lid sinds
- 16 Jaar
mysql_real_escape_string probleem
Laatst aangepast door Jeroen Burgers : 09-03-2009 om 15:03
-
In de schijnwerper
-
09-03-2009, 15:03 #2
- Berichten
- 190
- Lid sinds
- 16 Jaar
$output = stripslashes($output);
-
09-03-2009, 15:07 #3
- Berichten
- 102
- Lid sinds
- 16 Jaar
Origineel gepost door MaartenD
$output = stripslashes($output);
-
09-03-2009, 15:10 #4
- Berichten
- 1.344
- Lid sinds
- 18 Jaar
Invoer database:
$bericht = mysql_real_escape_string($_POST['area1']);
$bericht = stripcslashes(htmlentities($bericht));
Uitlezen database:
$bericht = html_entity_decode($bericht);
-
09-03-2009, 15:19 #5
- Berichten
- 102
- Lid sinds
- 16 Jaar
Origineel gepost door Ferdi Reichart
Invoer database:
$bericht = mysql_real_escape_string($_POST['area1']);
$bericht = stripcslashes(htmlentities($bericht));
Uitlezen database:
$bericht = html_entity_decode($bericht);
http://www.ajaxcafe.nl/test/index.php?p=nieuws&lezen=26
-
09-03-2009, 15:26 #6
- Berichten
- 263
- Lid sinds
- 18 Jaar
kun je het stukje code plaatsen die je gebruikt om nieuwsberichten weer te geven?
-
09-03-2009, 15:30 #7
- Berichten
- 102
- Lid sinds
- 16 Jaar
Origineel gepost door Alexander Mes
kun je het stukje code plaatsen die je gebruikt om nieuwsberichten weer te geven?
Doormiddel van het stukje code dat Ferdi had geschreven ben ik tot de volgende resultaten gekomen.
Als ik hem uit de database lees, dan ziet dat er zo uit:
http://www.ajaxcafe.nl/test/index.php?p=nieuws&lezen=26 (opzich ziet dat er goed uit, want zo had ik hem gepost).
Het stukje hoe ik hem er uit lees is zo:
Code:if (isset($lezen)) { $result = mysql_fetch_array(mysql_query("select *,DATE_FORMAT(datum,'%d-%m') AS 'datum2' from nieuws where id=$lezen")); echo "<strong>$result[titel]</strong><br />"; echo "Gepublicieerd op: $result[datum2] - Geschreven door: $result[auteur]<br /><br />"; echo $result[bericht] = html_entity_decode($result[bericht]); echo "<a href=\"index.php?p=nieuws\">Ga terug naar het overzicht!</a>"; }
<P>"Dit is mijn zoveelste test op die (woord wat hier niet hoort) dingen natuurlijk!"</P>
<P><STRONG>TEST</STRONG></P>
En dat is natuurlijk niet erg zinvol... :O
-
09-03-2009, 15:47 #8
- Berichten
- 263
- Lid sinds
- 18 Jaar
Hoe het in de database zit maakt toch niet uit? Zolang het maar goed in je online editor (CMS) eruit ziet en op je website.
-
09-03-2009, 15:47 #9
- Berichten
- 1.344
- Lid sinds
- 18 Jaar
Zo is het beter en netter.
PHP Code:if (isset($lezen))
{
$sql = "SELECT *, DATE_FORMAT(datum,'%d-%m') AS datum2 FROM nieuws WHERE id = $lezen";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo 'Geen Nieuws gevonden';
}
else
{
$row = mysql_fetch_array($res);
$bericht = html_entity_decode($row['bericht']);
echo '<strong>'.$row['titel'].'</strong><br />';
echo 'Gepublicieerd op: '.$row['datum2'].' - Geschreven door: '.$row['auteur'].'<br /><br />';
echo $bericht.'<br />';
echo '<a href="index.php?p=nieuws">Ga terug naar het overzicht!</a>';
}
}
-
10-03-2009, 11:37 #10
- Berichten
- 102
- Lid sinds
- 16 Jaar
Ik heb de code van Ferdi gebruikt. Zo staat het inderdaad netter. ;)
Tot nu toe heb ik de volgende dingen ontdekt:
- De titel van het nieuwsbericht wordt goed toegevoegd
- Het nieuwsbericht wordt toegevoegd aan de database met de <br /> code tussen de alinea's.
- Het wijzigingen van de titel gaat goed (wordt ook goed uitgelezen)
- Als ik mijn nieuws bericht uitlees in de textarea wordt alles achter elkaar gezet, dus ook de <br /> code is zichtbaar. Dit wil ik opgelost hebben, zodat de enters niet zichtbaar zijn (maar wel gewoon in alinea's).
De code voor het aanpassen van een nieuws bericht:
PHP Code:<?php
session_start();
include ( "functions.php" );
if (!Beveiliging())
{
echo "<span class=\"blauwkop\">» Niet bevoegd</span><br />
<br />
Voor deze pagina dient u ingelogd te zijn! Klik <a href=\"index.php?p=admin/login\">hier</a> om in te loggen!";
}
else
{
include ( "admin_menu.php" );
$edit = $_GET['edit'];
if (isset($edit))
{
$result = mysql_fetch_array(mysql_query("select * from nieuws where id=$edit"));
if(!$_POST["submit"])
{
$bericht = $result['bericht']);
echo "<span class=\"zwartdik\">Nieuws wijzigingen</span><br /><br />";
echo "<form action=\"\" method=\"post\" class=\"formulier\">";
echo "<input type=\"hidden\" name=\"id\" value=\"$result[id]\" />";
echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">";
echo "<tr>";
echo "<td width=\"20%\"><span class=\"zwartdik\">Datum:</span></td>";
echo "<td width=\"80%\"><input name=\"datum\" type=\"text\" size=\"55\" value=\"$result[datum]\"></td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"20%\"><span class=\"zwartdik\">Titel:</span></td>";
echo "<td width=\"80%\"><input name=\"titel\" type=\"text\" size=\"55\" value=\"$result[titel]\"></td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"20%\" valign=\"top\"><span class=\"zwartdik\">Bericht:</span></td>";
echo "<td width=\"80%\"><textarea name=\"bericht\" cols=\"55\" rows=\"12\">$bericht</textarea></td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"20%\"> </td>";
echo "<td width=\"80%\"><input type=\"submit\" name=\"submit\" class=\"submit\" value=\"Wijzig\" /> ";
echo "</tr>";
echo "</table>";
echo "</form>";
}
if ($_POST["submit"]) {
$id = $_POST['id'];
$datum = mysql_real_escape_string($_POST["datum"]);
$titel = mysql_real_escape_string($_POST["titel"]);
$titel = stripcslashes(htmlentities($titel));
$bericht = mysql_real_escape_string($_POST['bericht']);
$bericht = stripcslashes(htmlentities($bericht));
$bericht = $_POST["bericht"];
$order = array("\r\n", "\n", "\r");
$bericht = str_replace($order, '<br />', $bericht);
$sql = "UPDATE nieuws SET datum='$datum', titel='$titel', bericht='$bericht' WHERE id=$id";
$result = mysql_query($sql);
echo "<span class=\"zwartdik\">Het nieuws bericht is succesvol gewijzigd!</span><br />
<br />
» <a href=\"index.php?p=admin/nieuws_edit\">Nog een nieuwsbericht wijzigingen!</a><br />
» <a href=\"index.php?p=admin/nieuws\">Ga naar het overzicht!</a>";
}
}
else
{
echo "<span class=\"zwartdik\">Let op!</span><br />
Dit is het nieuwsoverzicht van BJ-Media.nl. Je bent momenteel op de pagina waar je nieuwsberichten kan wijzigingen. Houd er rekening mee dat deze actie
niet ongedaan gemaakt kan worden. Dan zou je het bericht opnieuw moeten aanpassen.<br />
<br />
<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">
<tr>
<td width=\"20%\"><span class=\"zwartdik\">Datum</span></td>
<td width=\"65%\"><span class=\"zwartdik\">Titel</span></td>
<td width=\"15%\"><span class=\"zwartdik\">Edit</span></td>
</tr>";
$result2 = mysql_query("select * from nieuws order by id desc ");
while($r=mysql_fetch_array($result2))
{
echo "<tr>";
echo "<td>";echo $r["datum"];"</td>";
echo "<td>";echo $r["titel"];"</td>";
echo "<td><a href=\"index.php?p=admin/nieuws_edit&edit=".$r['id']."\">Edit</a></td>";
echo "</tr>";
}
echo "</table>";
}
}
?>
PHP Code:<?php
session_start();
include ( "functions.php" );
if (!Beveiliging())
{
echo "<span class=\"blauwkop\">» Niet bevoegd</span><br />
<br />
Voor deze pagina dient u ingelogd te zijn! Klik <a href=\"index.php?p=admin/login\">hier</a> om in te loggen!";
}
else
{
include ("admin_menu.php");
$datum = date('Y-m-d');
if(!$_POST["submit"])
{
echo "<span class=\"zwartdik\">Nieuws toevoegen</span>
<form action=\"\" method=\"post\" class=\"formulier\">
<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">
<tr>
<td width=\"20%\"><span class=\"zwartdik\">Auteur:</span></td>
<td width=\"80%\">
<select name=\"auteur\" optionvalue=\"\">
<option value=\"\" selected=\"selected\"></option>
<option value=\"J. Burgers\">Jeroen Burgers</option>
<option value=\"J. van den Berg\">Job van den Berg</option>
</select></td>
</tr>
<tr>
<td width=\"20%\"><span class=\"zwartdik\">Datum:</span></td>
<td width=\"80%\"><input name=\"datum\" type=\"text\" size=\"55\" value=\"$datum\"></td>
</tr>
<tr>
<td width=\"20%\"><span class=\"zwartdik\">Titel:</span></td>
<td width=\"80%\"><input name=\"titel\" type=\"text\" size=\"55\"></td>
</tr>
<tr>
<td width=\"20%\" valign=\"top\"><span class=\"zwartdik\">Bericht:</span></td>
<td width=\"80%\"><textarea name=\"bericht\" cols=\"55\" rows=\"12\"></textarea></td>
</tr>
<tr>
<td width=\"20%\"><span class=\"zwartdik\">Hoofdbericht:</span></td>
<td width=\"80%\"><input type=\"checkbox\" name=\"hoofdbericht\" value=\"1\"></td>
</tr>
<tr>
<td width=\"20%\"> </td>
<td width=\"80%\"><input type=\"submit\" class=\"submit\" name=\"submit\" value=\"Toevoegen\" />
<input type=\"reset\" class=\"submit\" value=\"Opnieuw\" /></td>
</tr>
</table>
</form>";
}
if ($_POST["submit"]) {
$datum = mysql_real_escape_string($_POST["datum"]);
$titel = mysql_real_escape_string($_POST["titel"]);
$titel = stripcslashes(htmlentities($titel));
$bericht = mysql_real_escape_string($_POST['bericht']);
$bericht = stripcslashes(htmlentities($bericht));
$order = array("\r\n", "\n", "\r");
$bericht = str_replace($order, '<br />', $bericht);
$auteur = mysql_real_escape_string($_POST["auteur"]);
$hoofdbericht = mysql_real_escape_string($_POST["hoofdbericht"]);
if($auteur == "" or $datum == "" or $titel == "" or $bericht == "")
{
$message = "U heeft niet alle velden correct ingevuld! Controleer of u de auteur, de datum, de titel en het bericht correct heeft ingevuld!";
print "<font color=red>".$message."</font> <a href=\"#\" onclick=\"history.back()\">Ga terug!</a>";
}
else
{
$query = "INSERT INTO nieuws (datum, titel, bericht, auteur, hoofdbericht) VALUES ('$datum','$titel','$bericht', '$auteur', '$hoofdbericht')";
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error());
echo "<span class=\"zwartdik\">Het nieuws bericht is succesvol toegevoegd!</span><br />
<br />
» <a href=\"index.php?p=admin/nieuws_add\">Nog een nieuwsbericht toevoegen!</a><br />
» <a href=\"index.php?p=admin/nieuws\">Ga naar het overzicht!</a>";
}
}
}
?>
Aanvullend bericht:
het Probleem Is Opgelost!Laatst aangepast door Jeroen Burgers : 10-03-2009 om 12:19 Reden: Automatisch samengevoegd.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic