Vraag & Antwoord

Webprogrammeren & scripting

conflict tussen sql database en automatische mailbevestiging

3 antwoorden
  • Dag allemaal. Misschien kan iemand me helpen bij het volgende. Ik heb een formulier gemaakt waarmee mensen zich kunnen registreren op een website. De gegevens worden opgeslagen in een mysql database. Dit werkt uitstekend. Ik wil echter graag dat degenen die zich registreren automatisch een e-mail bevestiging ontvangen. Ik heb ooit al eens zoiets gemaakt en ben nu bezig deze code te integreren in mijn formuliercode. Maar hier loop ik vast. Ik weet niet zoveel van php (ben nog steeds aan het leren), maar misschien ziet een van jullie waar in mijn code een fout zit. [code:1:bf4ef79aea] <?php include("data/connection.php"); if(!empty($_POST)){ $voornaam = $_POST['voornaam']; $achternaam = $_POST['achternaam']; $schooltype = $_POST['schooltype']; $jaar = $_POST['jaar']; $email = $_POST['email']; $gebruikersnaam = $_POST['gebruikersnaam']; $wachtwoord = $_POST['wachtwoord']; $message = ""; $message = $message . "-- \nDeze e-mail is automatisch gegenereerd."; $message = stripslashes($message); $subject = "Registratie"; $headers = "From: " . $_POST['Email'] . "\n" . "Return-Path: " . $_POST['Email'] . "\n" . "Reply-To: " . $_POST['Email'] . "\n"; $sql_query = "SELECT * FROM users WHERE gebruikersnaam='".$gebruikersnaam."' OR email='".$email."';"; $result = mysql_query($sql_query); if(mysql_num_rows($result) > 0) { header ("Location: error.php"); } else{ $sql_query = "INSERT INTO users (voornaam, achternaam, schooltype, jaar, email, gebruikersnaam, wachtwoord) "; $sql_query .="VALUES ('".$voornaam."', '".$achternaam."', '".$schooltype."', '".$jaar."', '".$email."', '".$gebruikersnaam."', '".$wachtwoord."');"; $result = mysql_query($sql_query) or die(mysql_error()); if ($_SERVER['REQUEST_METHOD'] != "POST"){exit;} while(list($key,$value) = each($_POST)){if(!(empty($value))){$set=1;}$message = $message . "$key: $value\n\n";} if($set!==1){header("Location: register_2.php");exit;} mail($email,$subject,$message,$headers); } } ?> [/code:1:bf4ef79aea] Ter informatie: Het bestand dat ge-include wordt, bevat alleen de gegevens van de database (host, password etc.). Ik controleer of alle velden zijn ingevuld met een stukje javascript (heb ik niet gepost, want werkt goed). In de query heb ik aangegeven dat het formulier niet verwerkt mag worden als de gebruikersnaam of de email al voorkomen in de database. Dit doet ie ook goed. Als foutmelding wordt dan error.php geladen. Ik hoop dat iemand me kan helpen. Alvast bedankt. Groeten, Rob
  • Misschien kan je even vermelden wat er precies fout gaat of niet lukt. Overigens kan je met PHP ook controleren of alle velden zijn ingevuld. Dat kan tegelijkertijd met t ophalen van de gegevens uit de $_POST varaiabele. Misschien dat dat t iets gemakkelijker maakt. Ook kan je $sql_query = "SELECT * FROM users WHERE gebruikersnaam='".$gebruikersnaam."' OR email='".$email."';"; volgens mij inkorten tot $sql_query = "SELECT * FROM users WHERE gebruikersnaam='$gebruikersnaam' OR email='$email';"; (weet t niet helemaal cker, maar dit maakt de code wat overzichtelijker, vind ik dan)
  • Het volgende lukt in ieder geval: - ingevoerde gegevens in de database plaatsen - controleren of gebruikersnaam of email al in de database staat vervolgens blijft de pagina laden (onderin beeld), maar er gebeurt niets. Ook de vervolgpagina (register_2.php) wordt niet getoond. Ik denk dus dat het script ergens blijft hangen. Rob

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.