• Inloggen
  • Registreer
  • Zoeken
Dit topic
  • Overal
  • Dit topic
  • Dit forum
  • Artikelen
  • Pagina's
  • Forum
  • Downloads
  • Meer opties

ICTscripters

Dé plek voor IT

Dé plek voor IT

Aanmelden

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • nieuwe game

    tigermaffia 2 november 2026 om 15:21
  • Criminolz

    qevanto 31 oktober 2026 om 20:52
  • [Beta] Ottomaan: gratis browserspel met een echte, levende stad. Feedback gezocht!

    frio 27 oktober 2026 om 12:22
  • Port Father: beta van een browsergame in Antwerpen 1931, feedback welkom

    Jeroen.G 26 oktober 2026 om 10:33
  • Maffia Hotel: een browsergame waarin je van lobbygast naar spil van het hotel groeit

    eeyk 22 oktober 2026 om 18:43
  • Crime Club volledig herschreven vanaf nul

    frio 19 oktober 2026 om 23:57
  • Malavita (nieuwe maffia game, van 0)

    jos 19 oktober 2026 om 23:18
  • Herkent deze Notion-structuurscan echte problemen?

    Jeroen.G 19 oktober 2026 om 15:09

Marktplaats

  • [Aanbod] Stadskaart voor je browsergame: van menu naar klikbare stad, vanaf €200

    frio 29 oktober 2026 om 18:17
  • [Verkoop] G4G (Gangsters 4 Gangsters): volledige broncode, nieuw gebouwd in PHP 8.3 | € 30 per domein

    frio 27 oktober 2026 om 18:54
  • [TE KOOP] Malavita.be [Maffiaspel, gebaseerd op omicidio.nl, unieke code]

    Dpm_x 26 oktober 2026 om 00:22

