让我开始说我对此非常陌生。我正在尝试开发一款没有真实体验的移动应用和网站。有可能是我错过了或我做错了,但我似乎无法指出问题在哪里。在创建我自己的之前,我遵循了一个视频指南(演示文件下载到我的电脑),但似乎无法连接到我的数据库。我也复制了这些演示文件,并将它们放入我的代码中,但它仍然让我陷入了一个部分。我正在使用程序MAMP进行连接,并使用Brackets作为代码。下面是我的会议文件:通过PHP连接mySQL db
数据库连接 -
<?php
$dbServername = "localhost";
$dbUsername = "root";
$dbPassword = "root";
$dbName = "Login System";
$con = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);
我的注册文件 -
<?php
if (isset($_POST['submit'])) {
include_once 'dbh.inc.php';
$first = mysqli_real_escape_string($conn, $_POST['first']);
$last = mysqli_real_escape_string($conn, $_POST['last']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$uid = mysqli_real_escape_string($conn, $_POST['uid']);
$pwd = mysqli_real_escape_string($conn, $_POST['pwd']);
//Error handlers
//Check for empty fields
if (empty($first) || empty($last) || empty($email) || empty($uid) || empty($pwd)) {
echo <h2>Please fill in all fields;
exit();
} else {
//Check if input characters are valid
if (!preg_match("/^[a-zA-Z]*$/", $first) || !preg_match("/^[a-zA-Z]*$/", $last)) {
header("Location: ../signup.php?signup=invalid");
exit();
} else {
//Check if email is valid
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
header("Location: ../signup.php?signup=email");
exit();
} else {
$sql = "SELECT * FROM users WHERE user_uid='$uid'";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
header("Location: ../signup.php?signup=usertaken");
exit();
} else {
//Hashing the password
$hashedPwd = password_hash($pwd, PASSWORD_DEFAULT);
//Insert the user into the database
$sql = "INSERT INTO users (first, last, email, uid, pwd) VALUES ('$first', '$last', '$email', '$uid', '$hashedPwd');";
mysqli_query($conn, $sql);
header("Location: ../signup.php?signup=success");
exit();
}
}
}
}
} else {
header("Location: ../signup.php");
exit();
}
?>
我的登录表
<?php
include_once 'header.php';
?>
<section class="main-container">
<div class="main-wrapper">
<h2>Signup</h2>
<form class="signup-form" action="includes/signup.inc.php" method="POST">
<input type="text" name="first" placeholder="Firstname">
<input type="text" name="last" placeholder="Lastname">
<input type="text" name="email" placeholder="E-mail">
<input type="text" name="uid" placeholder="Username">
<input type="password" name="pwd" placeholder="Password">
<Button type="submit" name="submit">Sign up</Button>
</form>
</div>
</section>
<?php
include_once 'footer.php';
?>
我已将“root”密码重置为“root”,并确保可以使用该密码登录。如果任何字段为空,则检查错误列表的文档返回到URL中带有“= empty”字样的前一页。无论我在我的字段中输入什么信息,它都不会将信息推送到数据库中,或者我错误地映射了我的字段,因此其中一个数据库字段为空。
任何帮助将不胜感激。正如我在本文开头所说的那样,我对此非常陌生。你可能会看到一些令人难以置信的明显而有些愚蠢的东西......你被警告过!我正在创建一个允许用户登录的移动应用程序和网站。登录尝试将引用我的本地主机数据库,以确认用户不存在或用户未使用。
谢谢!
:也许variabl e不匹配?我在你的数据库连接中看到'$ con',但是当试图用于转义函数和查询时,有'$ conn'(一个额外的'n')。 –
我很感谢你看看。我确实用$ conn尝试过,但这也不起作用。我用$ con进行了测试,但没有奏效,但我忘了将它改回来。 – Palmeeze
你确定连接成功吗?让程序帮助你发现什么是错的。尝试在连接后(或包含行后)添加以下内容:'if(!$ conn){echo'没有连接:'。 mysqli_connect_error(); }'...确保首先将'$ con'改回到'$ conn'。 –