MYSQL data - retrieven + update
die was gewoon
$sql = "SELECT titel, bericht FROM posts WHERE postid = '$postid'";
Nu alleen nog even een controle inbouwen die checkt of $_GET['id'] wel numeriek is. Dit om SQL injectie te voorkomen.
ligt dat aan
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$titel = mysql_real_escape_string($_POST['titel']);
$bericht = htmlspecialchars($_POST["bericht"]);
$sql = mysql_query("UPDATE posts SET '$titel', '$bericht' WHERE postid='$postid
$bericht = htmlspecialchars($_POST["bericht"]);
$sql = mysql_query("UPDATE posts SET '$titel', '$bericht' WHERE postid='$postid
Gewijzigd op 01/01/1970 01:00:00 door jerry
SET kolomnaam = 'waarde', anderekolom = 'anderewaarde' .....
Je UPDATE-query klopt gewoon niet. Je moet de kolmnamen wel gebruiken.
Ontopic: Waar heb jij SQL geleerd? Daar klopt weinig van, zie de foutmelding die je krijgt wanneer je deze ook opvraagd. mysql_error() doet wonderen.
Tip: Leer eens de basis van SQL, dat is onmisbaar.
pgFrank schreef op 23.10.2007 15:00:
Offtopic: wat doet htmlspecialchars() in dit stukje script? Deze functie gebruik je bij weergave in een browser, niet bij opslag van data in een database.
Ontopic: Waar heb jij SQL geleerd? Daar klopt weinig van, zie de foutmelding die je krijgt wanneer je deze ook opvraagd. mysql_error() doet wonderen.
Tip: Leer eens de basis van SQL, dat is onmisbaar.
Ontopic: Waar heb jij SQL geleerd? Daar klopt weinig van, zie de foutmelding die je krijgt wanneer je deze ook opvraagd. mysql_error() doet wonderen.
Tip: Leer eens de basis van SQL, dat is onmisbaar.
die htmlspecials chars staat daar voor een andere reden, ik zal die straks uitleggen
$sql = mysql_query("UPDATE posts SET titel= '$titel', bericht = '$bericht' WHERE postid='$postid'");
doet het:)
Gewijzigd op 01/01/1970 01:00:00 door jerry
Quote:
Dat gaat nog een hele klus worden, het is namelijk gewoon fout. Data in de database heeft namelijk niets met html te maken, de functie htmlspecialchars() kun je dus niet nodig hebben. Jouw database is tenslotte geen browser...die htmlspecials chars staat daar voor een andere reden, ik zal die straks uitleggen
pgFrank schreef op 23.10.2007 15:04:
Quote:
Dat gaat nog een hele klus worden, het is namelijk gewoon fout. Data in de database heeft namelijk niets met html te maken, de functie htmlspecialchars() kun je dus niet nodig hebben. Jouw database is tenslotte geen browser...die htmlspecials chars staat daar voor een andere reden, ik zal die straks uitleggen
dus in jouw ogen
$bericht = mysql_real_escape_string($_POST['bericht']);
kan ik beter deze gebruiken
Een kop koffie is tenslotte ook niet beter of slechter dan een pannenkoek.
Tip: zoek zelf eens op php.net de werking van deze functies op. Het lijkt mij in ieder geval dat je geen idee hebt wat deze functies nu precies doen...
edit: Frank geeft je de uitleg al
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
maar ik had het om een andere reden gedaan
wanneer $bericht = htmlspecialchars($_POST["bericht"]);
gebruik
en op index laat weergeven als
echo 'bericht: ' . htmlspecialchars_decode($uitvoer['bericht']) . '<br/>';
ik kan dan in nieuw_post .php
gewoon dit doen als berichtje
op de index pagina krijg ik een goede link naar de pagina nu.nl
wanneer ik mysqlrealescape gebruik
en het volgende invul
na het verzenden veranderd de url naar dit
als gevolg:
me url link wordt : file://%22http://www.nu.nl///%22
foutmelding dus....
Gewijzigd op 01/01/1970 01:00:00 door jerry
Blanche schreef op 23.10.2007 15:24:
Wellicht dat magic_quotes_gpc aanstaat?
hmm die staat op 1
had het bij me php.ini veranderd naar off
ik moet zeker hiervoor een scriptje schrijven
zodat ik het localhost en op server uit moet zetten
maar als die uitstaan dan word de url dus wel goed doorgegeven
Echter omdat het al door magic_quotes_gpc gebeurt is, is het gebruik van mysql_real_escape_string dubbelop. Om er zeker van te zijn dat je altijd goed zit, zou je het volgende scriptje kunnen gebruiken:
Waarbij $var de te beveiligen variabele voorstelt.
Persoonlijk zou ik magic_quotes_gpc lekker uitzetten en zelf voor je beveiliging zorgen. Dit kan door de volgende regel in een .htaccess bestandje in de root te plaatsen:
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit