login  Naam:   Wachtwoord: 
Registreer je!
 Forum

De ' veroorzaakt problemen..

Offline Scythen - 17/05/2007 08:42 (laatste wijziging 17/05/2007 17:04)
Avatar van ScythenPHP 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
Offline JBke - 17/05/2007 09:11 (laatste wijziging 17/05/2007 09:30)
Avatar van JBke 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:

  1. <?php
  2. if (!get_magic_quotes_gpc()) { // nagaan of magic quotes aan of af staat op je host.
  3. $gebruikersnaam = addslashes($gebruikersnaam);
  4. }
  5. ?>


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:
  1. <?php
  2. foreach($_POST as $veld) {
  3. if(preg_match('~["*$<>{}()\[\]§!]~', $veld)) {
  4. // foutmelding
  5. } else {
  6. // verwerk formulier
  7. }
  8. }
  9. ?>


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.
Offline Scythen - 17/05/2007 17:05
Avatar van Scythen PHP gevorderde Iemand? Please?
Offline marten - 17/05/2007 17:10
Avatar van marten Beheerder Is dat in een query?
Zo ja post de gehele query hier eens.
Offline Scythen - 17/05/2007 17:18 (laatste wijziging 17/05/2007 17:18)
Avatar van Scythen PHP gevorderde
  1. <?
  2. $subject1 =$_POST['subject'];
  3. $subject = strip_tags($subject1);
  4.  
  5.  
  6. $message1 = $_POST['message'];
  7. $message = strip_tags($message1);
  8.  
  9. mysql_query("***** `game_forum` (van_username, subject, bericht, datum) VALUES ('$username','$subject', '$message', '$date')") or die(mysql_error());
  10. echo "You created the topic!";<?


maarja, strip tags werkt ook niet.
Offline marten - 17/05/2007 17:21
Avatar van marten Beheerder ik bedoel de uitkomst
dus:

  1. <?php
  2.  
  3. $var = "***** `game_forum` (van_username, subject, bericht, datum) VALUES ('$username','$subject', '$message', '$date')";
  4.  
  5. echo $var;
  6. ?>


en dan de uitkomst van $var hier even posten 
Offline Ultimatum - 17/05/2007 17:23
Avatar van Ultimatum 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
Offline Scythen - 17/05/2007 17:24 (laatste wijziging 17/05/2007 17:26)
Avatar van Scythen PHP gevorderde Ultimatum, kijk mijn stukje script, ik heb ze allemaal gebruikt?

  1. <? $subject1 =$_POST['subject'];
  2. $subject = strip_tags($subject1);
  3. $subject = trim($subject1);
  4. $subject = stripslashes($subject1);
  5.  
  6. $message1 = $_POST['message'];
  7. $message = strip_tags($message1);
  8. $message = trim($message1);
  9. $message = stripslashes($message1);
  10. $message = htmlentities($message1);?>


Als ik dat doe, geeft hij die error alsnog dus..

@marten, hij weergeeft een '1', kan dat kloppen?
Offline ikkedikke - 17/05/2007 17:28
Avatar van ikkedikke PHP expert nee kan niet kloppen
bovendien zoals je het in je code hebt staan wordt alleen striptags uitgevoerd.
Offline Scythen - 17/05/2007 17:29
Avatar van Scythen PHP gevorderde Hmm, moet ik dan alles achter elkaar aan?

stripslashes(trim( etc ?
Offline marten - 17/05/2007 17:30
Avatar van marten Beheerder
  1. <?php $subject1 =$_POST['subject'];
  2. $subject = strip_tags($subject1);
  3. $subject = trim($subject1);
  4. $subject = addslashes($subject1);
  5.  
  6. $message1 = $_POST['message'];
  7. $message = strip_tags($message1);
  8. $message = trim($message1);
  9. $message = addslashes($message1);
  10. $message = htmlentities($message1);?>

Offline Scythen - 17/05/2007 17:31 (laatste wijziging 17/05/2007 17:33)
Avatar van Scythen 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.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.234s