【发布时间】:2018-05-09 20:29:51
【问题描述】:
我在前端有一个表单,用户可以在其中输入内容。
当我在表格中输入我的信息并提交时,数据库仅收集 5 个信息中的 2 个。 1个对的,一个错的。我已经尝试了 6 个小时来寻找解决方案,但我失败了。
当我使用 " if($_SERVER['REQUEST_METHOD'] == 'POST') { "
在前面" if($current_user->user_login == ""){ " 站点刚刚刷新,没有信息进入数据库。
当我不使用它时,将创建 2 个新列。一个在我进入网站时,一个在我提交表格后。 (仅包含 2 个信息。)
“用户名”是正确的。 “plaetze”是错误的(一直显示 0) 其他 3 个甚至没有得到任何信息。
Picture of the informations in the Database
我的 PHP/SQL 代码:
$host="localhost";
$username="xxx";
$password="xxx";
$db_name="xxxx";
$tbl_name="xxxx";
$link = mysqli_connect($host, $username, $password, $db_name);
$current_user = wp_get_current_user();
if(mysqli_connect_error()){
die("Es gab einen Fehler beim Verbinden zur Datenbank");
}
if($current_user->user_login == ""){
echo "Bitte logge dich ein damit du ein Angebot abschicken kannst";
} else {
$username = $current_user->user_login;
$plaetze = $_POST['anzahlplaetzeselect'];
$gender = $_POST['genderselect'];
$kosten = $_POST['unchoice'];
$bemerkung = $_POST['apkostenfreibemerkung'];
$query = "INSERT INTO $tbl_name(username, plaetze, genderchoice, kosten, kostenbemerkung) VALUES('$username', '$plaetze', '$gender', '$kosten', '$bemerkung')";
if (mysqli_query($link, $query)) {
echo "<p> Dein Angebot wurde erfolgreich erstellt </p>";
} else {
echo "<p>Fail!</p>";
}
}
?>
我的表格:
<button type="button" id="ubernachtungenAKtivieren" class="btn">Eine Übernachtung anbieten</button>
<div id="ubernachtungsformdiv">
<form type="post" name="ubernachtungform" id="ubernachtungsform">
<div class="form-group">
<?php
if ( !($current_user instanceof WP_User) )
return;
?>
<p> <b>Dein Benutzername:</b> <a href="<?php echo 'https://examplexxxx' . bp_core_get_username( get_current_user_id() ) . '/profile/' ?> "> <?php echo $current_user->user_login ?> </a></p>
</div>
<div class="form-group">
<label for="anzahlplätze">Wie viele Übernachtungsplätze bietest du an?</label>
<select class="form-control" name="anzahlplaetzeselect" id="anzahlplaetzeselect">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<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>
</select>
</div>
<div class="form-group">
<label for="genderselect">Ich nehme nur...</label>
<select class="form-control" name="genderselect" id="genderselect">
<option value="maenner">Männer auf</option>
<option value="frauen">Frauen auf</option>
<option value="egal">Egal ob Mann oder Frau auf</option>
</select>
</div>
<div class="input-group">
<label>Wie viel kostet eine Übernachtung bei Dir?</label>
</div>
<div class="input-group">
<input type="radio" id="apkostenfrei" name="unchoice" value="apkostenfrei" checked="checked" >
<label for="apkostenfrei">Kostenfrei</label></br>
<div id="bemerkungsfeld" style="display: none">
<label for="apkostenfreibemerkung">Bemerkung:</label>
<input type="text" id="apkostenfreibemerkung" name="apkostenfreibemerkung" placeholder="Gegen ein Gastgeschenk/6er Bier o.Ä"> </br>
</div>
<input type="radio" id="kostenpflichtig" name="unchoice" value="apkosten">
<label for="kostenpflichtig">Kostenpflichtig</label></br>
</div>
<div id="preisfeld" style="display: none">
<label for="preis">Ich nehme</label>
<input type="number" id="preis" name="preis" placeholder="15">
<label for="preis">Euro</label>
</div>
<input type="submit" name="angebotabschicken" class="btn" id="UNsend" value="Dieses Angebot für die Veranstaltung <?php wp_title() ?> erstellen!" >
</div>
</form>
</div>
【问题讨论】:
-
<form type="post"应该是<form method="post"(有关正确属性的列表,请参阅 developer.mozilla.org/en-US/docs/Web/HTML/Element/form)。由于您没有设置“方法”属性,因此表单使用 GET(这是默认设置)而不是 POST 提交。这就是为什么检查它是一个 POST 失败的原因,以及为什么当你不做那个检查时你的 $_POST 变量是空白的。