Я построил систему регистрации с php, и она должна соединяться с phpmyadmin через мои рабочие серверы apache и mysql. Но когда я нажимаю ручку «регистрации», вместо того, чтобы открывать / запускать signup.inc.php, это выглядит так:
Ниже находятся соответственно: dbh.inc.php, signup.inc.php, index.met.interne.header.en.footer (основной файл) и signup.inc.php. Извините за ULing так много файлов.
<?php
$dbServername = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbName = "login.system";
$conn = mysql_connect($dbServername, $dbUsername, $dbPassword, $dbName);
<?php
if (isset($_POST['submit'])) {
include_once 'dbh.inc.php';
$uid = mysql_real_escape_string($conn, $_POST['uid']);
$kvk = mysql_real_escape_string($conn, $_POST['kvk']);
$bedrijfsnaam = mysqli_real_escape_string($conn, $_POST['bedrijfsnaam']);
$merknaam = mysql_real_escape_string($conn, $_POST['merknaam']);
$email = mysql_real_escape_string($conn, $_POST['email']);
$wachtwoord = mysql_real_escape_string($conn, $_POST['wachtwoord']);
//Error handlers
//Check for empty fields
if (empty($kvk) && empty($bedrijfsnaam) ) {
header("Location: ../signup.php?signup=empty");
exit();
} else {
//Check if input characters are valid
if (!preg_match("/^[0-9]*$/", $kvk)) || (!preg_match("/^[a-zA-Z]*$/", $bedrijfsnaam)) {
header("Location: ../signup.php?signup=invalid");
} else {
//Check if email is valid
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
header("Location: ../signup.php?signup=invalid.email");
exit();
}
else {
//Hashing the password
$hashedPwd = password_hash($pwd, PASSWORD_DEFAULT);
//Insert the user into the database [deze moeten we nog af chappen zodat alles khlopt]
$sql = "INSERT INTO users (buser_kvk, buser_kvk, buser_bedrijfsnaam, buser_merknaam, buser_email, buser_wachtwoord) VALUES
('$bedrijfsnaam', '$merknaam', '$email', '$kvk', '$uid', '$hashedPwd');";
mysql_query($conn, $sql);
header("Location: ../signup.php?signup=success");
exit();
}
}
}} else {
header("Location: ../signup.php");
exit();
}
<?php
include 'includes/signup.inc.php'
session_start();
?>
<?php
if (isset($_SESSION['u_id'])) {
echo '<form action="includes/logout.inc.php" method="POST">
<button type="submit" name="submit">Logout</button>
</form>';
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Registratie - Namei voor bedrijven</title>
<link rel="stylesheet" type="text/css" href="stijltje.css">
</head>
<body>
<header>
<nav>
<div class="wrapper">
<ul>
<li><a href="index.php">Namei</a></li>
</ul>
<div class="nav-login">
<a href="signup.php">Inloggen</a>
</div>
</div>
</nav>
</header>
<section class="main-container">
<div class="wrapper">
<h2>Registratie</h2>
<form class="Registratie-formulier" action="includes/signup.inc.php" method="POST">
<input type="ciphers" name="kvk" placeholder="KvK">
<input type="text" name="bedrijfsnaam" placeholder="Geregistreerde bedrijfsnaam">
<input type="text" name="merknaam" placeholder="Merknaam">
<input type="text" name="email" placeholder="E-mail">
<input type="password" name="wachtwoord" placeholder="wachtwoord">
<button type="submit" name="submit"></button>
</form>
</div>
</section>
</body>
</html>
После дальнейшего расследования мы выяснили, что конфигурация сервера немного отключена, и нам пришлось внести некоторые изменения. Перенаправления не использовали протокол HTTP и не выполняли файлы при открытии.
Как только мы выяснили это, соединение с базой данных не было установлено, следовательно mysqli_real_escape_string()
возвращал пустые значения. Чтобы решить эту проблему, мы убедились, что вся информация в mysqli_connect()
было правильно, чего не было. Не говоря уже о том, что порядок параметров был неправильным (различия mysql / mysqli) во всех файлах.
Наконец, по какой-то странной причине, users
Таблица нигде не была найдена в базе данных, поэтому нам пришлось создать ее и исправить запрос SQL, потому что данные не вставлялись.
Остальные были некоторые логические ошибки и тому подобное, но нет никакого чистого способа объяснить все это здесь. Проблемы были успешно решены.
Данные отправлялись правильно, но некоторые неправильные конфигурации сервера и ошибки программирования вызвали все проблемы, которые были описаны (и некоторые другие по пути).
Других решений пока нет …