De ' veroorzaakt problemen..
Scythen - 17/05/2007 08:42 (laatste wijziging 17/05/2007 17:04)
PHP gevorderde
ik krijg nog steeds deze error:
Er is iets fout in de gebruikte syntax bij 's uop', 'jo what's up', '2007-05-17 17:03:31')' in regel 1
ALs ik bij in de titel en message dit zet: jo what's up
krijg ik die error, elke keer als ik dus een ' gebruik, kan iemand mij helpen?
11 antwoorden
Gesponsorde links
JBke - 17/05/2007 09:11 (laatste wijziging 17/05/2007 09:30)
PHP gevorderde
daar ' een teken is dat gebruikt wordt in scripting moet je er een teken aan toe voegen om ervoor te zorgen dat het niet bekeken wordt als een waarde om te parsen.
neem eens een kijkje naar volgende functies in php:
http://be2.php....lashes.php
http://be2.php....lashes.php
http://be2.php....tities.php
http://be2.php....lchars.php
http://be2.php....temeta.php
en dan heb je nog nl2br(); zoek maar verder op.
Dat is het beste hoe ik het kan uitleggen
voorbeeld:
<?php
if (!get_magic_quotes_gpc()) { // nagaan of magic quotes aan of af staat op je host.
$gebruikersnaam = addslashes($gebruikersnaam);
}
?>
en om tekens te verbieden gebruik je een controle op de invoer,
stel je steekt eerst al de ingevoerde waardes in een array of kan ook rechtstreeks met controle op $_POST. Als je alle invoer velden wil controleren op dezelfde tekens kan je het volgende gebruiken:
<?php
foreach($_POST as $veld) {
if(preg_match('~["*$<>{}()\[\]§!]~', $veld)) {
// foutmelding
} else {
// verwerk formulier
}
}
?>
<?php
foreach ( $_POST as $veld ) {
// foutmelding
} else {
// verwerk formulier
}
}
?>
de preg_match(); functie dient hiervoor of eventueel ereg(); of eregi();
opgelet: als je eerder in je script html_entities(); hebt gebruikt bij het opslaan in een array bijvoorbeeld dien je eerst html_entity_decode(); te gebruiken.
Scythen - 17/05/2007 17:05
PHP gevorderde
Iemand? Please?
marten - 17/05/2007 17:10
Beheerder
Is dat in een query?
Zo ja post de gehele query hier eens.
Scythen - 17/05/2007 17:18 (laatste wijziging 17/05/2007 17:18)
PHP gevorderde
<?
$subject1 =$_POST['subject'];
$subject = strip_tags($subject1);
$message1 = $_POST['message'];
$message = strip_tags($message1);
mysql_query("***** `game_forum` (van_username, subject, bericht, datum) VALUES ('$username','$subject', '$message', '$date')") or die(mysql_error());
echo "You created the topic!";<?
<?
$subject1 = $_POST [ 'subject' ] ;
$message1 = $_POST [ 'message' ] ;
mysql_query ( "***** `game_forum` (van_username, subject, bericht, datum) VALUES ('$username ','$subject ', '$message ', '$date ')" ) or
die ( mysql_error ( ) ) ; echo "You created the topic!" ;< ?
maarja, strip tags werkt ook niet.
marten - 17/05/2007 17:21
Beheerder
ik bedoel de uitkomst
dus:
<?php
$var = "***** `game_forum` (van_username, subject, bericht, datum) VALUES ('$username','$subject', '$message', '$date')";
echo $var;
?>
<?php
$var = "***** `game_forum` (van_username, subject, bericht, datum) VALUES ('$username ','$subject ', '$message ', '$date ')" ;
?>
en dan de uitkomst van $var hier even posten
Ultimatum - 17/05/2007 17:23
PHP expert
Kijk eens naar het gehele bericht van jbke dan en verdiep je er eens in. De functie die jij nodig hebt staat ook in die lijst
Scythen - 17/05/2007 17:24 (laatste wijziging 17/05/2007 17:26)
PHP gevorderde
Ultimatum, kijk mijn stukje script, ik heb ze allemaal gebruikt?
<? $subject1 =$_POST['subject'];
$subject = strip_tags($subject1);
$subject = trim($subject1);
$subject = stripslashes($subject1);
$message1 = $_POST['message'];
$message = strip_tags($message1);
$message = trim($message1);
$message = stripslashes($message1);
$message = htmlentities($message1);?>
<? $subject1 = $_POST [ 'subject' ] ;
$subject = trim ( $subject1 ) ;
$message1 = $_POST [ 'message' ] ;
$message = trim ( $message1 ) ;
Als ik dat doe, geeft hij die error alsnog dus..
@marten, hij weergeeft een '1', kan dat kloppen?
ikkedikke - 17/05/2007 17:28
PHP expert
nee kan niet kloppen
bovendien zoals je het in je code hebt staan wordt alleen striptags uitgevoerd.
Scythen - 17/05/2007 17:29
PHP gevorderde
Hmm, moet ik dan alles achter elkaar aan?
stripslashes(trim( etc ?
marten - 17/05/2007 17:30
Beheerder
<?php $subject1 =$_POST['subject'];
$subject = strip_tags($subject1);
$subject = trim($subject1);
$subject = addslashes($subject1);
$message1 = $_POST['message'];
$message = strip_tags($message1);
$message = trim($message1);
$message = addslashes($message1);
$message = htmlentities($message1);?>
<?php $subject1 = $_POST [ 'subject' ] ;
$subject = trim ( $subject1 ) ;
$message1 = $_POST [ 'message' ] ;
$message = trim ( $message1 ) ;
Scythen - 17/05/2007 17:31 (laatste wijziging 17/05/2007 17:33)
PHP gevorderde
Marten, heb dat toegepast, alleen krijg nu:
Er is iets fout in de gebruikte syntax bij 's up?', '2007-05-17 17:31:35')' in regel 1
Edit: Hij doet het, bedankt iedereen. Zoals ikkedikke al zei, die strip_tags(trim etc, moesten achter elkaar.
Gesponsorde links
Dit onderwerp is gesloten .