我最近遇到了一个$ _POST问题。
当我写:
$nb_acces = $_POST['nb_acces'];
print_r($nb_acces )
我明白了:
1
我在表单中写的是值。
但如果我写:
<form id='sous_paiement' name='sous_paiement' method='post' action='commande_enregistre_test.php?ecole=<?php echo $id_ecole; ?>'>
<input id='nb_acces' name='nb_acces' style='width:90px;border:1px solid black;padding-left:4px;text-align:center;' />
我明白了:
数组([nb] =&gt; 0)
以前工作过,现在我不明白会发生什么。它可能来自服务器配置还是什么?
编辑:
我的意见:
function filtre_saisie() {
var input_acces = document.getElementById("nb_acces");
var nb_acces = input_acces.value.replace(/[^0-9]/g, '');
input_acces.value = nb_acces;
var prix_unitaire = calcul_prix_unitaire(nb_acces);
var prix_total = calcul_prix_total(nb_acces);
document.getElementById("div_prix_unitaire").innerHTML = prix_unitaire;
document.getElementById("div_prix_total").innerHTML = prix_total;
}
是的,如果我使用$ _POST [&#39; nb_acces&#39;]我可以回显该值。虽然我希望检查值是否有整数并避免注入。
我得到这个阵列的方式是我不明白的。我只有一个输入。
它可以来自我检查JavaScript函数(对不起法语单词,我删除这里的任何非数字字符并计算一些价格):
<form id='sous_paiement' name='sous_paiement' method='post' action='commande_enregistre_test.php?ecole=<?php echo $id_ecole; ?>'>
<div class="div_categories">
<p style='margin:0;padding:3px;padding-left:60px;'>Indiquez le <strong>nombre d'accès</strong> que vous souhaitez acheter :</p>
</div>
<br />
<div id="erreur_nb_acces" style="color:red;"><br /></div>
<table style='border-collapse:collapse;'>
<tr style='font-weight:bold;border:1px solid #eee;background-color:white;'>
<td style='width:200px;padding-left:10px;'>Nombre d'accès</td>
<td style='width:100px;padding-left:10px;padding-right:10px;'><input id='nb_acces' name='nb_acces' type="text" style='width:90px;border:1px solid black;padding-left:4px;text-align:center;' /></td>
</tr>
</table>
<br />
<table style='border-collapse:collapse;'>
<tr style='border:1px solid #eee;background-color:white;border-bottom:1px solid #999;'>
<td style='width:200px;padding-left:10px;'>Prix par accès</td>
<td style='width:100px;padding-left:10px;padding-right:10px;text-align:right;'><div id='div_prix_unitaire' style='display:inline;'>-</div> €</td>
</tr>
<tr style='font-weight:bold;border:1px solid #999;background-color:white;'>
<td style='width:200px;padding-left:10px;'>PRIX TOTAL</td>
<td style='width:100px;padding-left:10px;padding-right:10px;text-align:right;'><div id='div_prix_total' style='display:inline;'>-</div> €</td>
</tr>
</table>
<div style='width:190px;margin-top:5px;'>
<a href='#' onclick='ouvrirPopUp_tarifs();'><img src='../images/IconeInformation.png' style='border:0px solid red;float:left;display:inline;' /><span style="line-height:24px;">Consulter les tarifs</span></a>
</div>
<div style="clear:both;"></div>
<br /><br />
<div class="div_categories">
<p style='margin:0;padding:3px;padding-left:60px;'>Choisissez votre <strong>mode de paiement</strong> :</p>
</div>
<br /><br />
<table class="tab_mode_paiement" style="border-collapse:collapse;">
<tr>
<td>
<input id='paiement_cb' name='mode_paiement' value='5' class='eleves' type='radio' checked="checked" style="cursor:pointer" />
</td>
<td style="font-weight:bold;padding-right:80px;border-right:1px solid #999;">
<label for='paiement_cb' style="cursor:pointer">
<img src="../images/ic_cb.jpg" style="float:left;display:inline;padding-right:10px;" /> Carte bancaire
</label>
</td>
<td style="padding-left:40px;">
<!--<input id='paiement_paypal' name='mode_paiement' value='3' class='eleves' type='radio' style="cursor:pointer" />-->
</td>
<td style="font-family:arial;font-size:20px;padding-right:120px;">
<!--<label for='paiement_paypal' style="cursor:pointer">
<span style="color:rgba(0,3,128,1)">Pay</span><span style="color:rgba(0,158,210,1)">Pal</span>
</label>-->
</td>
<td>
<input id='paiement_virement' name='mode_paiement' value='1' class='eleves' type='radio' style="cursor:pointer" />
</td>
<td style="font-weight:bold;">
<label for='paiement_virement' style="cursor:pointer">
Par virement bancaire
</label>
</td>
</tr>
<tr>
<td colspan="2" style="border-right:1px solid #999;">Recevez vos accès immédiatement</td>
<td colspan="4" style="padding-left:90px;">Accès disponibles après réception du paiement</td>
</tr>
</table>
<br /><br /><br />
<input id='enregistrer' name='enregistrer' value='Enregistrer la commande' type='button' onclick='verif_sous_paiement();' style='width:300px;height:40px;' />
<br /><br />
<br />
</form>
可能是替换吗?
编辑2 ----------------------------------
整个表格:
<script>
function ouvrirPopUp_tarifs() {
window.open ('tarifs.php', 'tarifs', config='height=370, width=760, toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, directories=no, status=no');
}
var tab_responsables = new Array();
var tab_acces_responsables = new Array();
var nb_responsables = 0;
function initialiser_filtre_saisie() {
setInterval("filtre_saisie()", 200);
}
function filtre_saisie() {
var input_acces = document.getElementById("nb_acces");
var nb_acces = input_acces.value.replace(/[^0-9]/g, '');
input_acces.value = nb_acces;
var prix_unitaire = calcul_prix_unitaire(nb_acces);
var prix_total = calcul_prix_total(nb_acces);
document.getElementById("div_prix_unitaire").innerHTML = prix_unitaire;
document.getElementById("div_prix_total").innerHTML = prix_total;
}
function verif_sous_paiement() {
filtre_saisie();
var nb_acces = document.getElementById("nb_acces").value;
if (nb_acces == 0) {
document.getElementById("erreur_nb_acces").innerHTML = "Veuillez indiquer un <strong>nombre d'accès</strong>.";
document.getElementById('nb_acces').focus();
}
else {
document.getElementById('sous_paiement').submit();
}
}
</script>
我的Javascript:
<?php
$query = "SELECT `band`.`band_id`, `band`.`title` FROM `band`";
$result = mysqli_query($mysqli, $query);
if (!$result) {
die("Database query failed.");
}
?>
<?php
if (isset($_POST['select_band'])) {
$selected_band_id = $_POST['select_band'];
}
?>
<form method="post" name="form_band" action="">
<select name="select_band" onchange="javascript: submit()">
<?php
while ($row = mysqli_fetch_assoc($result))
{?>
<option value="$row['band_id']" <?if($row['band_id']==$selected_band_id){echo "selected";}?>>$row["title"]</option>
// Here, selected item will get as selected
<?}
?>
</select>
</form>
似乎我的整个代码都害怕每个人 - .-
答案 0 :(得分:0)
您错过了type="text"
中的input
属性,即使是浏览器,也可能会出现问题;
<input type="text" id='nb_acces' name='nb_acces' .......... />
此外,您似乎要更换以数字开头的任何内容,例如1,空值,这就是您获得0的原因:
var nb_acces = input_acces.value.replace(/\d/g, '')
答案 1 :(得分:0)
好吧,我看到有人告诉我用var_dump检查的消息,这帮助我现在想出为什么会出现这个问题。我不知道为什么这条消息已被删除,因为它帮助了我很多。感谢谁发布了它。
如果有人遇到同样的问题,但我知道它来自旧的且可能是糟糕的服务器配置,那么使用$ nb_acces和$ _POST [&#39; nb_acces&#39;]会产生冲突。不要使用相同的名称。这就是所有 - .-