-5

我正在尝试在 iFrame 中创建一个联系表单。

表单首先在 iFrame 中加载,我使用 method="POST" 目标作为下一个发送邮件的 php 页面。当我尝试回显它们时,我无法在目标页面中检索会话变量。

我查看了其他论坛主题并尝试在两个页面中验证会话 ID,它们是相同的。

请帮忙!

编辑:添加代码。我有 2 个 PHP 文件:

1.联系方式.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>&nbsp;</td>
          <td>&nbsp;</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";
  }
?>
4

2 回答 2

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 服务器来使用 localhost 服务器,然后将您的 html 和 php 文件粘贴到 C:/wamp/www/ 文件夹中。运行 wamp server 并在浏览器中打开 127.0.0.1。

于 2013-10-30T20:12:11.247 回答
0

我的目标很简单,我只需要传递到第二页的 4 个变量。当我尝试没有会话时它没有发生,所以我在另一个线程中根据建议使用它。即使我删除了顶部的会话详细信息,相同的代码也不起作用。

好的,我现在明白了,摆脱你所有的 Session 你根本不需要它们

如果您要使用从表单发布的变量,请执行以下操作:

<?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 标签的名称。

希望这可以帮助!

于 2013-10-30T21:23:13.863 回答