【发布时间】:2016-02-25 17:15:19
【问题描述】:
我不断收到这个错误,我在修复它时遇到了问题,我不擅长 PHP,因为我还在学习。我正在填写注册表并使用 PHP 5.6。我已经查看了有关旧问题的其他答案,但没有成功。
这是我的代码:
<?php
session_start();
if (isset($_SESSION['user']) != "") {
header("Location: index.html");
}
include_once 'dbconnect.php';
if (isset($_POST['signup'])) {
$fname = mysqli_real_escape_string($_POST['fullname']);
$tphone = mysqli_real_escape_string($_POST['telephone']);
$uemail = mysqli_real_escape_string($_POST['email']);
$urole = mysqli_real_escape_string($_POST['role']);
$upass = md5(mysqli_real_escape_string($_POST['upass']));
$uname = trim($uname);
$tphone = trim($tphone);
$email = trim($email);
$urole = trim($role);
$upass = trim($upass);
// email exist or not
$query = "SELECT email FROM users WHERE email='$uemail'";
$result = mysqli_query($query);
$count = mysqli_num_rows($result); // if email not found then register
if ($count == 0) {
if (mysqli_query("INSERT INTO users(firstname,telephone,email,role,pass) VALUES('$fname','$tphone','$uemail','$urole',$upass')")) {
?>
<script>alert('successfully registered ');</script>
<?php
} else {
?>
<script>alert('error while registering you...');</script>
<?php
}
} else {
?>
<script>alert('Sorry Email ID already taken ...');</script>
<?php
}
}
?>
我不断遇到的错误是:
警告:mysqli_real_escape_string() 需要 2 个参数,1 个在第 12 行的 C:\Apache24\htdocs\Timewise\landing\login.php 中给出
警告:mysqli_real_escape_string() 需要 2 个参数,1 个在第 13 行的 C:\Apache24\htdocs\Timewise\landing\login.php 中给出
警告:mysqli_query() 需要至少 2 个参数,1 个在 C:\Apache24\htdocs\Timewise\landing\login.php 第 18 行给出
警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,在第 19 行的 C:\Apache24\htdocs\Timewise\landing\login.php 中给出 null
警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,在第 21 行的 C:\Apache24\htdocs\Timewise\landing\login.php 中给出 null
你能帮我解决这个问题吗,我需要知道如何实际解决这个问题。
【问题讨论】:
-
DO RTM 的 php.net/manual/en/mysqli.real-escape-string.php - php.net/manual/en/mysqli.query.php - 人们不再使用 Google 了吗?!
-
if (isset($_SESSION['user']) != "") {嗯,也许你也应该阅读isset的手册。 -
肯定会给出误报
if (isset($_SESSION['user']) != "")- 语法是:if isset AND equals to,而不是if isset equals to -
如果您打算使用 md5,请不要。 30 多年来,桥下流了很多水。使用
password_hash()。 -
@Qirel 所以从 mysli_real_escape 手册上收集的内容我应该这样说,> string mysqli_real_escape_string ( mysqli $link , string $escapestr )