foutafhandeling form werkt niet, record in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Jansen

Robert Jansen

12/01/2016 19:17:05
Quote Anchor link
Hallo,

Ik heb een registratie formulier gemaakt. Ik heb twee velden (naam en wachtwoord)en een captcha.
Als je de twee velden wel invuld en de captcha niet dat krijg je de pagina: register_failed.php te zien en kun je nog een keer proberen. Maar er wordt wel een record aangemaakt in de database met de zojuist ingevoerde gebruikersnaam en wachtwoord, maar dit wil ik natuurlijk niet. Ik heb een sql query gemaakt die dit zal moeten verwijderen, maar dit werkt niet.
Kan iemand mij vertellen hoe ik dit zou kunnen maken?
alvast bedankt.

De php code is van de captcha:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$image
= new Securimage();
if ($image->check($_POST['captcha_code']) == true) {
  echo "Correct!";
}
else {
  header('Location: register_failed.php');die();
  $query = "DELETE LAST(username) FROM users";//Dit is de query die de record zou moeten verwijderen
  $result = mysqli_query($query)    or    die(mysqli_error());

}

?>

- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 12/01/2016 19:22:53 door - Ariën -
 
PHP hulp

PHP hulp

18/04/2024 19:48:36
 
- Ariën  -
Beheerder

- Ariën -

12/01/2016 19:25:05
Quote Anchor link
Je query wordt nooit uitgevoerd, omdat je het script laat stoppen met die().
 
Robert Jansen

Robert Jansen

12/01/2016 19:32:01
Quote Anchor link
ok, bedankt, maar dus $result = mysqli_query($query) ;
maar dan blijft hij een record aanmaken in de database

hoe kan dit?
 
- Ariën  -
Beheerder

- Ariën -

12/01/2016 19:45:54
Quote Anchor link
Het lijkt mij logisch om die query toch uit te voeren als de captcha correct is?
Als de captcha fout is, dan plaatst je die location-headers met de die(); erachteraan.


Verder is de foutafhandeling op de query niet netjes. Lees eens deze tutorial eens door. Let er wel op dat deze tut de oude MySQL-functies beschrijft, dus moet je deze wel zelf nog omzetten naar MySQLi.
 
Thomas van den Heuvel

Thomas van den Heuvel

12/01/2016 21:59:01
Quote Anchor link
Quote:
hoe kan dit?

Mogelijk omdat je geen exit; na je header('Location: ...') zet?

Het is een wijdverbreid misverstand dat header('Location: ...') je meteen automagisch transporteert naar de nieuwe locatie, dit gebeurt pas aan het einde van je script, dus ook pas na uitvoering van alle van toepasbaar zijnde code tot het einde van dit script.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.