PHP表单接受带有空白字段的登录

时间:2016-05-24 08:14:44

标签: php mysql database

我有一个联系表格,您必须在其中注册您的姓名,电子邮件等。成功输入这些信息后,您将收到一封带有生成密码的邮件。然后,您可以进入登录屏幕,您必须输入您的电子邮件和通过邮件获得的密码。邮件和密码是否正确,它会显示一个链接,您可以在其中下载宣传册。

到目前为止一切顺利,当我输入虚假信息时,我无法登录。但是当我什么也没输入时,下载链接仍然会出现。

   <form method="POST" action="broschuere_download.php">              
                        <label> E-Mail </label>
                        <input type="text" <?php echo "name='email' value='$email' "?>/>

                        <label> Passwort </label>
                        <input type="text" <?php echo "name='password' value='$password' "?>/>    

                        <input class="button" type="submit" <?php echo "name='submit' value='Zur Broschüre' "?> style="margin-left: 140px; width: 276px;"/>
                    </form>  

                   <?php
                    // MySQL
                    $dbhost = "host";
                    $dbuser = "user";
                    $dbpass = "pass";
                    $dbname = "name";
                    $email = $_POST["email"];
                    $password = $_POST["password"];

                    $verbindung = mysql_connect($dbhost,
                    $dbuser,$dbpass);

                    mysql_select_db($dbname)
                    or die ("Die Datenbank existiert nicht.");

                    $abfrage = "SELECT email, password FROM besco_passwords";

                    $ergebnis = mysql_query($abfrage);

                    while($row = mysql_fetch_object($ergebnis)){
                        if ($email === "$row->email" && $password === "$row->password"){
                            print "<h1 style='margin-bottom: 0px;'> Vielen Dank für Ihr Interesse! <br> Bitte klicken Sie hier zum Download der Broschüre! </h1><br>  ";            
                            print "Download: Rechtsklick -> 'Ziel speichern unter'<br /><br />";
                            print "<a href='http://www.test.de' target='_blank'> Broschüre </a>"; 
                        }  
                        else{
                            print "";
                        }
                    }//endwhile

                    ?> 

我不擅长PHP,但我已经查找了我的问题,并试图自己修复它。我也发现了一些类似的脚本,但它们对我不起作用。

添加虚假登录详细信息和stackoverflow链接

1 个答案:

答案 0 :(得分:0)

检查输入输入如下:

$error=false;

if(isset($_POST['email']) && !empty($_POST['email'])) {
    $email = $_POST["email"];
} else {
    $error=true;
}

if(isset($_POST['password']) && !empty($_POST['password'])) {
    $email = $_POST["email"];
} else {
    $error=true;
}

if(!$error) {
    $verbindung = mysql_connect($dbhost,
    $dbuser,$dbpass);

    mysql_select_db($dbname)
    or die ("Die Datenbank existiert nicht.");

    $abfrage = "SELECT email, password FROM besco_passwords";

    $ergebnis = mysql_query($abfrage);

    while($row = mysql_fetch_object($ergebnis)){
        if ($email === "$row->email" && $password === "$row->password"){
            print "<h1 style='margin-bottom: 0px;'> Vielen Dank für Ihr Interesse! <br> Bitte klicken Sie hier zum Download der Broschüre! </h1><br>  ";            
            print "Download: Rechtsklick -> 'Ziel speichern unter'<br /><br />";
            print "<a href='http://www.test.de' target='_blank'> Broschüre </a>"; 
        }  
        else{
            print "";
        }
    }//endwhile
} else {
    echo "You should fill all the fields.";
}