php不显示mysql错误信息,关于mysql:PHP没有检测到错误但没有正确显示

博主在尝试创建一个PHP登录页面,遇到问题。代码显示在浏览器中而非正常执行。问题涉及PHP解释器未正确处理代码,可能是Apache服务未启动或PHP配置不正确。解决方案包括检查Apache和PHP是否已安装并启动,以及确认文件通过HTTP访问。经过讨论,问题最终定位为服务器配置错误,导致PHP代码未被正确解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我是PHP的新手,我有一个名为Login.php的文件,代码如下:

if(!isset($_POST['submit']))

{?>

Username:

Password:

Not Yet Registered? Register here.

}

else

{

require_once("db_const.php");

$mysqli = new MySQLi(DB_HOST, DB_USER, DB_PASS, DB_NAME);

if($mysqli->connect_errno)

{

echo"MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_errno}";

exit();

}

$username = $_POST['username'];

$password = $_POST['password'];

$sql ="select * from user where username like '{$username}' and password like '{$password}' limit 1";

$result = $mysqli->query($sql);

if($result->num_rows == 1)

{

echo"Invalid username/password";

}

else

{

echo"Login Success!";

}

}

?>

但是当我在浏览器中运行它时,它看起来有点像这样:

用户名:框

密码:框

按钮登录尚未注册? 在这里注册。 ("这里"是一个链接)

connect_errno){echo"MySQL error no {$ mysqli-> connect_errno}:{$ mysqli-> connect_errno}"; 出口(); } $ username = $ _POST ['username']; $ password = $ _POST ['password']; $ sql ="select * from user,其中用户名如'{$ username}',密码如'{$ password}'limit 1"; $ result = $ mysqli-> query($ sql); if($ result-> num_rows == 1){echo"用户名/密码无效"; } else {echo"登录成功!"; }>?>

我错过了什么或我的PHP版本不兼容? (版本5.5.9)

我顺便使用xampp。

看起来你还没有开始apache服务..

我会尝试phpinfo()来确保php正在运行。 它也应该是""

这不是一个编程问题。

您可能没有安装apache或php5或没有启动该服务

确保安装了这些软件包:安装了apache,php5,php5-mysql。 (*如何操作取决于系统,在ubuntu中你通过运行安装packeges:sudo apt-get install package name in centos:yum install package name)

确保启动Apache服务并且没有错误。通常它是service apache2 start或service httpd start或/etc/init.d/httpd restart

最后在测试脚本之前,创建一个仅包含作为内容的文件,并将其作为check_php.php保存在本地Web根目录中。在浏览器中以http://localhost/check_php.php打开文件,如果php正在运行,你将获得大量有用的信息,如果php不工作,你可能无法安装php。

你的逻辑错了

if($result->num_rows == 1)

{

echo"Invalid username/password";

}

else

{

echo"Login Success!";

}

if($ result-> num_rows == 1)表示用户名和密码正确。并打印"无效的用户名/密码";

哦对不起!我解决了问题后,我会改变你的建议。代码仍显示在浏览器中..谢谢顺便说一下!

看起来这个脚本没有被解释为PHP。如果您检查浏览器源(ctrl-u / cmd -u),您将看到发送到浏览器的PHP文件的全部内容。 ($mysqli->的>被解释为标记的结尾)

因此,您需要检查您的Web服务器以使其解释PHP。您是否通过HTTP访问该文件? (见这个答案)

毕竟你应该通过打开一个这样的简单脚本来验证PHP是否正在运行:

我该怎么办你说的话?我真的很抱歉。我是PHP的新手。

在浏览器栏中,是否显示http://或file://?它需要说http://

它说文件//。我怎么能把它变成http://?

例如,如果您有file:///c:/xamp/htdocs/Login.php,则应在浏览器中输入http://localhost/Login.php。

谢啦!得到它..服务器端有一些错误。但我想我能处理。回答了我的问题..对不起,我不能投票。需要更多的声誉才能做到这一点。顺便说一下,非常感谢你的配偶!

好吧,你应该能够通过复选标记接受答案。谢谢。

现在我能够运行这个。我得到两个警告。 Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\LawnMower\htdocs\login.php on line 17 ......最后...... Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\LawnMower\htdocs\login.php on line 17} MySQL error no 2002 : 2002

Php显然是第一个if语句没有按原样打印。

问题似乎是第6行中缺少的"PHP"标记。

因为你只有这么少的html,你可以设置header()并回显html,使其更简单。

echo"";

echo"

";

if(!isset($_POST['submit'])) {

echo"

";

echo"Username: ";

echo"Password: ";

echo"";

echo"Not Yet Registered? Register here.";

echo"

";

}

else

{

require_once("db_const.php");

$mysqli = new MySQLi(DB_HOST, DB_USER, DB_PASS, DB_NAME);

if($mysqli->connect_errno)

{

echo"MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_errno}";

exit();

}

$username = $_POST['username'];

$password = $_POST['password'];

$sql ="select * from user where username like '{$username}' and password like             '{$password}' limit 1";

$result = $mysqli->query($sql);

if($result->num_rows == 1)

{

echo"Invalid username/password";

}

else

{

echo"Login Success!";

}

}

echo"";

echo"";

?>

试了一下。但仍然在浏览器中显示代码..感谢顺便说一下

heya,我编辑你的代码使用回声而不是不断结束PHP部分

不,它不起作用。将此代码的内容粘贴到文件中并在本地打开。它显示了他的输出。

在我的XAMPP上它的工作原理是:D是用户转到localhost / script.php或者在浏览器中读取"c:/ example /.../ script.php"

更改

你错过了标签

试试这个 :

Username:

Password:

Not Yet Registered? Register here.

if(isset($_POST['submit']))

{

require_once("db_const.php");

$mysqli = new MySQLi(DB_HOST, DB_USER, DB_PASS, DB_NAME);

if($mysqli->connect_errno)

{

echo"MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_errno}";

exit();

}

$username = $_POST['username'];

$password = $_POST['password'];

$sql ="select * from user where username like '{$username}' and password like '{$password}' limit 1";

$result = $mysqli->query($sql);

if($result->num_rows == 1)

{

echo"Invalid username/password";

}

else

{

echo"Login Success!";

}

}

?>

仍然没有运气。代码仍然显示在浏览器中..它像php认为mysqli->终止代码。

我尝试了相同的代码..它对我来说很好..

尝试编辑的代码

你正在运行php文件吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值