我正在尝试在iFrame中创建联系表单。
首先在iFrame中加载表单,然后使用method =“POST”目标作为发送邮件的下一个php页面。当我尝试回显它时,我无法在目标页面中检索会话变量。
我查看了其他论坛帖子并尝试在两个页面中验证会话ID,它们是相同的。
请帮忙!
编辑:添加代码。我有2个PHP文件:
1.Contact.php
<?php
session_start();
echo "Session ID: ".session_id();
$_SESSION['sesssubject'] = $subject;
$_SESSION['sessmessage'] = $message;
$_SESSION['sessname'] = $name;
$_SESSION['sessemail'] = $email
?>
<table width="400" border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td><strong>Contact Form</strong></td>
</tr>
</table>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td>
<form method="post" action="send_contact.php">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
<td width="16%">Subject</td>
<td width="02%">:</td>
<td width="82%"><input name="subject" type="text" id="subject" size="50"></td>
</tr>
<tr>
<td>Message</td>
<td>:</td>
<td><textarea name="message" cols="50" rows="4" id="message"></textarea></td>
</tr>
<tr>
<td>Name</td>
<td>:</td>
<td><input name="name" type="text" id="name" size="50"></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><input name="email" type="text" id="email" size="50"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
2。 send_contact.php
<?php
session_start();
echo "Session ID: ".session_id();
$subject = $_POST['sesssubject'];
$message = $_POST['sessmessage'];
$name = $_POST['sessname'];
$email = $_POST['sessemail'];
echo "hi";
echo $subject;
echo $message;
echo $name;
echo $email;
$to ='<my-email>';
$send_contact=mail($to,$subject,$message,$name);
if($send_contact)
{
echo "We've received your contact information";
}
else
{
echo "ERROR";
}
?>
答案 0 :(得分:0)
忘记ifrmane,我认为你无法从HTML中捕获POST数据。
如果你有html文件
<html>
<body>
<form action="result.php" method="POST">
<input type="text" name="field_name"/>
<input type="submit" name="submit" value="submit"/>
</form>
</body>
</html>
然后你需要写一个result.php文件,因为我们在上面的表格中使用了result.php:
<?php
$name = $_POST['field_name'];
echo $name;
?>
确保在工作服务器上托管这些html和php文件,因为php是服务器端脚本语言,因此需要托管。 您只需下载并安装Windows的WAMP服务器即可使用本地主机服务器,然后将您的html和php文件粘贴到C:/ wamp / www /文件夹中。 运行wamp服务器并在浏览器中打开127.0.0.1。
答案 1 :(得分:0)
我的目标很简单,我只需要将4个变量传递给 第二页。当我尝试没有会话时没有发生,所以我使用了 它在另一个线程中的建议。相同的代码甚至无法正常工作 当我删除顶部的会话详细信息时。
好的,我现在就拿到它,摆脱你根本不需要它们的所有会话
如果您要使用从表单发布的变量,请执行以下操作:
<?php
$subject = $_POST['subject'];
$message = $_POST['message'];
$name = $_POST['name'];
$email = $_POST['email'];
echo "hi";
echo $subject;
echo $message;
echo $name;
echo $email;
$to ='<my-email>';
$send_contact=mail($to,$subject,$message,$name);
if($send_contact)
{
echo "We've received your contact information";
}
else
{
echo "ERROR";
}
?>
它没有用,因为你为POST变量使用了错误的名字,它应该是你的html标签的名称。
希望这有帮助!