NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Mezinárodní den IT společnosti je tady! Pouze nyní můžeš získat 90 % extra kreditů při nákupu od 1199 kreditů s promo kódem AJTACI90. Tak neváhej!

Diskuze: Ošetření duplicity ve formuláři PHP

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
David Částka:15.9.2017 23:36

Ahoj. Potřeboval bych poradit jak zamezit tomu, aby se mohli registrovat dva uživatele na stejný nick. Diky za rady :-)
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="<?php echo $_SERVER["PHP_SEL­F"] ?>" method="post">
email: <input type="email" name="emaR" id="">
<br>
nick: <input type="text" name ="nick">
<br>
heslo: <input type="password" name="passR" id="">
<br>
<input type="submit" value="Registrovat" name = "reg">
</form>
<?php
if ($_SERVER["RE­QUEST_METHOD"] == "POST") {
$conn = new mysqli("localhost", "root", "", "uzivatel");
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

if ($_POST["reg"]) {

$email2 = $_POST["emaR"];
$nick = $_POST["nick"];
$pass2 = $_POST["passR"];

$database = new mysqli("localhost", "root", "", "uzivatel");

$sql = "INSERT INTO lid (nick, pass, email)
VALUES ('$nick', '$pass2', '$email2')";

if ($database->query($sql) === TRUE) {
echo "Registrace uspesna";
};
};
};
?>
</body>
</html>

 
Odpovědět
15.9.2017 23:36
Avatar
Jan Blažek
Tvůrce
Avatar
Jan Blažek:16.9.2017 8:01

Ahoj, musiš v databázi nastavit kolonku 'nick' jako unikátní. Pokud se pak pokusíš do databáze uložit duplikovanou hodnotu, databáze ti vyhodí výjimku, takže dotaz na databázi dej do try catch bloku.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
+1
16.9.2017 8:01
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.