Data wordt niet opgeslagen

  • Servertjee
  • 10 maart 2019 om 18:39
  • Servertjee
    Elite members
    Berichten
    110
    • 10 maart 2019 om 18:39
    • #1

    Heey!

    Vraagje...

    Mijn script werkte voorheen, nu heb ik een paar velden toegevoegd (voornaam,tussenvoegsel,achternaam,woonplaats etc). Nu werkt het nog wel het wordt alleen niet in de database opgeslagen. Kan iemand mij uit de brand helpen?

    PHP
    <?php
    session_start();
    
    
    // initializing variables
    $username = "";
    $email    = "";
    $straat   = "";
    $voornaam = "";
    $tussenvoegsel = "";
    $achternaam = "";
    $huisnummer = "";
    $postcode = "";
    $woonplaats = "";
    $errors = array(); 
    
    
    // connect to the database
    $db = mysqli_connect('localhost', '******', '*****', '******');
    
    
    // REGISTER USER
    if (isset($_POST['reg_user'])) {
      // receive all input values from the form
      $username = mysqli_real_escape_string($db, $_POST['username']);
      $email = mysqli_real_escape_string($db, $_POST['email']);
      $password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
      $password_2 = mysqli_real_escape_string($db, $_POST['password_2']);
      $voornaam = mysqli_real_escape_string($db, $_POST['voornaam']);
      $tussenvoegsel = mysqli_real_escape_string($db, $_POST['tussenvoegsel']);
      $achternaam = mysqli_real_escape_string($db, $_POST['achternaam']);
      $straat = mysqli_real_escape_string($db, $_POST['straat']);
      $huisnummer = mysqli_real_escape_string($db, $_POST['huisnummer']);
      $postcode = mysqli_real_escape_string($db, $_POST['postcode']);
      $woonplaats = mysqli_real_escape_string($db, $_POST['woonplaats']);
    
    
      // form validation: ensure that the form is correctly filled ...
      // by adding (array_push()) corresponding error unto $errors array
      if (empty($username)) { array_push($errors, "Gebruikersnaam is verplicht"); }
      if (empty($email)) { array_push($errors, "Email is verplicht"); }
      if (empty($voornaam)) { array_push($errors, "Voornaam is verplicht"); }
      if (empty($achternaam)) { array_push($errors, "Achternaam is verplicht"); }
      if (empty($straat)) { array_push($errors, "Straat is verplicht"); }
      if (empty($huisnummer)) { array_push($errors, "Huisnummer is verplicht"); }
      if (empty($postcode)) { array_push($errors, "Postcode is verplicht"); }
      if (empty($woonplaats)) { array_push($errors, "Woonplaats is verplicht"); }
      if (empty($password_1)) { array_push($errors, "Password is required"); }
      if ($password_1 != $password_2) {
    	array_push($errors, "The two passwords do not match");
      }
    
    
      // first check the database to make sure 
      // a user does not already exist with the same username and/or email
      $user_check_query = "SELECT * FROM users WHERE username='$username' OR email='$email' LIMIT 1";
      $result = mysqli_query($db, $user_check_query);
      $user = mysqli_fetch_assoc($result);
      
      if ($user) { // if user exists
        if ($user['username'] === $username) {
          array_push($errors, "Username already exists");
        }
    
    
        if ($user['email'] === $email) {
          array_push($errors, "email already exists");
        }
      }
    
    
      // Finally, register user if there are no errors in the form
      if (count($errors) == 0) {
      	$password = md5($password_1);//encrypt the password before saving in the database
    
    
      	$query = "INSERT INTO users (username,email,password,voornaam,tussenvoegsel,achternaam,straat,huisnummer,postcode,woonplaats,geboortedatum,geslacht) 
      			  VALUES('$username', '$email', '$password', '$straat', '$huisnummer', '$postcode', '$woonplaats', '$voornaam', '$tussenvoegsel', '$achternaam', '$geslacht', '$geboortedatum')";
      	mysqli_query($db, $query);
      	$_SESSION['username'] = $username;
      	$_SESSION['success'] = "You are now logged in";
      	header('location: index.php');
      }
    }
    // LOGIN USER
    if (isset($_POST['login_user'])) {
      $username = mysqli_real_escape_string($db, $_POST['username']);
      $password = mysqli_real_escape_string($db, $_POST['password']);
    
    
      if (empty($username)) {
      	array_push($errors, "Username is required");
      }
      if (empty($password)) {
      	array_push($errors, "Password is required");
      }
    
    
      if (count($errors) == 0) {
      	$password = md5($password);
      	$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
      	$results = mysqli_query($db, $query);
      	if (mysqli_num_rows($results) == 1) {
      	  $_SESSION['username'] = $username;
      	  $_SESSION['success'] = "You are now logged in";
      	  header('location: index.php');
      	}else {
      		array_push($errors, "Wrong username/password combination");
      	}
      }
    }
    
    
    ?>
    Meer tonen
  • Gast, wil je besparen op je domeinnamen? (ad)
  • FangorN
    Professional
    Artikelen
    2
    Berichten
    737
    • 10 maart 2019 om 23:51
    • #2

    EDIT: stap 0 is natuurlijk het controleren van je errorlogs, kun je hier iets in vinden?
    Ben je ook nagegaan dat $errors leeg is?

    password is een gereserveerd woord, dus wellicht zou die kolom tussen `backticks` moeten staan?

    Voor debugging zou je tijdelijk de header() kunnen verwijderen en mysqli_error() kunnen inspecteren.

    Zou het ook niet beter zijn om enkel een user id op te slaan in de sessie, en elke page-refresh de gebruikersinfo op te halen aan de hand van een id en dan een user object te bakken ofzo? In plaats van dit in je sessie te zetten. Elke keer als je je profiel bijwerkt houdt dit in de huidige opzet ook een potentiële administratieve bijwerkactie van je sessie in. En al die extra administratie is niet nodig als je de informatie gewoon elke pagina ververst (middels een on-the-fly berekend User object).

    Je controleert ook nergens of de query slaagt maar je gooit de nieuwe username zo bam in je sessie :D.

    Ook zou ik registratie en het inloggen zelf splitsen, anders wordt dit een onoverzichtelijke brei. En meer in het algemeen zou je je logica meer in aparte acties kunnen compartimenteren. Elke actie is dan toegespitst op één specifieke handeling. Hoe je dit aan zou kunnen pakken heb ik een blogpost beschreven.

    Daarnaast zou ik geen dingen als $_SESSION['success'] gebruiken, tenzij dit bedoeld is als een soort van flash message, in welk geval ik het $_SESSION['messages'] zou noemen ofzo, om de (zeer) tijdelijke aard van dit soort sessie-inhoud te benadrukken. Dit hele subarray zou ook direct de eerstvolgende page-access geleegd moeten worden nadat deze berichten zijn weergegeven op je pagina.

    Enne, md5() voor password hashing? :/

    Enne, na header('Location: ...') hoort ALTIJD een exit; te staan. Headers zijn onderdeel van output, dus nadat ergens middenin je code header('Location: ...') staat word je niet direct naar de nieuwe locatie getransporteerd, dat gebeurt pas aan het einde van het script. Het aanwezig zijn of het ontbreken van een exit-statement kan het verschil betekenen tussen veilige en onveilige code.

    Je bent gewaarschuwd :evil: .

    Voorbeeld:

    PHP
    <?php
    if (isset($_SESSION['some_required_value']) === false) {
        header('Location: elsewhere.php');
    }
    // gevoelige code die gegevens kan manipuleren
    // ...
    ?>

    Dit is wat er dan achtereenvolgens gebeurt bij aanroep van dit script:
    1. de Location header wordt ingesteld op "elsewhere.php"
    2. de code in het onderdeel "// gevoelige code die gegevens kan manipuleren" >>>WORDT UITGEVOERD <<<
    3. na afloop van het script word je direct doorgestuurd naar "elsewhere.php"

    Daarom is het handig/verstandig om hiervoor een functie/methode te hebben zodat je dit nooit meer per ongeluk vergeet:

    PHP
    <?php
    function redirect($link) {
        header('HTTP/1.1 303 See Other');
        header('Location: '.$link);
        exit; // opdat we dit NOOIT meer vergeten
    }
    ?>

    Bewerkt 12 keer, laatst door FangorN (14 maart 2019 om 12:44).

Registratie

Nog geen account? Registreer je nu en word deel van onze community!

Nu registreren Aanmelden

ICT Nieuws

  • PHP waarschuwt voor twee ernstige bugs die makkelijk uit te buiten lijken

    Aaron 22 oktober 2026 om 22:19

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacyverklaring
  10. Contact
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design