Hej
Jeg er igang med at lave et login system, og er nået til registrering, men det fungerer ikke helt. Vil derfor spørge jer, da jeg har prøvet at finde frem til fejlene uden resultat.
<?php
if ($_POST)
{
// Beskytter name //
$name=$_POST['name'];
$mysqli->real_escape_string($name);
$name = htmlentities($name);
$name = stripslashes($name);
$name = strip_tags($name);
// Kodeord //
$password=$_POST['password'];
$mysqli->real_escape_string($password);
$password = htmlentities($password);
$password = stripslashes($password);
$password = strip_tags($password);
// Kodeord 2 //
$password=$_POST['pass'];
$mysqli->real_escape_string($pass);
$pass = htmlentities($pass);
$pass = stripslashes($pass);
$pass = strip_tags($pass);
// Email //
$email=$_POST['email'];
$mysqli->real_escape_string($email);
$email = htmlentities($email);
$email = stripslashes($email);
$email = strip_tags($email);
if($name > 5)
{
echo "Brugernavnet skal være over 5.";
echo "<a href='?page=register'>Tilbage</a>";
echo "<br /><br />Det prøvevalgte brugernavn: " . $name;
echo "<br /><br />Det prøvevalgte email: " . $email;
echo "<br /><br />Det prøvevalgte kodeord: " . $password;
echo "<br /><br />Det prøvevalgte pass: " . $pass;
exit;
}
if ($name > 40 )
{
echo "Brugernavnet skal være mindre end 40.";
echo "<a href='?page=register'>Tilbage</a>";
echo "<br /><br />Det prøvevalgte brugernavn: " . $name;
exit;
}
$stmt = mysqli_stmt_init($mysqli);
if (mysqli_stmt_prepare($stmt,"SELECT name FROM brugere WHERE name=?")) {
mysqli_stmt_bind_param($stmt, 's', $brugere);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $oldname);
mysqli_stmt_fetch($stmt);
if ($name == $oldname)
{
echo "Der findes allerede en med dette brugernavn";
echo "<a href='?page=register'>Tilbage</a>";
exit;
}
mysqli_stmt_close($stmt);
}
if ($email > 80)
{
echo "Email skal være mindre end 80.";
echo "<a href='?page=register'>Tilbage</a>";
exit;
}
else if ($email == "")
{
echo "Email feltet skal være udfyldt!";
echo "<a href='?page=register'>Tilbage</a>";
exit;
}
if ($password > 25)
{
echo "Kodeordet skal være mindre end 25.";
echo "<a href='?page=register'>Tilbage</a>";
exit;
}
else if ($password < 5)
{
echo "Kodeordet skal være større end 5";
echo "<a href='?page=register'>Tilbage</a>";
echo "<br /><br />Det prøvevalgte brugernavn: " . $name;
echo "<br /><br />Det prøvevalgte email: " . $email;
echo "<br /><br />Det prøvevalgte kodeord: " . $password;
echo "<br /><br />Det prøvevalgte pass: " . $pass;
exit;
}
if ($password != $pass)
{
echo "Kodeordene mathcer ikke hinanden. Prøv igen!";
echo "<a href='?page=register'>Tilbage</a><br /><br />";
echo " ... " . $password . " ... <br />";
echo " ... " . $pass . " ... ";
exit;
}
if ($stmt = $mysqli->prepare("INSERT INTO brugere (name, email, password) values (?, ?, ?)")) {
$stmt->bind_param('ss', $insertname, $insertemail, $insertpassword);
$insertname = "$name";
$insertemail = "$email";
$insertpassword = "$password";
$salt = 'jdgodg2';
$hash_md5 = md5($salt.$insertpassword);
$stmt->execute();
echo "Inserted {$insertname},{$insertemail},{$insertpassword} into database\n";
$stmt->close();
}
else {
printf("Prepared Statement Error: %s\n", $mysqli->error);
echo "<a href='?page=register'>Tilbage</a>";
exit;
}
}
else
{
echo 'Du er kommet til en forkert side';
}
?>
Det, der sker er, at den stopper ved password > 0
Kodeordet skal være større end 5Tilbage
Det prøvevalgte brugernavn: testnavn
Det prøvevalgte email: testemail@hotmail.com
Det prøvevalgte kodeord: testkode
Det prøvevalgte pass:
Som man kan se, er kodeordet større end 5, alligevel siger den andet?
Samtidig har $pass ingen værdi?
Nogen, som kan se fejlen?
På forhånd tak for hjælpen
Indlæg senest redigeret d. 24.02.2012 13:43 af Bruger #15747