Hallo,

Iemand heeft een php systeem voor me gemaakt & iemand heeft dit gedesigned. Alleen als ik naar de register.php pagina ga krijg ik de error: "Unknown Error". Zou iemand weten wat het probleem is en hoe je het kan oplossen? Hier staat alles online: rapport.adventurenetwork.eu.
Ik ga de code hier niet online plaatsen. Als je denkt te weten wat het probleem is & hoe je het oplost, zou je me dan even kunnen toevoegen op skype: kasper.martens1.

Alvast bedankt,

Kasper
Goedendag Kasper,

Allereerst welkom op PHPhulp.
Op het forum hebben meerdere mensen een probleem. Dus mijn verzoek is of je je bericht aan wilt passen en een duidelijke titel voor je onderwerp wilt bedenken, die je probleem of vraagstelling omschrijft.
Alvast bedankt.
- Aar - op 24/06/2015 19:53:45

Goedendag Kasper,

Allereerst welkom op PHPhulp.
Op het forum hebben meerdere mensen een probleem. Dus mijn verzoek is of je je bericht aan wilt passen en een duidelijke titel voor je onderwerp wilt bedenken, die je probleem of vraagstelling omschrijft.
Alvast bedankt.
Heb ik gedaan, zo goed?

Prima zo.

Is de foutmelding letterlijk: 'Unknown name'?
Waar komt deze vandaan uit de code, want dit is niet een standaard foutmelding.

Ik krijg overigens: "Unknown error"
- Aar - op 24/06/2015 19:59:43

Prima zo.

Is de foutmelding letterlijk: 'Unknown name'?
Waar komt deze vandaan uit de code, want dit is niet een standaard foutmelding.
Sorry, foutje van mij. Het gaat hier om: "Unknown Error". Bij deze is dit ook aangepast in mijn bericht.
Die "Unknown Error" staat letterlijk in het script, maar ik zelf heb geen verstand van php... Hoe komt het dat als ik naar register.php ga telkens dit komt?
Dit is de code van register.php:

<?php
if (!isset($_POST["submit"])){
echo "Unknown error.";
} else {
if (!empty($_POST["username"]) && !empty($_POST["password"]) && !empty($_POST["password2"]) && !empty($_POST["email"]) && !empty($_POST["name"]) && !empty($_POST["surname"]) && !empty($_POST["school"])){
require "../config.php";
$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);

$username = $mysqli->real_escape_string($_POST["username"]);
$password = $mysqli->real_escape_string($_POST["password"]);
$password2 = $mysqli->real_escape_string($_POST["password2"]);
$email = $mysqli->real_escape_string($_POST["email"]);
$name = $mysqli->real_escape_string($_POST["name"]);
$surname = $mysqli->real_escape_string($_POST["surname"]);
$school = $mysqli->real_escape_string($_POST["school"]);
if (!ctype_alpha($name) || !ctype_alpha($surname)){
echo "Invalid name.";
} else if (!ctype_alnum($username)){
echo "Invalid username.";
} else if ($password != $password2){
echo "Passwords do not match.";
} else if (!filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "Invalid email.";
} else if (strlen($username) > 20){
echo "Username too long (20+ characters)";
} else {
$query = "SELECT COUNT(*) FROM `km_users` WHERE `username` = '$username'";
$result = $mysqli->query($query);
$row = $result->fetch_row();
if ($row[0] > 0){
echo "Username already exists.";
} else {
$query = "SELECT COUNT(*) FROM `km_users` WHERE `email` = '$email'";
$result = $mysqli->query($query);
$row = $result->fetch_row();
if ($row[0] > 0){
echo "Email already exists.";
} else {
$password = hash_pbkdf2("sha256", $password, md5($username), 2000);

$query = "INSERT INTO `km_users` (username, password, email, name, surname, school) VALUES ('$username', '$password', '$email', '$name', '$surname', '$school')";
$mysqli->query($query);
echo "Succesfully registered. <a href='index.php'>Back to home.</a>";
$mysqli->close();
}
}
}
} else {
echo "Fill in all fields.";
}
}
Je laatste bericht quoten op het forum is niet nodig.

Je controleert op lijn 2 of er niet op de submit-knop is gedrukt, en dat is ook zo.
Ik vraag me af waarom dit in de code staat? En waarom wordt die foutmelding getoond?

Ik zou zo een constructie toepassen:

<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
// je formulier is verstuurd, zorg dat je hier de invoervalidaties controleert
// en daarna de afhandeling doet, om de gebruiker aan te melden.
} else {
// je formulier is niet verstuurd, toon het formulier.
}
?>
Zou je misschien dit kunnen toevoegen aan het script? Ik heb zelf amper kennis van php, dus ik wete niet waar ik dit moet plaatsen... :/ Alvast bedankt.
Dan kom ik hier op uit (untested):
<?php
require "../config.php";

if($_SERVER['REQUEST_METHOD']=="POST") {
    if (!empty($_POST["username"]) && !empty($_POST["password"]) && !empty($_POST["password2"]) && !empty($_POST["email"]) && !empty($_POST["name"]) && !empty($_POST["surname"]) && !empty($_POST["school"])){
      $mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);

      $username = $mysqli->real_escape_string($_POST["username"]);
      $password = $mysqli->real_escape_string($_POST["password"]);
      $password2 = $mysqli->real_escape_string($_POST["password2"]);
      $email = $mysqli->real_escape_string($_POST["email"]);
      $name = $mysqli->real_escape_string($_POST["name"]);
      $surname = $mysqli->real_escape_string($_POST["surname"]);
      $school = $mysqli->real_escape_string($_POST["school"]);
      if (!ctype_alpha($name) || !ctype_alpha($surname)){
        echo "Invalid name.";
      } else if (!ctype_alnum($username)){
        echo "Invalid username.";
      } else if ($password != $password2){
        echo "Passwords do not match.";
      } else if (!filter_var($email, FILTER_VALIDATE_EMAIL)){
        echo "Invalid email.";
      } else if (strlen($username) > 20){
        echo "Username too long (20+ characters)";
      } else {
        $query = "SELECT COUNT(*) FROM `km_users` WHERE `username` = '$username'";
        $result = $mysqli->query($query);
        $row = $result->fetch_row();
        if ($row[0] > 0){
          echo "Username already exists.";
        } else {
          $query = "SELECT COUNT(*) FROM `km_users` WHERE `email` = '$email'";
          $result = $mysqli->query($query);
          $row = $result->fetch_row();
          if ($row[0] > 0){
            echo "Email already exists.";
          } else {
            $password = hash_pbkdf2("sha256", $password, md5($username), 2000);

            $query = "INSERT INTO `km_users` (username, password, email, name, surname, school) VALUES ('$username', '$password', '$email', '$name', '$surname', '$school')";
            $mysqli->query($query);
            echo "Succesfully registered. <a href='index.php'>Back to home.</a>";
             $mysqli->close();
          }
        }
      }
    } else {
      echo "Fill in all fields.";
    }
} else {
?>

HIER JE FORMULIER!

<?php
}
?>

Wel zelf het formulier toevoegen!
Heb het aangepast. Staat dus ook op rapport.adventurenetwork.eu. En nu krijg ik een andere error... :/
Dat kan, misschien wel handig om te delen, met de eventuele bijbehorende relevante code.
Zo kunnen we je makkelijker helpen.

Reageren