简而言之,在"page1.php"中我有一个由HTML表单组成的计算器,然后PHP代码总计输入并显示总价.在价格之下,它还会显示"page2.php"的链接,其中包含一个HTML表单,可以输入他们的联系信息.提交表格后,他们在定价计算器中的"page1.php"上做出的选择以及"page2.php"上的联系信息都会通过电子邮件发送给我,然后他们会被重定向到主页.
在提交给我的电子邮件中,我收到了来自"page2.php"的联系信息,但我没有从"page1.php"收到任何内容,因此变量未正确传递.除了每页上的PHP之外,我在"page2.php"上的HTML表单中使用隐藏值来回显在"page1.php"上的HTML表单中输入的数据.我知道我的一个问题是,$_GET当我的表格是"帖子"时,我有几个字段.
然而,当我改变它以便一切都是$_POST,计算器不再有效.我试图将其与其他人建议的不同代码片段放在一起."page1.php"上的表单有13个字段,名为"one" - "十三".$ total显示1-13的值.
<?php
$submit = $_GET['submit'];
if($submit == "true")
{
$total = ($_POST['one'] + $_POST['two'] + $_POST['three'] + $_POST['four'] +
$_POST['five'] + $_POST['six'] + $_POST['seven'] + $_POST['eight']+ $_POST['nine'] +
$_POST['ten']+ $_POST['eleven'] + $_POST['twelve']+ $_POST['thirteen']);
echo " Your Price is \$ " .number_format ($total, 2, '.', ','). "<BR>";
echo ('">Get Your Project Started</a>');
}
?>
Run Code Online (Sandbox Code Playgroud)
第二种形式使用隐藏值来回显来自page1.php的信息,还有三个名为"name","email"和"details"的字段.
<?php
$to = "jessica@designs.com";
$message = "Pages:\t$_POST[one]\n";
$message .= "Pages:\t$_POST[two]\n";
$message .= "Pages:\t$_POST[three]\n";
$message .= "Ecommerce:\t$_POST[four]\n";
$message .= "No Ecommerce:\t$_POST[five]\n";
$message .= "CMS:\t$_POST[six]\n";
$message .= "No CMS:\t$_POST[seven]\n";
$message .= "Audio or Video:\t$_POST[eight]\n";
$message .= "Flash Intro:\t$_POST[nine]\n";
$message .= "Image Gallery:\t$_POST[ten]\n";
$message .= "Graphic Design or Logo:\t$_POST[eleven]\n";
$message .= "Copy:\t$_POST[twelve]\n";
$message .= "Images:\t$_POST[thirteen]\n";
$message .= "Price Total:\t$_POST[total]\n";
$message .= "Name:\t$_POST[name]\n";
$message .= "Email:\t$_POST[email]\n";
$message .= "\n";
$message .= "\n";
$message .= "Details:\t$_POST[details]\n";
mail($to, $subject, $message, $headers) ;
}
?>
Run Code Online (Sandbox Code Playgroud)
那么什么是正确的PHP放在"page1.php"和"page2.php"?对不起代码是如此混乱,如果有人能指出我正确的方向,那将是伟大的.
PHP是无状态的除非你在会话中保存东西(这不安全吗?)
您需要使page2.php读取page1.php中的所有值,并将它们存储在服务器端状态(会话)或客户端状态(cookie或表单中的隐藏字段)
如果你想要任何这些安全或秘密,那么你也必须考虑所有这些.我解释的任何内容都不是秘密或安全的.
编辑: 这是page1.php的一个示例,它将page1.php的值作为get参数发送到page2.php.您也可以使用隐藏字段,Cookie或会话执行此操作.
重要的是要记住,page2.php完全没有意识到page1.php,并且无法获得像它可以形成编程的值.当您看到完整的网页时,每个页面都会开始和结束它的生命,因此您必须使用一些额外的技巧来保持值.这些技巧是会话,cookie,表格帖子或获取.
<html>
<head>
<title>Page 1</title>
</head>
<body>
<?php
//set defaults assuming the worst
$total = 0;
$one =0;
$two=0;
//verify we have that value in $__POST
if (isset($_POST['submit']))
{
$submit = $_POST['submit'];
//If it is true, try some math
if($submit == "sub-total")
{
if (isset($_POST['one']))
{
$one = $_POST['one'];
//Add checks to see if your values are numbers
if ( ! is_numeric($one)) { $one = 0;}
}
if (isset($_POST['two']))
{
$two = $_POST['two'];
if ( ! is_numeric($two)) { $two = 0;}
}
$total = $one + $two;
echo " Your Price is \$ " .number_format ($total, 2, '.', ','). "<BR>";
}
if($submit == "submit" )
{
//go to page two, with the total from page1.php passed as a $__GET value
header("Location: page2.php?total=".$total);
}
}
?>
<form method="post" action="page1.php?submit=true">
<input type="text" name="one" id="one" value="<?=$one?>"/>
<input type="text" name="two" id="two" value="<?=$two?>"/>
<input type="submit" name="submit" value="sub-total" />
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46455 次 |
| 最近记录: |