0
私は顧客データを入力するフォームに取り組んでいます。これまでのところうまく動作しますが、問題があります。毎日、1日5回、空白の二重入力があり、私は理由を知らない。フォームのsubmit-buttonをチェックし、空の投稿を追加しないように$ 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を使用し、それはまだ助けになりません。
サイドノートとして、提出の時間を修正し、アクセスログを確認して少なくともユーザーエージェントを確認することができます。 –
挿入成功後の投稿データの設定解除 –
ありがとうございます。 @u_mulder:ログファイルから何かを追加しました。それは今問題の詳細です。 – nucky