如果值存在于头到位

时间:2016-09-30 13:02:56

标签: php html function

如果数据库中已存在电子邮件,我希望我的表单重定向到index2.html而不插入值或执行案例功能。我尝试了几种没有成功的方法。这是我的function.php

<?php

require 'database.php';

$title  = $_POST['Title'];
$fullname   = $_POST['fullname'];
$email  = $_POST['email'];
$gender = $_POST['gender'];

$sql = "SELECT email FROM tbl_users WHERE email = $email";
$result = dbQuery($sql);
if (dbNumRows($result) == 1) {
    header ('Location: index2.php');
}

$sql = "INSERT INTO tbl_users (Title, fullname, email, gender)
        VALUES ('$title', '$fullname', '$email', '$gender')";   
dbQuery($sql);

switch ( $_POST['gender'] )
{
    case 'male':
        header('Location: male.php');
        break;
    case 'female':
        include 'female.php';
        break;
    }
?>

我的表格

<form action="function.php" method="post
    <input name="Title" placeholder="Title" type="text">
    <input name="fullname" placeholder="fullname" type="text">
    <input name="email" placeholder="email" type="text">
    <select name="gender">
        <option selected="selected" value="-">Please select your bank</option>
        <option value="male">Male</option>
        <option value="female">Female</option>
    </select>
</form>

3 个答案:

答案 0 :(得分:3)

如果这确实是您代码的一部分

WHERE email = $email";

您的代码/标题失败,因为它没有引用:

WHERE email = '$email'";

因为$email是一个字符串而不是整数。

您还需要在每个标题后添加exit;,否则您的代码将希望继续执行。

参考:

您对SQL注入持开放态度;使用准备好的声明。

参考文献:

另外,如果<form action="function.php" method="post(再次)是您真实代码的一部分,那么它就会缺少引用"和结束>

<form action="function.php" method="post">

脚注:

用于连接/查询的API未知,因此请检查查询错误并通过PHP检查错误报告。

您还应该检查任何空字段。否则你可能会得到意想不到的结果/惊喜。

  

&#34;我希望我的表单重定向到index2.html&#34;

并且您正在使用(使用.php

header ('Location: index2.php');

你可能用其中一个打错了。如果没有,请使用.html扩展程序,如果这是您要求的内容。

答案 1 :(得分:2)

将您的插入查询放入else 示例 -

if (dbNumRows($result) == 1) {
        header ('Location: index2.php');
    }else {

    $sql = "INSERT INTO tbl_users (Title, fullname, email, gender)
            VALUES ('$title', '$fullname', '$email', '$gender')";   
    dbQuery($sql);
   }

答案 2 :(得分:2)

重定向后,您需要退出PHP,或者它将读取并执行其余代码。所以,这应该解决问题:

header('Location: index2.php');
die();