未定义变量:第14行C:\xampp\htdocs\CRUD\login.php中的con
您可以将其设置为函数中的全局值,也可以将其传递到参数中以访问它未定义变量:第14行C:\xampp\htdocs\CRUD\login.php中的con,php,Php,您可以将其设置为函数中的全局值,也可以将其传递到参数中以访问它 <?php $con = mysqli_connect('localhost', 'root', '', 'crud_db'); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } function signin() {
<?php
$con = mysqli_connect('localhost', 'root', '', 'crud_db');
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
function signin()
{
$session_start;
if (!empty($_POST['email']))
{
echo "not empty";
$query = "SELECT * FROM 'employee' where email= '$_POST ['email']' AND password= '$_POST ['pwd']'";
$result = mysqli_query($con, $query);
$row = mysqli_fetch_array($result);
if (!empty($row['email']) AND !empty($row['password'])) {
echo "successfully login";
} else {
echo "login fail";
}
}
}
if (isset($_POST['submit']))
{
signin();
}
?>
与问题无关,但:
$con = mysqli_connect('localhost', 'root', '', 'crud_db');
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
function signin($con)
{
session_start();
if (!empty($_POST['email']))
{
echo "not empty";
$query = "SELECT * FROM employee where email= '$_POST ['email']' AND password= '$_POST ['pwd']'";
$result = mysqli_query($con, $query);
$row = mysqli_fetch_array($result);
if (!empty($row['email']) AND !empty($row['password'])) {
echo "successfully login";
} else {
echo "login fail";
}
}
}
if (isset($_POST['submit']))
{
signin($con);
}
?>
这是行不通的
$query = "SELECT * FROM 'employee' where email= '$_POST ['email']' AND password= '$_POST ['pwd']'";
将工作,但它仍然是sql注入易受攻击的
读用不同的php脚本编写数据库端和函数端,就像这样,它可能会工作
$query = "SELECT * FROM 'employee' where email= '{$_POST ['email']}' AND password= '{$_POST['pwd']}'";
function.php
请提供代码请清理代码,太可怕了+1查找错误,但您应该建议将$con作为参数传递,而不是全局-1:在函数中将其声明为全局变量可能会解决问题,但这是一个混乱的解决方案。更好的方法是将其作为参数传递。有时,全局变量是正确的解决方案,但在这种情况下,不应依赖于在全局范围内初始化变量的假设-应将其显式声明为全局变量,即使预期范围是全局的,多亏了veerendra,它仍然有效。你能帮我解决这个错误吗?mysqli_fetch_array()希望参数1是mysqli_result,C:\xampp\htdocs\CRUD\login.php中的第行中给出了null15@AshuChauhan我正在编辑答案,如果答案对您有帮助,请接受:)我认为错误应该现在解决,因为您现在正在获得连接,所以查询将返回result@symcbean是 啊我也不喜欢环球队,但是-1有点苛刻,尤其是当他解决了问题的时候
<?php
$con = mysqli_connect('localhost', 'root', '', 'crud_db');
?>
function.php
<?php
include('database.php');
function signin()
{
global $con;
session_start();
if (!empty($_POST['email']))
{
echo "not empty";
$query = "SELECT * FROM employee where email= '$_POST ['email']' AND password= '$_POST ['pwd']'";
$result = mysqli_query($con, $query);
$row = mysqli_fetch_array($result);
if (!empty($row['email']) AND !empty($row['password'])) {
echo "successfully login";
} else {
echo "login fail";
}
}
}
?>