【问题标题】:Empty MySQL-entries from PHP form despite of $isset?尽管有 $isset,PHP 表单中的空 MySQL 条目?
【发布时间】:2017-06-02 15:00:14
【问题描述】:

我正在制作一个表格来输入客户数据。到目前为止工作正常,但有一个问题。每天,每天五次,有空的重复条目,我不知道为什么。我检查了表单的提交按钮,添加了 $isset 以防止添加空帖子。但仍然得到空条目。

现在我不知道为什么。虽然它的外观看起来像一个机器人,但我不确定。

时间戳屏幕。

    <body>



        <div class="container">
        <!-- Example row of columns -->
            <div class="row">
    <h2>Customer Database - Insert</h2>                
                <form action=""  method="post"> <!--action="insert.php" -->
                <h4>Kunde</h4>    
                <div class="col-md-12 dbstyle">
                    <div class="col-md-3">
                    <span>
                        <label for="firstName">Vorname:</label>
                        <input type="text" name="firstname" id="firstName">
                    </span>
                    </div>
                    <div class="col-md-3">
                    <span>
                        <label for="lastName">Nachname:</label>
                        <input type="text" name="lastname" id="lastName">
                    </span>
                    </div>
                    <div class="col-md-3">
                    <span>
                        <label for="customerNumber">Kundennummer:</label>
                        <input type="number" name="customernumber" id="customerNumber">
                        <p>Kundennummer in <b>DEINEM</b> Kundenstamm</p>
                    </span>
                    </div>
                    <div class="col-md-3">
                    <span>
                            <label for="birthDate">Geburtsdatum:</label>
                            <input type="date" name="birthdate" id="birthDate">
                            <p>Format: <i>YYYY/MM/DD</i></p>
                    </span>
                    </div>
                </div>

                <h4>Vertragsdaten</h4>
                <div class="col-md-12 dbstyle">
                    <div class="col-md-3">
                        <span>
                            <label for="company">Anbieter:</label>
                            <input type="text" name="company" id="company">
                        </span>
                    </div>
                    <div class="col-md-3">
                        <span>
                            <label for="contractNumber">Vertrags-/Kundennummer:</label>
                            <input type="number" name="contractnumber" id="contractNumber">
                        </span>
                    </div>
                    <div class="col-md-3">
                        <span>
                            <label for="quitDate">Kündigungsdatum:</label>
                            <input type="date" name="quitdate" id="quitDate">
                            <p>Format: <i>YYYY/MM/DD</i></p>

                        </span>
                    </div>                
                    <div class="col-md-3">
                        <span>
                            <label for="quit">Kündigungsfrist in Wochen:</label>
                            <select name="quit" id="quit">
                              <option value="4">4</option>
                              <option value="5">5</option>
                              <option value="6">6</option>
                              <option value="7">7</option>
                              <option value="8">8</option>
                              <option value="9">9</option>
                              <option value="10">10</option>
                              <option value="11">11</option>
                              <option value="12">12</option>
                              <option value="13">13</option>
                              <option value="14">14</option>
                              <option value="15">15</option>
                              <option value="16">16</option>
                              <option value="17">17</option>
                              <option value="18">18</option>
                              <option value="19">19</option>
                              <option value="20">20</option>                                                            
                            </select>
                        </span>
                    </div>

                </div>

                <div class="col-md-12 dbstyle">
                    <div class="col-md-3">
                        <span>
                            <label for="quitDate">Lieferbeginn:</label>
                            <input type="date" name="deliverydate" id="deliveryDate">
                            <p>Format: <i>YYYY/MM/DD</i></p>

                        </span>
                    </div>              
                </div>

                <h4>Kontaktdaten</h4>

                <div class="col-md-12 dbstyle">
                    <div class="col-md-4">
                        <span>
                            <label for="landline">Festnetz:</label>
                            <input type="tel" name="landline" id="landline">
                        </span>
                    </div>

                    <div class="col-md-4">
                        <span>                    
                            <label for="cellphone">Mobilfunk:</label>
                            <input type="tel" name="cellphone" id="cellphone">
                        </span>                    
                    </div>

                    <div class="col-md-4">     
                        <span>
                            <label for="emailAddress">Email:</label>
                            <input type="email" name="email" id="emailAddress">
                        </span>
                    </div>
                </div>


                <div class="col-md-12 dbstyle">
                    <div class="col-md-4">
                        <span>
                        <label for="address">Straße, Nr.:</label>
                        <input type="text" name="address" id="address">
                        </span>
                    </div>

                    <div class="col-md-4">
                        <span>
                            <label for="location">Ort:</label>
                            <input type="text" name="location" id="location">
                        </span>
                    </div>

                    <div class="col-md-4">                        
                        <span>
                            <label for="postal">PLZ:</label>
                            <input type="number" name="postal" id="postal">
                        </span>
                    </div>
                </div>
                    <input type="submit" name ="submit" value="submit">
                </form>
            </div>
            </div>
        </div>
