login  Naam:   Wachtwoord: 
Registreer je!
 Forum

unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Offline jarro - 28/01/2006 13:01
Avatar van jarroHTML interesse Hoi allemaal,

Ik heb een foutmelding, die mij behoorlijk onbekend voorkomt..

unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in order.php on line 120
  1. <?
  2. $password = activatiecode(6);
  3. $actcode = activatiecode(12);
  4. $ip = $_SERVER['REMOTE_ADDR'];
  5. $datum = time();
  6. $bestellingen = 1;
  7. $lastvisit = time();
  8. mysql_query("INSERT INTO klantgegevens(voorletters, achternaam, adres, postcode, plaats, telnummer, email, password, ip, bestellingen, land, datum, lastvisit, actcode)
  9. VALUES($_SESSION['voorletters'], $_SESSION['achternaam'], $_SESSION['adres'], $_SESSION['postcode'], $_SESSION['plaats'], $_SESSION['telnummer'], $_SESSION['email'],
  10. $password, $ip, $bestelling, Nederland, $datum, $lastvisit, $actcode)") or die (mysql_error());
  11. ?>


De foutmelding komt op de hele mysql_query regel, maar ik zie/snap de fout niet:s

Iemand een idee?

Met vriendelijke groet,

jarro

19 antwoorden

Gesponsorde links
Offline Richard - 28/01/2006 13:03 (laatste wijziging 28/01/2006 13:07)
Avatar van Richard Crew algemeen die variabelen moet je maar even buiten de string halen:

  1. VALUES(" . $_SESSION['voorletters'] . ", " . $_SESSION['achternaam'] . ",


etc.
EDIT: ik was lekker wel als eerste;)

EDIT2: wat je ook nog kunt doen:

  1. VALUES({$_SESSION['voorletters']}, {$_SESSION['achternaam']},


zo laat je die dubbele quotes tenminste nog doen waar ze voor bedoeld zijn:p
Offline BigBug - 28/01/2006 13:03
Avatar van BigBug PHP expert Zucht, je values zo neerzetten:

  1. <?php
  2. mysql_query("INSERT INTO iets (bla) VALUES ('".$_POST['bla']."')");
  3. ?>
Offline MothZone - 28/01/2006 13:04 (laatste wijziging 28/01/2006 13:05)
Avatar van MothZone PHP ver gevorderde Variabelen buiten quotes!!!

  1. <?
  2. $password = activatiecode(6);
  3. $actcode = activatiecode(12);
  4. $ip = $_SERVER['REMOTE_ADDR'];
  5. $datum = time();
  6. $bestellingen = 1;
  7. $lastvisit = time();
  8. mysql_query("INSERT INTO klantgegevens(voorletters, achternaam, adres, postcode, plaats, telnummer, email, password, ip, bestellingen, land, datum, lastvisit, actcode)
  9. VALUES('".$_SESSION['voorletters']."', '".$_SESSION['achternaam']."', '".$_SESSION['adres']."', '".$_SESSION['postcode']."', '".$_SESSION['plaats']."', '".$_SESSION['telnummer']."', '".$_SESSION['email']."',
  10. '".$password."', '".$ip."', '".$bestelling."', 'Nederland', '".$datum."', '".$lastvisit."', '".$actcode."')") or die (mysql_error());
  11. ?>


[edit] Jexus en bigbug waren me voor
Offline Bart - 28/01/2006 13:05 (laatste wijziging 28/01/2006 13:09)
Avatar van Bart PHP expert
  1. <?
  2. $password = activatiecode(6);
  3. $actcode = activatiecode(12);
  4. $ip = $_SERVER['REMOTE_ADDR'];
  5. $datum = time();
  6. $bestellingen = 1;
  7. $lastvisit = time();
  8. mysql_query("INSERT INTO klantgegevens(voorletters, achternaam, adres, postcode, plaats, telnummer, email, password, ip, bestellingen, land, datum, lastvisit, actcode)
  9. VALUES('".$_SESSION['voorletters']."',
  10. '".$_SESSION['achternaam']."',
  11. '".$_SESSION['adres']."',
  12. '".$_SESSION['postcode']."',
  13. '".$_SESSION['plaats']."',
  14. '".$_SESSION['telnummer']."',
  15. '".$_SESSION['email']."',
  16. '".$password."',
  17. '".$ip."',
  18. '".$bestelling."',
  19. 'Nederland',
  20. '".$datum."',
  21. '".$lastvisit."',
  22. '".$actcode."'")) or die (mysql_error());
  23. ?>
Offline kokx - 28/01/2006 13:06 (laatste wijziging 28/01/2006 13:09)
Avatar van kokx Onbekend die mysql regel moet zo: (denk ik)
  1. <?php
  2. mysql_query("INSERT INTO klantgegevens(voorletters, achternaam, adres, postcode, plaats, telnummer, email, password, ip, bestellingen, land, datum, lastvisit, actcode) VALUES(". $_SESSION['voorletters'] .", ". $_SESSION['achternaam'] .", ". $_SESSION['adres'] .", ". $_SESSION['postcode'] .", ". $_SESSION['plaats'] .", ". $_SESSION['telnummer'] .", ". $_SESSION['email'] .", ". $password .", ". $ip .", ". $bestelling .", Nederland, ". $datum .", ".$lastvisit .", ". $actcode .")") or die (mysql_error());
  3. ?>


Edit: Meerdere mensen waren me voor 
Offline vinTage - 28/01/2006 13:08
Avatar van vinTage Nieuw lid @ de laatste 3 posts lol, mag ik jullie pincode ? 
Offline kokx - 28/01/2006 13:10 (laatste wijziging 28/01/2006 13:11)
Avatar van kokx Onbekend @vinTage: Die heb ik geen of ben ik vergeten.
Offline xSc - 28/01/2006 13:20
Avatar van xSc Onbekend Pas wel op: wie zegt dat er ingevuld wordt, wat je vraagt? Je voegt klakkeloos dat input van de velden in? Zou je er niet addslashes() o.i.d. omheen zetten? 
Offline Button - 28/01/2006 17:41 (laatste wijziging 28/01/2006 18:31)
Avatar van Button PHP ver gevorderde @henri: die addslashes is niet altijd nodig: als ik me niet vergis, doen de meeste servers dit tegenwoordig zelf
edit:jarro: lekker duidelijke titel heb je gekozen 
Offline Gerard - 28/01/2006 18:41
Avatar van Gerard Ouwe rakker
Citaat:
@henri: die addslashes is niet altijd nodig: als ik me niet vergis, doen de meeste servers dit tegenwoordig zelf


Laat magic_quotes_gpc nou niet je kont redden. Slash de zooi zelf ff.
Offline Button - 28/01/2006 18:52
Avatar van Button PHP ver gevorderde Ja maar dan zit je dikwijls met dubbele slashes ... (als je niet de keuze hebt voor het opzetten van magic_quotes_gpc) maarja iedereen zijn eigen smaak ...:p
Offline kokx - 28/01/2006 19:21
Avatar van kokx Onbekend @ButtonMan: Dan controleer je toch of die aanstaat:
  1. <?php
  2. addslashes($_POST['iets']);
  3. }
  4. ?>
Offline Gerard - 28/01/2006 20:53
Avatar van Gerard Ouwe rakker En als je dat weer in een aparte functie zet hoef je niet steeds die if statement aan te roepen. Dan gebruik je die gewoon nieuwe functie.  
Offline Richard - 29/01/2006 07:36
Avatar van Richard Crew algemeen het is altijd beter om niet te vertrouwen op magic_quotes_gpc, dit zorgt altijd voor hopen ellende, aangezien je input dan nooit echt is wat je wilde.

ik gebruik zelf altijd dit in mijn config bestanden, voor garantie dat ik nooit geaddslashde input krijg:

  1. <?php
  2. {
  3. function stripit_deep ($data)
  4. {
  5. return (is_array ($data)) ? array_map ('stripit_deep', $data) : stripslashes ($data);
  6. }
  7.  
  8. $_GET = array_map ('stripit_deep', $_GET);
  9. $_POST = array_map ('stripit_deep', $_POST);
  10. // let op: $_COOKIE kan nooit arrays bevatten;)
  11. $_COOKIE = array_map ('stripslashes', $_COOKIE);
  12. $_REQUEST = array_map ('stripit_deep', $_REQUEST);
  13. }
  14. // zorgt ervoor dat mysql ook niet slashes gaat toevoegen.
  15. ?>


en ism deze code ALTIJD PHP.net: mysql_real_escape_string gebruiken over non-integer waarden.
Offline Button - 29/01/2006 08:56
Avatar van Button PHP ver gevorderde @Jexus: hoe werkt dat stukje code dan? wordt die functie vanuit die array_map aangeroepen ofzoiets? en als de $data een array is dan return je terug een array_map? leg je het me eens uit ?
Offline Richard - 29/01/2006 09:05
Avatar van Richard Crew algemeen PHP.net: array_map

array_map zorgt ervoor dat de functie die in de eerste parameter aangeeft (de callback) toegepast word op ieder element van de array die je in de 2e parameter aangeeft;)
Offline Button - 29/01/2006 09:11 (laatste wijziging 29/01/2006 09:17)
Avatar van Button PHP ver gevorderde ah ok maar als het een array is roep je de functie terug aan ofzo waarom dat? waarom juist als het een array is ? en bij een cookie roep je stripslashes aan --> gebruikt php dan zijn 'eigen' functie Stripslashes();?
Offline Richard - 29/01/2006 09:47
Avatar van Richard Crew algemeen lees anders even die pagina die ik gaf door, blijkbaar heb je dat niet gedaan.
Offline Button - 29/01/2006 10:19
Avatar van Button PHP ver gevorderde ah k, nu snap ik denk ik ;)
  1. return (is_array ($data)) ? array_map ('stripit_deep', $data) : stripslashes ($data);

met dat wordt gecontroleerd dat de array bv. $_GET zelf ook geen arrays niet meer bevat! (als dat zo is dan moeten de waarden van die tweede array ook apart worden gestript )

dank je !
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.506s