我是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文件吗?