打开php文件并传递php变量

时间:2013-06-14 22:15:55

标签: php variables

我是PHP的新手 我有html页面需要用户输入聊天页面的用户名和密码

html page
<!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 content="text/html; charset=utf-8" http-equiv="Content-Type" />
<link rel="stylesheet" type="text/css" href="Registerstyle.css">
<title>اسجل دخولك الى الشات</title>
</head>

<body>
    <div id = "page">
        <div id = "header">
        </div>
        <div id = "container" dir = rtl>
            <div id = "menu">
                <ul>
                    <li><a href="#">تسجيل الدخول</a></li>
                    <li><a href="#">استرجاع كلمة المرور</a></li>
                    <li><a href="#">######</a></li>
                    <li><a href="#">######</a></li>
                </ul>
            </div>
            <div id = "midofcontainer">     
            <div id = "text">
                اسم المستخدم <br><br>
                كلمة المرور
            </div>      
            <div id = "form">
                <form name="log" method="GET" action="login.php">
                <input type="text" name="usr" id="usr" style="width: 242px"></input><br><br>
                <input type="password" name="pwd" style="width: 242px"></input><br><br>
                <input type="submit" style="width: 78px" value="تسجيل الدخول">
                <input type="reset" style="width: 78px" value="مسح">
            </div>
            </div>
        </div>
        <div id = "footer">
        </div>
    </div>    
</body>
</html>

这是我的php文件,它将检查来自html的值taht

<?php
    require 'connect.inc.php';

    $usr = $_GET['usr'];
    $pwd = $_GET['pwd'];
    $table_name = 'user';
    $query = "SELECT * FROM $table_name" ;

    $query_run = mysql_query($query);
        while($rows = mysql_fetch_array($query_run))
        {

            if ($rows['username'] == $usr and  $rows['password'] == $pwd)
            {

                include ('chatArea.php');
                exit();
            }                
            else
                include_once ('log.html');            
        }       
?> 

现在我想要的是if ($rows['username'] == $usr and $rows['password'] == $pwd) 返回true它打开一个新的php页面并将用户名传递给页面 我希望能让我的问题清楚,抱歉我的英语不好

4 个答案:

答案 0 :(得分:2)

  1. 使用PDO代替mysql_*函数。
  2. 在将变量放入sql查询之前,请使用mysql_real_escape_string()来防止SQL注入。
  3. 使用POST方法代替GET进行登录操作。
  4. 了解SESSIONS。 Google提供了一个很好的教程,您也可以点这个链接: Creating a simple login-logout session using PHP

    但在您的情况下,使用 mysql_num_rows 并更改sql查询,如下所示:

    require 'connect.inc.php';
    $usr = mysql_real_escape_string($_GET['usr']);
    $pwd = mysql_real_escape_string($_GET['pwd']);
    $table_name = 'user';
    $query = "SELECT * FROM $table_name where username='$usr' and password='$pwd'" ;
    $query_run = mysql_query($query);
    if(mysql_num_rows($query_run) == 1){
    
       include ('chatArea.php');
       exit();
    }                
    else {
        include_once ('log.html'); 
    }          
    

答案 1 :(得分:1)

要回答您的问题,您需要使用会话,这样您只需要进行一次身份验证,并且可以在后续页面中检查用户是否已登录并且您已存储用户名,以便您可以在需要时使用它。然后,您将使用header重定向而不是include

<强>的login.php

<?php
session_start();

...

if (user_found_condition)
{
  $_SESSION['username'] = $usr;
  header('Location: /url/to/chatArea.php');
  exit();
}

然后在每个需要登录的页面中,您都可以开始:

<?php
session_start();
if (!isset($_SESSION['username']))
{
  // redirect to login
}

// use $_SESSION['username'] wherever you want to display the username

除此之外,您不应该从数据库中获取所有行以匹配一个用户,只需在查询中添加WHERE条件。

您还应该切换到PDO或mysqli和预备语句,因为mysql_*函数已弃用。

答案 2 :(得分:1)

您需要在表单上使用发布而非获取,因为用户和网址中的密码存在很大的安全风险。

    $usr = $_GET['usr'];
    $pwd = $_GET['pwd'];
    $table_name = 'user';
    $query = "SELECT username,password FROM $table_name WHERE username = '".mysql_real_escape_string($usr)."' limit 1";

    $query_run = mysql_query($query);
        while($rows = mysql_fetch_array($query_run))
        {

            if ($rows['username'] == $usr and  $rows['password'] == $pwd)
            {

                include ('chatArea.php');
                exit();
            }                
            else
                include_once ('log.html');            
        }  

}

答案 3 :(得分:0)

您可以像这样验证用户名和密码

<?php
require 'connect.inc.php';

$usr = $_GET['usr'];
$pwd = $_GET['pwd'];
$table_name = 'user';
$query = "SELECT * FROM $table_name where username = '$usr' and password = '#pwd'" ;

$query_run = mysql_query($query);
$rows = mysql_fetch_array($query_run))
if (!isempty($rows)) {
    include ('chatArea.php');
    exit();
} else {
    include_once ('log.html');            
}       
?>