[英]Why do calculated fields not show up in form to send email?
這只是一個較大項目的非常小的版本,僅用於說明這一點。 禁用的計算字段值“ applet”未顯示在要發送的電子郵件中。 有什么想法為什么以及如何做到這一點?
<body>
<form name="fruit" id= "fruit" action="acknowlfruit.php" method="post"
target="_self">
<fieldset>
<table onkeyup="computeAll()">
<tr><th>Fruit</th><th>No.</th><th>Price</th><th>Total</th></tr>
<tr><td> <label for ="apples" class="label">Apples:</label></td>
<td> <input id= "apples" name="apples" type="text" required class="input"
value="0" size="3" maxlength="3" indent= "250px" /> </td>
<td>at 5p</td>
<td><input id="appletot" type = "text" class= "input" value="0" size="5"
maxlength="10" disabled/></td></tr>
</table>
<br/>
</p>
<script type="text/javascript">
function computeAll() {
document.fruit.appletot.value = 5*document.fruit.apples.value;
}
</script>
<input name="submit" type="submit" value="Submit" />
</body>
</html>
<?php
if (isset($_POST['submit'])){
$to = 'myemail@gmail.com';
$subject = 'Fruit Cost';
$message .= 'Apples: '.$_POST['apples']." ";
$message .= 'Cost of apples: '.$_POST['applestot']."\r\n\r\n";
$success = mail($to, $subject,$message, $headers);
}
?>
disabled
字段不會傳遞到服務器。 使用type="hidden"
或什至在服務器端計算總數:
if (isset($_POST['submit'])){
$to = 'myemail@gmail.com';
$subject = 'Fruit Cost';
$message .= 'Apples: '.$_POST['apples']." ";
$message .= 'Cost of apples: '.($_POST['apples'] * 5)."\r\n\r\n";
$success = mail($to, $subject,$message, $headers);
}
第二種方法更安全,因為用戶可以更改客戶端javascript,例如:
function computeAll() {
document.fruit.appletot.value = 0.5 * document.fruit.apples.value;
}
在這種情況下,如何找到錯誤在哪里 ?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.