-1

我已经用 php 构建了一个注册系统,它应该通过我的工作 apache 和 mysql 服务器与 phpmyadmin 连接。但是,当我单击“注册”旋钮时,不是打开/运行 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>

<?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" 但它是这样的:

在此处输入图像描述

4

1 回答 1

0

经过进一步调查,我们发现服务器配置有点不对劲,我们不得不做一些改变。重定向未使用 HTTP 协议,也未在打开时执行文件。

一旦我们弄清楚了,与数据库的连接就没有建立起来,因此mysqli_real_escape_string()返回了空值。为了解决这个问题,我们确保其中的所有信息mysqli_connect()都是正确的,而事实并非如此。更不用说所有文件中的参数顺序错误(mysql/mysqli 不同)。

最后,由于某种奇怪的原因,users在数据库中找不到该表,因此我们不得不创建它并修复 SQL 查询,因为没有插入数据。

其余的是一些逻辑错误和类似的东西,但这里没有清晰的方法来解释这一切。问题已成功解决。

TL;博士

数据已正确发送,但一些服务器配置错误和编程错误导致了所描述的所有问题(以及其他一些问题)。

于 2017-12-31T15:19:52.043 回答