在第一次点击时提交不在PhP中工作的按钮,但它第二次工作

时间:2015-10-26 13:22:59

标签: php

<?php include 'header.php';

?>
<div id="body">
<form name="form4" method="get" action="" >
 <table border="1" align="center">
  <tr>
<td colspan="2" align="center">
    <b>Login</b>
</td>
</tr>
<tr>
<td>
  Email : </td>
<td><input type="email" name="txtEmail"></td>
</tr>
<tr>
<td>Passowrd : </td>
<td><input type="password" name="txtPwd"></td>
</tr>

<tr>
<td align="center"> <input name="login" type="submit" id="login" value="login"></td>
<td align="center"><input type="button" name="txtCancel" value="Cancel"/></td>
</tr>
</table>
</form>
</div>
<?php
include('connect.php');
if(isset($_REQUEST['login']))
{
$Email=$_GET['txtEmail'];
$Pwd=$_GET['txtPwd'];
$query="select * from usermaster where EmailId='$Email' and  Password='$Pwd'";
 echo $query;
$result=$conn->query($query);
if ($result->num_rows > 0)
    {
        echo "valid UserName and Password";
        $_SESSION['email']=$Email;// session already started in header.php file
        header("location:user/index.php");
    } 
else 
{
echo "Error: " . $query . "<br>" . $conn->error;
//echo "Invalid UserName and Password";
}

}
?>
 <?php include 'footer.php'; ?>

我有两个文本框'用户名'和'密码'。但是,当我填写文本框并单击提交按钮时,它不起作用,不执行PHP代码。

当我尝试使用空文本框时,它会执行php代码并提供此错误 - 用户名密码无效。

2 个答案:

答案 0 :(得分:0)

您尚未填写表单的操作部分

一个很好的例子:

<form method="get" name="form4" action="<?= $_SERVER['PHP_SELF']; ?>">        
    <!-- Your form here -->
</form>

由于您为其提供了PHP标记,因此该标记可以正常工作,并将您的表单重定向到当前文件。

如果您想使用其他php文件:

<form method="get" name="form4" action="php_file.php">
    <!-- Your form here -->
</form>

更新

完整的表单示例。也许这会帮助你。

<?php
if (isset($_GET)) {
    $username = isset($_GET['username']) ? $_GET['username'] : false;
    $password = isset($_GET['password']) ? $_GET['password'] : false;

    if (false === $useranme || false === $password) {
        die("Not all fields are filled!");
    }
}
?>
<form method="GET" action="<?= $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="username" />
    <input type="password" name="password" />
    <input type="submit" name="login" value="Login" />
</form>

注意:

如果这对您没有帮助,请将以下代码放在文件顶部:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
?>

这将打开错误报告并显示可能发生的错误。如果您有任何错误,请在此处发布(编辑您的问题),以便我们为您提供进一步的帮助。

答案 1 :(得分:0)

在您的表单操作中添加#并将方法更改为post

<form name="form4" method="post" action="#" >

并在php中

if (isset($_POST['login']))
{
    $email = $_POST['txtEmail'];
    $pwd = $_POST['txtPwd'];

    $query = "select * from usermaster where EmailId='$email' and  Password='$pwd'";

    $result = mysql_query($query);
    $count = count($result);

    if (empty($count) || $count > 1)
    {
        #invalid user
        echo "Invalid username";
    }
    else
    {
        #valid user
        echo "valid UserName and Password";
        //$_SESSION['email'] = $email; // session already started in header.php file
        //header("location:user/index.php")

    }
}