Для школьного проекта мне нужно создать сайт, который использует базу данных для выполнения запросов или систему входа в систему.
Система входа в систему полностью работает, но когда пользователь, например, пытается войти с именем пользователя, которого нет в базе данных, появится всплывающее сообщение о том, что это невозможно. Однако после этого (то есть после первой отправки) всякий раз, когда я нажимаю кнопку обновления страницы, оповещение будет появляться снова без того, чтобы пользователь фактически отправлял какую-либо информацию формы. Так что я знаю, в чем проблема, но я просто не вижу, где мне нужно сбросить () мои переменные (или что-то еще), но, по крайней мере, мне нужно, чтобы веб-сайт не показывал предупреждение, если пользователь не отправил ничего .
Вот код, и я надеюсь, что кто-то видит, где проблема:
PHP код:
<?php
session_start();
if (!isset($_SESSION["username"])) {
$_SESSION["username"]= "No User";
}
if(isset($_POST["reg"]))
{
$ingevoerdgebruikersnaam = $_POST ["leerlingid"];
$ingevoerdwachtwoord = $_POST ["wachtwoord"];
if (!$db = mysql_connect ('localhost', 'havo5groep2', 'TpWsj7WG'))
{
$boodschap = "not ok";
}
else
{
$boodschap = "<script language='javascript'> alert('Gebruiker succesvol geregistreerd.')</script>";
$database = mysql_select_db("havo5groep2");
if (!$resultaat = mysql_query (" SELECT leerlingid, wachtwoord FROM po WHERE leerlingid = '$ingevoerdgebruikersnaam'", $db))
{
echo " Het lukte niet om de query uit te voeren";
}
else
{
if (mysql_num_rows($resultaat) == 0)
{
$resultaat = mysql_query ("INSERT INTO po (`leerlingid`, `wachtwoord`) VALUES ('$ingevoerdgebruikersnaam', '$ingevoerdwachtwoord')", $db);
}
else
{
$boodschap = "Deze gebruikersnaam is al in gebruik.";
}
}
}
echo $boodschap;
}
else
{
if(isset($_POST["login"]))
{
$ingevoerdgebruikersnaam = $_POST ["leerling"];
$ingevoerdwachtwoord = $_POST ["ww"];
if (!$db = mysql_connect ('localhost', 'havo5groep2', 'TpWsj7WG'))
{
$boodschap = "not ok";
}
else
{
$boodschap = "ok";
$database = mysql_select_db("havo5groep2");
if (!$resultaat = mysql_query (" SELECT leerlingid, wachtwoord FROM po WHERE leerlingid = '$ingevoerdgebruikersnaam'", $db))
{
echo " Het lukte niet om de query uit te voeren";
}
else
{
if (mysql_num_rows($resultaat) == 0)
{
//echo "De gebruikersnaam $ingevoerdgebruiker is niet bekend !";
echo "<script> alert('De ingevoerde gebruikersnaam is niet bekend!')</script>";
}
else
{
while (list($opgehaaldgebruikersnaam, $opgehaaldwachtwoord) =
mysql_fetch_row($resultaat))
{
if ($ingevoerdwachtwoord == $opgehaaldwachtwoord)
{
$_SESSION["username"]= $ingevoerdgebruikersnaam;
header("Location: userpage.php");
//echo "Inloggen voor gebruiker $ingevoerdgebruiker is gelukt!";
}
else
{
//echo "Wachtwoord $ingevoerdWachtwoord bij gebruiker $ingevoerdgebruiker niet correct";
echo "<script> alert('Wachtwoord is incorrect!')</script>";
}
}
}
}
}
}
}
Моя форма HTML-код:
<form action="index.php" method="post">
<input type= "text" name="leerlingid" placeholder="Username" required>
<input type= "password" name="wachtwoord" placeholder="Password" required>
<input type="submit" name="reg" value="Register">
</form>
<form action="index.php" method="post">
<input type= "text" name="leerling" placeholder="Username" required>
<input type= "password" name="ww" placeholder="Password" required>
<input type="submit" name="login" value="Login">
Таким образом, в основном информацию, которая была помещена в переменные PHP, необходимо очистить, чтобы при запуске кода PHP во время обновления страницы он не использовал информацию, которой больше нет внутри формы.
EDIT:
Чтобы он работал, вам нужно использовать заголовок
Итак, после того, как вы выполните POST, я отправляю пользователя на другую страницу, например:
header("Location: whatsuppage.php");
Эта страница сообщит пользователю, была ли форма правильной или нет, и на основании этого отправляет пользователя на правильную страницу. это приведет к удалению данных поста, когда пользователь переключается на другую страницу с исправлением обновления
Рабочий код выглядит примерно так:
if (!$resultaat = mysql_query (" SELECT gebruikersid, wachtwoord, werknemer FROM gebruikersdatabase WHERE gebruikersid = '$ingevoerdgebruikersnaam'", $db))
{
echo " Het lukte niet om de query uit te voeren";
}
else
{
if (mysql_num_rows($resultaat) == 0)
{
$_SESSION["whatsup"] = 2;
header("Location: whatsuppage.php");
// Empty result table
}
else
{
while (list($opgehaaldgebruikersnaam, $opgehaaldwachtwoord, $werknemer) = mysql_fetch_row($resultaat))
{
if ($ingevoerdwachtwoord == $opgehaaldwachtwoord)
{
$_SESSION["username"]= $ingevoerdgebruikersnaam;
$_SESSION["werknemer"] = $werknemer;
header("Location: userpage.php");
// Send to header location after the post is done
}
else
{
//echo "Wachtwoord $ingevoerdWachtwoord bij gebruiker $ingevoerdgebruiker niet correct";
$_SESSION["whatsup"] = 3;
header("Location: whatsuppage.php");
//echo "Wachtwoord is incorrect!";
}
}
}
}