parameter95
Neues Mitglied
Kann mir bitte einer verraten warum das mit den Filtern des Username nicht Funktoniert ?
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
<?php
if (isset($_POST['user']))
{
$user = trim($_POST['user']);
$pnr = trim($_POST['personalnummer']);
$pw = trim($_POST['password']);
if(!empty ($user) && !empty ($pnr) && !empty ($pw))
{
$user = filter_var($user, FILTER_SANITIZE_STRING);
$pnr = filter_var($pnr, FILTER_VALIDATE_INT);
if($user !== false && $pnr !== false)
{
include "inc/verbindung.inc.php";
$insert = $verbindung->prepare("INSERT INTO account (user, password, personalnummer) VALUES (?, ?, ?)");
$insert->bindValue(1, $user);
$insert->bindValue(2, password_hash($pw, PASSWORD_DEFAULT));
$insert->bindValue(3, $pnr);
if($insert->execute()) echo "Der Eintrag war erfolgreich"; else print_r($insert->errorInfo());
}
else
{
if($user === false)
echo "Der Benutzername ist nicht korrekt";
if($pnr === false)
echo "Bitte nur Zahlen";
}
}
else
echo "Alle Pflichtfelder ausfüllen";
}
?>
<?php
if (isset($_POST['user']))
{
$user = trim($_POST['user']);
$pnr = trim($_POST['personalnummer']);
$pw = trim($_POST['password']);
if(!empty ($user) && !empty ($pnr) && !empty ($pw))
{
$user = ctype_alnum($user);
$pnr = filter_var($pnr, FILTER_VALIDATE_INT);
if($user !== false && $pnr !== false)
{
include "inc/verbindung.inc.php";
$insert = $verbindung->prepare("INSERT INTO account (user, password, personalnummer) VALUES (?, ?, ?)");
$insert->bindValue(1, $user);
$insert->bindValue(2, password_hash($pw, PASSWORD_DEFAULT));
$insert->bindValue(3, $pnr);
if($insert->execute()) echo "Der Eintrag war erfolgreich"; else print_r($insert->errorInfo());
}
else
{
if($user === false)
echo "Der Benutzername ist nicht korrekt";
if($pnr === false)
echo "Bitte nur Zahlen";
}
}
else
echo "Alle Pflichtfelder ausfüllen";
}
?>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (isset($_POST['user']))
{
$user = trim($_POST['user']);
$pnr = trim($_POST['personalnummer']);
$pw = trim($_POST['password']);
if(!empty ($user) && !empty ($pnr) && !empty ($pw))
{
$user = ctype_alnum($user);
$pnr = filter_var($pnr, FILTER_VALIDATE_INT);
if($user !== false && $pnr !== false)
{
include "inc/verbindung.inc.php";
$insert = $verbindung->prepare("INSERT INTO account (user, password, personalnummer) VALUES (?, ?, ?)");
$insert->bindValue(1, $user);
$insert->bindValue(2, password_hash($pw, PASSWORD_DEFAULT));
$insert->bindValue(3, $pnr);
if($insert->execute()) echo "Der Eintrag war erfolgreich"; else print_r($insert->errorInfo());
}
else
{
if($user === false)
echo "Der Benutzername ist nicht korrekt";
if($pnr === false)
echo "Bitte nur Zahlen";
}
}
else
echo "Alle Pflichtfelder ausfüllen";
}
?>
<?php
include "verbindung.inc.php";
try {
$verbindung->exec("CREATE TABLE IF NOT EXISTS `account` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`user` varchar(25) NOT NULL,
`password` varchar(255) NOT NULL,
`personalnummer` INT(11) NOT NULL,
UNIQUE KEY `user` (`user`))");
echo '<p>Die Datenbank-Tabelle wurde <b>erfolgreich</b> erstellt</p>';
} catch(PDOException $err) {
exit("Tabelle fehlgeschlagen" . $err->getMessage());
}
?>
Nein, und du hast nicht auf die Tipps gehört!Aber habe ich es überhaupt richtig gemacht mit ctype_alnum bzw. in die richtige Stelle gesetzt.
Und dann möchtest du bestimmt mal in der Doku nachsehen, was ctype_alnum zurückliefert: http://php.net/ctype_alnum
http://lmgtfy.com/?q=Duplicate+entry+'1'+for+key+'user'Finde es Hammer das du immer aktiv und mir hilfreiche tipps zur verfügen stellst. Ich habe wirklich alles gemacht mit dem Debuggen habe sogar den Fehler in Google gesucht jedoch keine entsprechenden Erfolge erzielt. Es kommt immer der gleiche Fehler. Er fügt nicht den User Namen ein der eingeben wird sondern einfach bei user eine 1 in die datenbank.
Error mysqli
Array([0]=>23000, [1]=>1062, [2]=> Duplicate entry '1' for key 'user')