簡體   English   中英

為什么計算字段不顯示在表單中以發送電子郵件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM