PHP登录系统在网页上显示代码

时间:2012-09-18 05:59:56

标签: php mysql html css

我一直在尝试通过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>

6 个答案:

答案 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非常简单。请按照以下步骤进行操作 -

  1. 安装并运行XAMPP应用程序。打开Apache&amp; MySQL(如果您的应用程序需要数据库)通过它提供服务。
  2. 点击XAMPP控制面板上的“浏览”按钮 - 在打开的窗口中,检查htdocs文件夹。
  3. htdocs文件夹是所有PHP脚本应该存在的文件夹。这是Apache指向的文件夹。
  4. 您可能希望在/ htdocs /文件夹中创建一个单独的文件夹来保存所有PHP程序。我们称之为'myprograms'。
  5. 将您的php脚本保存在/ htdocs / myprograms文件夹中。 (例如test.php)
  6. 现在,启动您的网络浏览器并输入以下地址:http://localhost/myprograms/test.php
  7. 您的浏览器现在将执行脚本并显示输出。

答案 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服务器。

希望这有帮助。