ik ben weer begonnen om php te leren en nu heb ik een tutorial gevolgd over hoe je via een html formulier gegevens kunt plaatsen in een database, het werkt ook helemaal goed alleen kun je nu precies dezelfde gegevens 2 keer invoeren
hoe zou ik ervoor kunnen zorgen dat er wordt gecontroleerd of de email niet al eens eerder is voorgekomen en zoja dat de gegevens dan niet worden opgeslagen in mijn database.

dit zijn mijn gegevens

index.php hier voer je de gegevens in
<?php
include ('conn.php');
?>
<html>
<head>
<title>invoeren+uitlezen</title>
</head>
<body>
<center><h1>Invoeren</h1></center>
<center>
<form action="insert.php" method="post">
<label>Voornaam:</label>
<input type="text" name="Voornaam" id="Voornaam" placeholder="uw voornaam" /><br/><br/>
<label>Achternaam:</label>
<input type="text" name="Achternaam" id="Achternaam" placeholder="uw achternaam" /><br/><br/>
<label>Email:</label>
<input type="text" name="Email" id="Email" placeholder="uw email" /><br/><br/>
<input type="submit" value="Verzenden" />
</form>
</center>
</body>
</html>

insert.php dit script verzendt de gegevens naar de database

<?php

include ('conn.php');

$Voornaam = mysqli_real_escape_string($conn, $_POST['Voornaam']);
$Achternaam = mysqli_real_escape_string($conn, $_POST['Achternaam']);
$Email = mysqli_real_escape_string($conn, $_POST['Email']);

$sql = "INSERT INTO personen(Voornaam, Achternaam, Email) VALUES ('$Voornaam','$Achternaam','$Email')";

if($conn->query($sql) === TRUE){
echo 'Persoon is succesvol toegevoegd aan database';
}
else{
echo 'Er is helaas iets misgegaan bij het toevoegen aan de database' . $sql . '<br />' . $conn->error;
}

$conn->close();
?>
<html>
<head>
<title></title>
</head>
<body>
<center><h2>klik hier om terug te gaan naar de vorige pagina<a href="index.php"><input type="submit" value="teruggaan"></a></h2></center>
</body>
</html>

en mijn conn.php dus de database connectie

<?php

$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'php_leren';

$conn = new mysqli ($db_host, $db_user, $db_pass, $db_name);

if(mysqli_connect_errno()){
echo mysqli_connect_error();
echo 'database connectie mislukt';
exit();
}
else{
echo 'database connectie geslaagd';
}
?>
Door een unique constraint te plaatsen op het e-mailadres, en op de juiste foutcode te controleren in je query afhandeling.
was best simpel op te lossen nadat ik via google zocht op unique constraint, wat ik alleen niet kan vinden is hoe ik hier netjes een foutmelding van kan maken zoiets als 'het emailadres wordt al gebruikt'
Door te kijken of het errno gelijk is aan 1062 (uit mijn hoofd).

Reageren