我一直在尝试通过PHP创建一个登录系统。当我尝试运行它时,($errors as $error)
中的所有代码都显示在实际网页上。我一直试图测试它几个小时。
注意:当我将>
更改为<
时,它在if(count($errors) > 0){
中正常工作
但即便如果密码/用户名出错,他们仍然可以按回车键。
请帮忙!代码已提供。
<?
mysql_pconnect('localhost', 'root', '');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<?php
if(!$_POST['submit']) {
?>
<form action="index.php" method="post">
<table border="1">
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="username" />
</td>
</tr>
<tr>
<td>
Password:
</td>
<td>
<input type="text" name="password" />
</td>
</tr>
<tr>
<td>
Retype Password:
</td>
<td>
<input type="text" name="passwordconf" />
</td>
</tr>
<tr>
<td>
Email Address:
</td>
<td>
<input type="text" name="email" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Create User" name="submit" />
</td>
</tr>
</table>
</form>
<?php
} else {
$username = $_POST['username'];
$password = $_POST['password'];
$passwordconf = $_POST ['passwordconf'];
$email = $_POST ['email'];
$errors = array();
if(!$username) {
$errors[1] = "Please enter a username.";
}
if(!$password) {
$errors[2] = "Please enter a password.";
}
if(!$passwordconf) {
$errors[3] = "Please retype password.";
}
if(!$email) {
$errors[4] = "Please enter an email address.";
}
if($password != $passwordconf) {
$errors[5] = "Passwords do not match.";
}
if(count($errors) > 0){
foreach($errors as $error) {
echo "$error<br>";
}
} else {
mysql_query("INSERT INTO 'users' . 'user_info'
('username', 'password', 'email', 'user_admin_level')
VALUES ('".$username."', '".md5($password)."', '".$email."', '1');");
}
}
?>
</body>
</html>
答案 0 :(得分:1)
如果没有提供Web服务器的PHP文件,您就无法调用它们。 PHP是&#34; PHP Hyptertext Preprocessor&#34;的首字母缩写,这意味着需要一个预处理器来解释这些文件。
尝试使用XAMPP,这是一个轻量级服务器系统,附带apache web-server,mySQL-server以及PHP和PERL支持。
使用XAMPP时,已将php文件放入XAMPP安装的htdocs文件夹中,然后调用http://localhost/yourscript.php
。
答案 1 :(得分:1)
@Rick Roll'd
像这样打开你的php页面
http://localhost/path_to_page/LoginSystem.php
不要将您的页面存储在Desktop
目录中的www/htdocs
保存php页面。
答案 2 :(得分:1)
你不能像那样运行PHP。您需要Web服务器来运行PHP。请按照以下步骤操作
使用XAMPP非常简单。请按照以下步骤进行操作 -
http://localhost/myprograms/test.php
您的浏览器现在将执行脚本并显示输出。
答案 3 :(得分:1)
来自URL:file:/// C:/Users/User/Desktop/LoginSystem.php您正在访问一个不会被PHP解释器(wamp或lamp)解释的文件。
你需要安装一个php服务器(wamp,xamp或Lamp)并将你的文件放在各自的webserver目录中,然后通过这样输入url来执行你的文件:
localhost/LoginSystem.php
希望这会有所帮助
答案 4 :(得分:0)
尝试显示$ errors和大小( print_r($ errors); echo count($ errors); )以查看它是否真的没有内容。
此外我还会将 if(!$ username)更改为 if(empty($ username)) +接受userinput作为$ var = $ _POST ['varname']是非常糟糕的做法。
此外,数组始终以键0开头(您手动将其指定给键1)。要简单地向元素添加元素,请使用 $ errors [] =“您忘记了某些内容”;
我个人建议你从像Drupal / cakePHP / phpBB /...
这样的项目中选择一个登录/会话类。答案 5 :(得分:0)
也许您应该首先放置HTML代码。空字段并不总是错误。例如:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<form action= "<?php $_SERVER[ 'PHP_SELF' ] ?>" method="post">
<table border="1">
<tr>
<td>
Username: </td>
<td>
<input type="text" name="username" />
</td>
</tr>
<tr>
<td>
Password: </td>
<td>
<input type="text" name="password" />
</td>
</tr>
<tr>
<td>
Retype Password: </td>
<td>
<input type="text" name="passwordconf" />
</td>
</tr>
<tr>
<td>
Email Address: </td>
<td>
<input type="text" name="email" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Create User" name="submit" />
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
if ( isset ( $_POST[ 'submit' ] ) ) {
if ( $_POST[ 'username' ] ) {
$username = $_POST[ 'username' ];
$username = trim( $username) ; // Remove spaces
}
else {
echo "Please enter a username.<br /><br />";
die;
}
// And so on....
mysql_pconnect( 'localhost', 'root', '' );
mysql_query( "INSERT INTO 'users' . 'user_info'
('username', 'password', 'email', 'user_admin_level')
VALUES ('" . $username . "', '" . md5( $password ) . "', '" . $email . "', '1');" );
}
?>
您可以按照建议测试它安装本地服务器,或者将文件上传到ISP服务器。
希望这有帮助。