<?php

/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("name", "name", "pw", "other data");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

// Escape user inputs for security
$first_name = mysqli_real_escape_string($link, $_POST['firstname']);
$last_name = mysqli_real_escape_string($link, $_POST['lastname']);
$birthdate = mysqli_real_escape_string($link, $_POST['birthdate']);
$company = mysqli_real_escape_string($link, $_POST['company']);
$contractnumber = mysqli_real_escape_string($link, $_POST['contractnumber']);
$customernumber = mysqli_real_escape_string($link, $_POST['customernumber']);
$quit = mysqli_real_escape_string($link, $_POST['quit']);
$quitdate = mysqli_real_escape_string($link, $_POST['quitdate']);
$landline = mysqli_real_escape_string($link, $_POST['landline']);
$delivery = mysqli_real_escape_string($link, $_POST['deliverydate']);
$qd = $quit * 7;
$cell = mysqli_real_escape_string($link, $_POST['cellphone']);
$email_address = mysqli_real_escape_string($link, $_POST['email']);
$address = mysqli_real_escape_string($link, $_POST['address']);
$location = mysqli_real_escape_string($link, $_POST['location']);
$postal = mysqli_real_escape_string($link, $_POST['postal']); 
//$alert = mysqli_real_escape_string($link, date('Y-m-d', strtotime($quitdate. ' - $qd days')));
//$alert = date('Y-m-d', strtotime($quitdate. " + $qd days"));     
$alert = mysqli_real_escape_string($link, date('Y-m-d', strtotime($quitdate. " - $qd days")));

echo $qd;
echo "<br>";
echo $alert;
echo "<br>";
echo $quitdate;
echo "<br>";
$dromedar = date('Y-m-d', strtotime($quitdate. ' - $qd days'));
echo $dromedar;

// attempt insert query execution
if(isset($_POST['submit']))
{

    if(!empty($customernumber) || !empty($contractnumber) ){

        $sql = "INSERT INTO customer (name, surname, birthdate, company, contractnumber, custnumber, unsubscription, quit,landline, cell, email, street, town, postal, delivery, alert) VALUES ('$first_name', '$last_name', '$birthdate', '$company', '$contractnumber', '$customernumber','$quitdate', '$qd','$landline','$cell', '$email_address','$address', '$location', '$postal','$delivery','$alert')";

            if(mysqli_query($link, $sql)){
                echo "";
            } else{
                echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
            }

    } else {
        echo "ERROR: Nicht gespeichert. Kundennummer oder Vertragsnummer fehlen!";
    }



}
// close connection
mysqli_close($link);

关于结构的一个信息:因为是给朋友的,所以我尽量把它全部放在一个页面上,这样他就可以一次插入多个。

希望有人可以帮助我。提前致谢。

编辑:发现正在发生这种情况:

*domain* anon-119-0-0-209.ip6.invalid - - [31/May/2017:07:56:47 +0200] "GET /database/input_form.php HTTP/1.1" 200 7116 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4"

*domain* anon-119-0-0-7.ip6.invalid - - [31/May/2017:17:37:39 +0200] "POST /database/input_form.php HTTP/1.1" 200 7060 "http://n-tec24.de/database/input_form.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4"

所以我看到它与 POST 相关。而且我假设它是关于机器人的,因为它正在返回,但今天我使用了 robots.txt,但它仍然没有帮助。

【问题讨论】:

  • 作为旁注,您可以修复提交时间,然后检查访问日志以至少查看 useragent。
  • 插入成功后取消设置post数据
  • 谢谢你们。 @u_mulder:从日志文件中添加了一些内容。现在更多的是关于问题。

标签: php mysql forms


【解决方案1】:

问题解决了。这是我的错,因为我在服务器上有一个旧文件开始自动插入。在这里,我曾经阅读日志以找到它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 2013-06-29
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    相关资源
    最近更新 更多