PHP-код отображается в браузере - PullRequest
0 голосов
/ 24 января 2012

Я написал скрипт php для входа в систему пользователя, но вместо отображения результата отображается весь скрипт. Я указал ссылку на файл .php в качестве действия для формы входа.

Я использую xampp с запущенным php и mysql, мне нужно что-нибудь еще?

код:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />

  <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame 
       Remove this if you use the .htaccess -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

  <title>Ch</title>
  <meta name="description" content="education,India,College search in india,score evaluator" />
  <meta name="author" content="RAJATEJAS" />
  <meta name="viewport" content="width=device-width; initial-scale=1.0" />

  <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
  <link rel="shortcut icon" href="/favicon.ico" />
  <link rel="apple-touch-icon" href="/apple-touch-icon.png" />

  <style type = "text/css">
    user_login , input
    {
        display = inline;   
    }   
  </style>

</head>

<body>
  <div>
    <header>
      <h1>Ch</h1>
    </header>

    <nav>
      <p><a href="/">Home</a></p>
      <p><a href="/contact">Contact</a></p>
    </nav>

    <div class = "user_login_form">
        <form action = "chalo_login.php" method="post">
            <label>Username:</label><input id = "username" type = "text" name = "username" autofocus placeholder="Enter Username"/><br />
            <label>Password:</label><input id = "password" type = "password" name = "password" placeholder="Enter Password"/><br />
            <input name = "submit" type = "submit" value = "Login" />
        </form>   
    </div>


    <footer>
     <p>&copy; Copyright  by RAJATEJAS</p>
    </footer>
  </div>
</body>
</html>

<?php
    session_start();
    $_POST['username'];
    $_POST['password'];

    if ($username&&$password)
    {
        $connect = mysql_connect("localhost","root","");
        mysql_select_db("phplogin") or die("could not find database");
        $query = mysql_query(SELECT * FROM users WHERE username = "$username");
        $numrow = mysql_num_rows($query);
        if ($numrows !=0)
        {
            while ($row = mysql_fetch_assoc($query))
            {
                $dbusername = $row["username"];
                $dbpassword = $row["password"];
            }
            if($username == $dbusername && $password == $dbpassword)
            {
                echo "You are logged in! ;
                <a href ="member.php">Click here</a>";
                $_SESSION["username"] = $dbusername;

            }
            else
            {
                echo "Incorrect password";
            }
        }else{die("Account does not exists");}
    } 
    else 
    {
    die ("Please enter details");   
    }

?>

Ответы [ 2 ]

1 голос
/ 24 января 2012

В вашем коде есть несколько ошибок, но я не знаю, являются ли они причиной ваших проблем.

Во-первых, в вашем CSS user_login должно быть #user_login для выбора элементов с идентификатором "user_login". Тогда display = inline; должно быть display: inline;.

В вашем PHP ...

$_POST['username'];
$_POST['password'];

... ничего не делает. Я думаю, что вы должны иметь

$username = $_POST['username'];
$password = $_POST['password'];

И как упоминал Итан в комментариях выше, ваши кавычки испорчены:

echo "You are logged in! ;
<a href ="member.php">Click here</a>";

... вероятно должно быть:

echo "You are logged in! <a href =\"member.php\">Click here</a>";

(Избегайте кавычек внутри кавычек, используя обратную косую черту).

Исправьте эти ошибки и посмотрите, сработает ли это ...

Также: как сказано выше в LeleDumbo, убедитесь, что страница загружается через Apache, а не открывается как файл. URL должен начинаться с чего-то вроде 127.0.0.1 или localhost. Если нет, просто введите 127.0.0.1 в адресную строку и найдите файл в появившемся списке.


Еще одна ошибка - ваш оператор SELECT должен быть строкой:

$query = mysql_query("SELECT * FROM users WHERE username = '$username'");
0 голосов
/ 24 января 2012

Переменные $ username и $ password не назначены

if(isset($_POST['username'])
{
$username=$_POST['username'];
}
if(isset($_POST['password'])
{
$password=$_POST['password'];
}

и выберите правильную базу данных в комментарии выше, вы говорите, что имя вашей базы данных также «пользователи», но вы выбрали «phplogin»

...