login  Naam:   Wachtwoord: 
Registreer je!
 Forum

query werkt niet

Offline Simon - 04/04/2006 11:32 (laatste wijziging 04/04/2006 11:33)
Avatar van SimonPHP expert Hey,

ik heb een query
  1. <?php
  2. $mysql->query("
  3. INSERT INTO users
  4. (username, email, verbergemail, password, level, ip, last_ip, reg_dag, naam, achternaam, geb_datum, postcode, stad, land)
  5. VALUES
  6. ('".$username."','".$email."','".$verberg."','".$pass."','".$level."','".$ip."','".$ip."','".$reg_dag."','".$naam."','".$achternaam."','".$geb_datum."','".$postcode."','".$stad."','".$land."')", "INSERT Query1 Register");
  7. ?>

het probleem is dat $verberg niet werkt
  1. <select name="verberg">
  2. <option value"Nee">Nee</option>
  3. <option value"Ja">Ja</option>
  4. </select>
  5. <?php
  6. $verberg = $_POST['verberg'];
  7. ?>


Ik begrijp het echt niet, er staat gewoon niks in de database 

23 antwoorden

Gesponsorde links
Offline marten - 04/04/2006 11:33
Avatar van marten Beheerder wil ej mysql_error() er ff achter zetten?
Offline Simon - 04/04/2006 11:37
Avatar van Simon PHP expert dat doe ik zoiezo als ik met de class mysql werk 
ik krijg geen error
Offline marten - 04/04/2006 11:39
Avatar van marten Beheerder oke mmm eens kijken

komt je query voor of na het verberg select lijstje?
Offline Simon - 04/04/2006 11:41
Avatar van Simon PHP expert erna hé 
ik heb nog 3 andere query's daar, die werken perfect, de rest van die hierboven werkt ook prima, behalve die $verberg
Offline Micron - 04/04/2006 11:45 (laatste wijziging 04/04/2006 11:49)
Avatar van Micron HTML beginner
  1. <?php
  2. $mysql->query("INSERT INTO users
  3. (username, email, verbergemail, password, level, ip, last_ip, reg_dag, naam, achternaam, geb_datum, postcode, stad, land)
  4. VALUES
  5. ('$_POST[username]', '$_POST[email]', '$_POST[verbergemail]', '$_POST[pass]', '$_POST[level]', '$_POST[ip]', '$_POST[last_ip]', '$_POST[reg_dag]', '$_POST[naam]', '$_POST[achternaam]', '$_POST[geb_datum]', '$_POST[postcode]', '$_POST[stad]', '$_POST[land]')");
  6. ?>


  1. <select name="verbergemail">
  2. <option value="Nee">Nee</option>
  3. <option value="Ja">Ja</option>
  4. </select>
  5.  
  6. <?php
  7. $verbergemail = $_POST['verbergemail'];
  8. ?>

Offline brut0r - 04/04/2006 11:48
Avatar van brut0r Nieuw lid Je bent = vergeten bij value dus hij ziet er geen 1

^^ ^^ ^^
Offline xSc - 04/04/2006 12:47
Avatar van xSc Onbekend $verbergemail = $_POST['verbergemail'];

waar slaat dit op? $_POST-variabelen moet je niet zomaar kopieren naar 'gewone variabelen'.

- Haal je variabelen buiten quotes!
- Gebruik addslashes() bij strings en intval() bij integers en floatval() bij floats binnen queries. Zo voorkom je MySQL-injection!
Offline Simon - 04/04/2006 13:07 (laatste wijziging 04/04/2006 13:08)
Avatar van Simon PHP expert @trinity, wtf doe jij nu eigenlijk? je haalt de vars terug binnen de quotes...

@brut0r:?? i don't get it 

@Henri: bij een select kun je moeilijk SQL injection krijgen hé 

en Why The F*** zou dit niet mogen?
$verbergemail = $_POST['verbergemail'];
Offline marten - 04/04/2006 13:31
Avatar van marten Beheerder @Simon over @Brutor

in je openingstopic staat er idd geen = tussen je value en je naam ;)
Offline brut0r - 04/04/2006 13:39 (laatste wijziging 04/04/2006 13:40)
Avatar van brut0r Nieuw lid Je moet geen value'Ja' gebruiken...

Maar value='Ja'

Die = moet er nog tussen...
^^

Gewoon een klein foutje die veel niet zien..

Offline xSc - 04/04/2006 13:55
Avatar van xSc Onbekend Simon, bij een SELECT kun je toch ook vergelijken met de inhoud van een variabele. Die inhoud kan jouw query laten stuklopen, wanneer je daarvoor geen voorzieningen treft.

$verbergemail = $_POST['verbergemail'];

Waarom zou je $_POST['verbergemail'] niet gebruiken i.p.v. $verbergemail? Geef eens de toegevoegde waarde hiervan?
Offline marten - 04/04/2006 13:59
Avatar van marten Beheerder ik lees de laatste tijd veel artikelen over veiligheid van scripts. Een regel die erg vaak terug komt is Controleer je user input!

Dus al kan het haast niet doe evengoed die beveiliging!
Offline xSc - 04/04/2006 14:00
Avatar van xSc Onbekend Inderdaad Marten, jij begrijpt het.

Men ziet veelal het nut niet in van gecontroleerde invoer, totdat het fout gaat. Maar ja, beginnertjes denken het vaak beter te weten. In plaats dat ze wat aannemen, rommelen ze zelf maar wat aan.
Offline marten - 04/04/2006 14:04
Avatar van marten Beheerder ik vind het een kleine moeite om die controle toe te voegen. Je kan er zover in gaan als je wilt.....

weleens gedacht aan het volgende?

File upload systeem ---> gebruiker stuurt een txt bestand van 8mb door ---> dit moet je script opvangen en een melding sturen! want tis wel een erg groot tekstbestand ;)

zo zijn er nog wel meer voorbeelden te noemen
Offline xSc - 04/04/2006 14:07
Avatar van xSc Onbekend Inderdaad, zo kun je ook nog controleren op MIME-type + extensie. In je .htaccess kun je overigens de maximale bestandgrootte van het te uploaden bestand aan banden leggen.

Wat queries betreft: als men de queries wat beter opbouwt (dus niet roekeloos SELECT * gebruiken, etc.) en gebruik maakt van mysql_free_result dan gaat het al heel wat beter.
Offline Gerard - 04/04/2006 14:09
Avatar van Gerard Ouwe rakker
Citaat:
Inderdaad, zo kun je ook nog controleren op MIME-type + extensie.


Dit is inderdaad een van de dingen die mij zorgen baart. Je ziet steeds vaker dat men bij upload-scripts wel controleert op een extensie maar niet op de MIME-Type. Terwijl de MIME-type juist meer over het bestand zegt dan de extensie.
Offline Simon - 04/04/2006 14:36
Avatar van Simon PHP expert @Henri: heb je de rest van m'n script gezien? NEE!!, ik doe overal addslashes, dus moet je niet beginne zeiken dat mijn script niet veilig is
Offline xSc - 04/04/2006 14:41
Avatar van xSc Onbekend @Simon, ga nu niet bijdehand doen, want dat heb je ook niet gepost. Hoe kan ik dat dan weten? Jij behoort ook al tot 'die club van ....' en vul maar in.
Offline marten - 04/04/2006 14:46
Avatar van marten Beheerder club van sinterklaas 

maar werkt die query nou al ?
Offline Simon - 04/04/2006 14:47
Avatar van Simon PHP expert bijdehand??

jij zit hier te zeggen, dat mijn script niet veilig is enzovoort, terwijl het dat wel is...
dus jij moet niet denken dat je het allemaal wel weet
Citaat:
Men ziet veelal het nut niet in van gecontroleerde invoer, totdat het fout gaat.

Ik controleer de invoer wel, maar wat kan er nou foutgaan bij een select? Hoe zou je daar SQL injection kunnen doen? Bij input text velden etc doe ik uiteraard addslashes()
Offline xSc - 04/04/2006 14:49 (laatste wijziging 04/04/2006 14:51)
Avatar van xSc Onbekend Bij een SELECT? Je kunt toch dit doen:

SELECT naam FROM personen WHERE id = " . $_GET['id']

maar $_GET['id'] kan natuurlijk ook iets anders dan een getal zijn.

Daarom:

SELECT naam FROM personen WHERE id = " . intval($_GET['id'])

* Trouwens, ik mag toch commentaar geven? Het is voor je eigen bestwel, hoor. Van opbouwende kritiek kun je leren. Dat geldt in alle opzichten. Het is soms lastig om kritiek te ontvangen, maar het is vaak goed voor je.
Offline marten - 04/04/2006 14:51
Avatar van marten Beheerder Simon
hoe staat het in je db tabel?
Misschien gebruik je Enum ja / nee en wil je Ja / Nee er in zetten
Offline Simon - 04/04/2006 15:56
Avatar van Simon PHP expert ik gebruik VARCHAR(3)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.274s