我已经使用php构建了一个注册系统,它应该通过我的工作apache和mysql服务器与phpmyadmin连接。但是,当我点击“注册”旋钮,而不是打开/运行signup.inc.php时,它看起来像这样:
下面分别是:dbh.inc.php,signup.inc.php,index.met.interne.header.en.footer(主文件)和signup.inc.php。很抱歉没有这么多文件。
<?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>
<?php
ini_set("display_errors", 1);
ini_set("track_errors", 1);
ini_set("html_errors", 1);
error_reporting(E_ALL);
session_start();
if (isset($_POST['submit'])) {
include 'dbh.inc.php';
//Moet nog checken hoe ik die dengen moet noumen
$uid = mysql_real_escape_string($conn, $_POST['uid'];
$wachtwoord = mysql_real_escape_string($conn, $_POST['wachtwoord'];
if (empty($uid) || empty($pwd)) {
header("Location: ../index.php?login=empty");
exit();
} else {
$sql = "SELECT * FROM users WHERE buser_id='$uid' OR user_email='$kvk'";
$result + mysql_close($conn, $sql);
$resultCheck = mysql_num_rows($result);
if ($resultCheck < 1) {
header("Location: ../index.php?login=error");
exit();
} else {
if ($row = mysql_fetch_assoc($result)) {
//De-hashing sum password
$hashedPwdCheck = password_verify($wachtwoord, $row['buser_wachtwoord']);
if ($hashedPwdCheck == false) {
header("Location: ../index.php?login=error");
exit();
} elseif ($hashedPwdCheck == true) {
//Log in the user here
$_SESSION['u_id'] = $row['buser_id'];
$_SESSION['u_bedrijfsnaam'] = $row['buser_bedrijfsnaam'];
$_SESSION['u_kvk'] = $row['buser_kvk'];
$_SESSION['u_email'] = $row['buser_email'];
$_SESSION['u_uid'] = $row['buser_kvk'];
$_SESSION['u_merknaam'] = $row['buser_merknaam'];
header("Location: ../index.php?login=success");
exit();
}
}
}
}
} else {
header("Location: ../index.php?login=error");
exit();
}
n“signup.inc.php”但这就是它的样子:
答案 0 :(得分:0)
经过进一步调查,我们发现服务器配置有点偏,我们不得不做一些改动。重定向不使用HTTP协议,也不在打开时执行文件。
一旦弄清楚了,就没有建立与数据库的连接,因此mysqli_real_escape_string()
返回空值。为了解决这个问题,我们确保mysqli_connect()
中的所有信息都是正确的,但事实并非如此。更不用说所有文件中参数的顺序都是错误的(mysql / mysqli差异)。
最后,由于一些奇怪的原因,users
表在数据库中找不到,所以我们必须创建它并修复SQL查询,因为没有插入数据。
其余的是一些逻辑错误和类似的东西,但没有干净的方法来解释这一切。问题得到了成功解决。
数据正在正确发送,但是一些服务器配置错误和编程错误导致了所有描述的问题(还有一些问题)。