login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Fout in formulier (Opgelost)

Offline Marnick123 - 19/05/2009 19:40
Avatar van Marnick123Nieuw lid Hoi, ik heb hier een script die zorgt dat iemand zijn profiel bij kan werken. Helaas werkt dit niet, en krijg ik meteen als ik naar de pagina ga te zien: Gegevens en wachtwoord zijn succesvol gewijzigdVul de verplichte velden in...

Ziet iemand waar mijn fout ligt, en hoe deze op te lossen is? Bij voorbaad dank!

Plaatscode: 136565

8 antwoorden

Gesponsorde links
Offline Wim - 19/05/2009 19:48
Avatar van Wim Crew algemeen regel 83-85. Die check moet je zetten voordat je je query uitvoert. Als die check waar is, dan wil je trouwens ook helemaal niet dat hij de query gaat uitvoeren (=> else lus gebruiken).
Offline NTS64 - 19/05/2009 19:50
Avatar van NTS64 PHP gevorderde Gebruik PHP.net: empty om te kijken of je velden zijn ingevuld. Tegenwoordig gebruiken we superglobals om met formuliervelden te werken.  En bovenal: houdt je variabelen buiten de quotes!(Zowel in je query als in bij $geboortedatum!)
Offline Marnick123 - 19/05/2009 20:03
Avatar van Marnick123 Nieuw lid Allereerst bedankt beide,
Wimmarien, Ik heb het geprobeerd te doen op de manier die jij zei, zo krijg ik de melding te zien: Vul de verplichte velden in...
En dit dus in plaats van het formulier. Dit is mijn code van regel 75 t/m 86, zie jij de fout??
Plaatscode: 136566

Woedi, zou jij uit kunnen leggen hoe dat empty werkt? Dat snap ik helaas zelf niet. En kan jij een voorbeeldje doen van mijn variabelen buiten quotes, dan kan ik wel de rest doen.

Nogmaals, beide alvast bedankt!
Offline NTS64 - 19/05/2009 20:17 (laatste wijziging 19/05/2009 20:18)
Avatar van NTS64 PHP gevorderde Jij gebruikt !$veld om te kijken of $veld leeg is of niet...
!$veld is alleen true wanneer het niet bestaat. Eerst en vooral gebruik je best superglobals: http://www.site...perglobals. Deze zijn veiliger dan gewone variabelen.
Om nu even terug te gaan naar !$_POST['veld'], dit zal true zijn wanneer dit veld niet bestaat, maar wanneer je je formulier submit(een POST request verzend) bestaat deze variabele, of deze nu leeg is of niet, daarom gebruik je best PHP.net: empty.
bijvoorbeeld:

  1. <?
  2. if(empty($_POST['veld']))
  3. {
  4. echo "Vul veld in!";
  5. }
  6. else
  7. {
  8. // doe iets met data
  9. }

Ten slotte, je houdt je variabelen best buiten quotes.
  1. $geboortedatum = $geb1-$geb2-$geb3;

Dit volstaat, wanneer je hier quotes rondplaatst wordt dit als een string(=tekst) gezien.
Hetzelfde geldt voor je query:
  1. mysql_query("UPDATE tabel SET naam = '".$_POST['naam']."', blaat = '".$_POST['blaat']."'");
Offline Marnick123 - 19/05/2009 20:38 (laatste wijziging 19/05/2009 22:11)
Avatar van Marnick123 Nieuw lid Nogmaals heel erg bedankt!
Ik kom wel steeds dichterbij, want het formulier lijkt te werken, maar hij bewerkt de gegevens in de database niet. Zie je toevallig waar ik de fout in ja?
Dit is overgens mijn nieuwe code volledig
Plaatscode: 136571

Zou je misschien ook nog even kijken naar mijn variabelen buiten de quotes?
Offline dododedodo - 19/05/2009 23:45
Avatar van dododedodo Lid
Woedi schreef:
Gebruik PHP.net: empty om te kijken of je velden zijn ingevuld.


Gebruik PHP.net: empty [b]en PHP.net: trim[/b] om te kijken of je velden zijn ingevuld. Dan heb je direct de spatie eruit.

  1. <?php
  2. if(empty(trim($_POST['veld1']))) {
  3.  
  4. }
  5. ?>


Offline NTS64 - 20/05/2009 09:41 (laatste wijziging 20/05/2009 09:41)
Avatar van NTS64 PHP gevorderde
Woedi schreef:
Dit volstaat, wanneer je hier quotes rondplaatst wordt dit als een string(=tekst) gezien.
Hetzelfde geldt voor je query:
[..code..]

Lees je wel wat ik schrijf?
Je hebt je variabelen in je query nog niet buiten de quotes geplaatst, én je gebruikt nog steeds geen superglobals.
  1. mysql_query("UPDATE usr_users SET naam='".$_POST['naam']."', email='".$_POST['email']."' // enzovoorts

Offline Marnick123 - 20/05/2009 19:36
Avatar van Marnick123 Nieuw lid Bedankt Woedi (en ook de rest),

Het is uiteindelijk gelukt, met de verandering die je als laatste aangaf. Dit is mijn code nu (werkend dus):
Plaatscode: 136578
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.204s