Ik gebruik altijd addslashes bij het invoeren, stripslashes bij het uitlezen. Voor tekst dan, uiteraard. Of het altijd nodig is weet ik niet, maar het maakt de communicatie tussen PHP en MySQL makkelijker doordat de string ge-escaped zijn.quote:Op vrijdag 27 mei 2005 18:59 schreef Chandler het volgende:
stomme vraag.
moet ik addslashes / stripslashes gebruiken voor
INSERT INTO DB ($_POST)
LEES UIT DB (mysql_fetch_object)
of kent iemand hier een goede tutor voor?
quote:Op vrijdag 27 mei 2005 19:31 schreef JeRa het volgende:
Persoonlijk vind ik het beter leesbaar als dingen als .+? tussen haakjes worden gezet, daarom heb ik dat bij mij ook gedaan. Maar die punt hoort daar niet, dan zou <ablaathref> ook gematched worden namelijk (punt = elk willekeurig karakter; \s = whitespace).
1 | <a border="0" href="http://example.com">link</a> |
quote:Dat (\"|') klopt gewoon. Maar waarom je ophoudt met '.+' is mij een raadsel, je zult toch moeten aangeven dat je alleen die tag en niet al het opvolgende wilt matchen.
1 | <a border="0" href="http://example.com" id="pipo" color=red>link</a> |
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $test = array( '<a href="http://www.example.comview.php?x=11111" id="ID"><img src="http://image.examplke.com/example.jpg" border="0"></a>Dit is maar een voorbeeldje.', '<a border="0" href="http://blaat.com">link</a>', '<a border="0" href="http://example.com" id="pipo" color=red>link</a>', '<a href="test">blaat</a>' ); foreach ($test as $item) { echo htmlentities(preg_replace('/<a(\s+?)(.+?)(\s+?)href=("|\')(.+?)("|\')(.*?)>/i', '<a href="$3" target="_blank">', $item)) . '<br />'; } ?> |
Niet helemaal, omdat de (\s+?)(.+?)(\s+?) constructie niet matched op bijvoorbeeld:quote:Op vrijdag 27 mei 2005 20:07 schreef JeRa het volgende:
Regexen zijn prima geschikt. Het vereist gewoon wat werk
1
2
3<?php
htmlentities(preg_replace('/<a(\s+?)(.+?)(\s+?)href=("|\')(.+?)("|\')(.*?)>/i', '<a href="$3" target="_blank">', $item)) . '<br />';
?>
Werkt deze beter?
1 | <a border="0" id="pipo" href="http://example.com" color=red> |
1 2 3 | <?php $Out_Content = preg_replace('/<a(.+?)href=("|\')(.+?)("|\')(.*?)>/i', '<a href="$3" target="_blank">', $Out_Content); ?> |
Als je mijn script letterlijk overneemt en jouw testcase in de array zet, parset ie 'm gewoon hoor. Bovendien zal jouw nieuwe regex ook constructies als '<abhref...' matchen, en die van mij nietquote:Op vrijdag 27 mei 2005 23:14 schreef TimberWolf het volgende:
[..]
Niet helemaal, omdat de (\s+?)(.+?)(\s+?) constructie niet matched op bijvoorbeeld:
[ code verwijderd ]
1 2 3 | $brd = imagecolorallocate($im, 0,0,0); $clr = imagecolorallocate($im, 255,0,0); imagefilltoborder($im, 200, 10, $brd, $clr); |
1 2 3 4 5 6 7 | <?php $sql_query = "UPDATE users SET (naam, wachtwoord, profiel1, profiel2, profiel3, profiel4, afbeelding1, afbeelding2, afbeelding3) "; $sql_query .="VALUES ('".$naam."', '".$wachtwoord."', '".$profiel1."', '".$profiel2."', '".$profiel3."', '".$profiel4."', '".$afbeelding1."', '".$afbeelding2."', '".$afbeelding3."');"; $result = mysql_query($sql_query) or die(mysql_error()); $text="Gegevens zijn gewijzigd! <A HREF=\"login.php\">Inloggen.</A>"; die($text); ?> |
1 | UPDATE users SET naam='".$naam."', wachtwoord='".$wachtwoord."' |
Danku, ik ga het proberenquote:Op zondag 29 mei 2005 20:37 schreef DionysuZ het volgende:
[ code verwijderd ]
etc... dus niet (naam, wachtwoord,...) VALUES maar gewoon toekenningen met een komma ertussen
1 | UPDATE users SET naam='{$naam}', wachtwoord='{$wachtwoord}' WHERE id=1 |
quote:Op zondag 29 mei 2005 20:38 schreef DionysuZ het volgende:
ik neem btw aan dat je wel nog n WHERE clause eraan wilt hangen, aangezien je anders alle users aanpast?
1 2 3 | <?php $sql_query = "UPDATE users SET naam='".$naam."', wachtwoord='".$wachtwoord."' , profiel1='".$profiel1."', profiel2='".$profiel2."', profiel3='".$profiel3."', profiel4='".$profiel4."', afbeelding1='".$afbeelding1."', afbeelding2='".$afbeelding2."', afbeelding3='".$afbeelding3."' WHERE naam='" . $_SESSION["naam"]"; ?> |
Je gebruikte imagecolorallocate() om een kleur te specificeren, terwijl je eigenlijk imagecolorresolve() moet gebruiken. De eerste functie maakt een nieuwe kleur in de kleurenindex van de afbeelding, in jouw geval dus een nieuwe kleur met RGB=0,0,0 en de tweede functie zal een kleur opzoeken met RGB=0,0,0, wat dus zwart is in jouw afbeelding.quote:Op zondag 29 mei 2005 17:48 schreef Nevermind het volgende:
Die werkt wel prima. Waarom imagefilltoborder niet werkt snap ik niet.
Je hebt nog een quote op het einde van je regel staan.quote:Op zondag 29 mei 2005 20:48 schreef LeeHarveyOswald het volgende:
[..]
Maar nu krijg ik dus gewoon een foutmelding....
Van die post vat ik niet heel veelquote:Op zondag 29 mei 2005 20:50 schreef JeRa het volgende:
[..]
Je hebt nog een quote op het einde van je regel staan.
Kijk je trouwens ook nog even naar deze post van mij?
1 | naam='" . $_SESSION["naam"]"; |
1 | naam='" . $_SESSION["naam"]."'"; |
Danku! geen foutmeldingquote:Op zondag 29 mei 2005 20:57 schreef DionysuZ het volgende:
[ code verwijderd ]
moet zijn
[ code verwijderd ]
Als je na het maken van de queryquote:Op zondag 29 mei 2005 21:00 schreef LeeHarveyOswald het volgende:
[..]
Danku! geen foutmeldingmaar mn database blijft erg leeg? (alle velden muv wachtwoord en naam waren nog leeg)
1 2 3 | <?php echo $sql_query; ?> |
Dat weet je pas zodra je weet welke query er wordt uitgevoerdquote:Op zondag 29 mei 2005 21:06 schreef LeeHarveyOswald het volgende:
Dat moet dan toch werken?
Daar gaat dus idd iets "goed" mis:quote:Op zondag 29 mei 2005 21:08 schreef JeRa het volgende:
[..]
Dat weet je pas zodra je weet welke query er wordt uitgevoerd
1 | $sql_query = "UPDATE users SET naam='".$naam."', wachtwoord='".$wachtwoord."' , profiel1='".$profiel1."', profiel2='".$profiel2."', profiel3='".$profiel3."', profiel4='".$profiel4."', afbeelding1='".$afbeelding1."', afbeelding2='".$afbeelding2."', afbeelding3='".$afbeelding3."' WHERE naam='" . $_SESSION["naam"]."'"; |
edit: naam en wachtwoord kloppen, de rest blijft dus leegquote:Welkom, u bent aangemeld als testuser
Uw wachtwoord is: test
UPDATE users SET naam='testuser', wachtwoord='098f6bcd4621d373cade4e832627b4f6' , profiel1='', profiel2='', profiel3='', profiel4='', afbeelding1='', afbeelding2='', afbeelding3='' WHERE naam=''Gegevens zijn gewijzigd! Inloggen.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |