MYSQL data - retrieven + update

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Pagina: « vorige 1 2 3

Jerry

jerry

23/10/2007 14:52:00
Quote Anchor link
ow sheize
die was gewoon
$sql = "SELECT titel, bericht FROM posts WHERE postid = '$postid'";
 
PHP hulp

PHP hulp

12/01/2025 06:37:50
 
Joren de Wit

Joren de Wit

23/10/2007 14:55:00
Quote Anchor link
Jep, en eigenlijk is die variabele $postid dus overbodig aangezien je in de query net zo goed $_GET['id'] kunt gebruiken.

Nu alleen nog even een controle inbouwen die checkt of $_GET['id'] wel numeriek is. Dit om SQL injectie te voorkomen.
 
Jerry

jerry

23/10/2007 14:56:00
Quote Anchor link
Alleen nu update hij nog niet
ligt dat aan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
Gewijzigd op 01/01/1970 01:00:00 door jerry
 
- SanThe -

- SanThe -

23/10/2007 14:58:00
Quote Anchor link
SET kolomnaam = 'waarde', anderekolom = 'anderewaarde' .....
 
Gerben Jacobs

Gerben Jacobs

23/10/2007 14:59:00
Quote Anchor link
Je UPDATE-query klopt gewoon niet. Je moet de kolmnamen wel gebruiken.
 
Frank -

Frank -

23/10/2007 15:00:00
Quote Anchor link
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.
 
Jerry

jerry

23/10/2007 15:01:00
Quote Anchor link
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.


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
 
Joren de Wit

Joren de Wit

23/10/2007 15:04:00
Quote Anchor link
http://dev.mysql.com/doc/refman/5.0/en/update.html

Nee. Niet dus...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
UPDATE tabel
SET kolom = waarde, kolom2 = waarde2
WHERE kolom3 = waarde3
 
Frank -

Frank -

23/10/2007 15:04:00
Quote Anchor link
Quote:
die htmlspecials chars staat daar voor een andere reden, ik zal die straks uitleggen
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...
 
Jerry

jerry

23/10/2007 15:06:00
Quote Anchor link
pgFrank schreef op 23.10.2007 15:04:
Quote:
die htmlspecials chars staat daar voor een andere reden, ik zal die straks uitleggen
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...


dus in jouw ogen

$bericht = mysql_real_escape_string($_POST['bericht']);

kan ik beter deze gebruiken
 
Frank -

Frank -

23/10/2007 15:09:00
Quote Anchor link
mysql_real_escape_string() gebruik je om de data te beveiligen tegen quotes, htmlspecialchars() gebruik je om speciale karakters naar HTML entities te converteren. Dat zijn dus 2 totaal verschillende zaken die niets met elkaar te maken hebben. Het ene kan dus onmogelijk beter zijn dan het andere.

Een kop koffie is tenslotte ook niet beter of slechter dan een pannenkoek.
 
Joren de Wit

Joren de Wit

23/10/2007 15:10:00
Quote Anchor link
Juist, zoals ik nu al meerdere malen heb aangegeven.

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
 
Jerry

jerry

23/10/2007 15:16:00
Quote Anchor link
ik snap wat ze beide doen
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="http://www.nu.nl">blaat</a>


op de index pagina krijg ik een goede link naar de pagina nu.nl



wanneer ik mysqlrealescape gebruik
en het volgende invul
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="http://www.nu.nl">blaat</a>


na het verzenden veranderd de url naar dit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
  <a href=\"http://www.nu.nl\">nu.nl</a>


als gevolg:
me url link wordt : file://%22http://www.nu.nl///%22
foutmelding dus....
Gewijzigd op 01/01/1970 01:00:00 door jerry
 
Joren de Wit

Joren de Wit

23/10/2007 15:24:00
Quote Anchor link
Wellicht dat magic_quotes_gpc aanstaat?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
 
Jerry

jerry

23/10/2007 15:40:00
Quote Anchor link
Blanche schreef op 23.10.2007 15:24:
Wellicht dat magic_quotes_gpc aanstaat?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3


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
 
Joren de Wit

Joren de Wit

23/10/2007 15:45:00
Quote Anchor link
magic_quotes_gpc zorgt ervoor dat speciale tekens in door de gebruiker verstuurde waarden automatisch geescaped worden, hetzelfde wat je met mysql_real_escape_string() probeert te bereiken.

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$var
;
if(!get_magic_quotes_gpc())
{

    $var = mysql_real_escape_string($var);
}

?>

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
php_flag magic_quotes_gpc off
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 

Pagina: « vorige 1 2 3



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.