1

这是 index.php:

 header('Location:media.php?module=home'); 

我称之为 media.php:

    <html>  
    <head>      
    <title>Test media</title>   
    </head>     
    <body>
    <table width="960"  border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td colspan="2"><img src="images/cms/header.png" width="780" height="77"></td>
    </tr>
    <tr>
     <td width="200" valign="top" bgcolor="#1e2528">
     <?php include "menu.php"; ?>
     <p align="center">&nbsp;</p>
      </td>
      <td width="760" valign="top" bgcolor="#FFFFFF">
      <p>
      <?php include "content.php"; ?>
       <br>
      </p>    
      </td>
      </tr>
   </table>     
</body> 
</html>

这就是问题,content.php:

   <table width="100%" cellspacing=5>
    <?php
    include_once 'include/config.php';
    include_once 'admin/include/date_lib.php';
    include_once 'class/class_lib.php';
    include_once 'class/paging.php';
    $action = new DB();
    $action->db_connect();



 if ($_GET[module]=='home'){
     </td></tr>";
      echo "<tr><td align=center>Headline News<br><br></td></tr>";
    elseif ($_GET[module]=='request'){
      echo "<tr><td class=judul_head>&#187; Hubungi Kami</td></tr>";

      echo "<tr><td class=isi>Silahkan hubungi kami secara online:</td></tr>";  

      echo "<form action='?module=sendemail' method='post'>  
            <tr><td class=isi>Name   : <input type=text name=name size=35></td></tr>
            <tr><td class=isi>E-mail : <input type=text name=email size=35></td></tr>
            <tr><td class=isi>Subject: <input type=text name=subject size=50></td></tr>
            <tr><td class=isi>Message  : <br><textarea name=message rows=13 cols=70>

</textarea></td></tr>
            <tr><td><input type=submit value=Send></td></tr>
            </form>";

        echo "<tr><td class=back><br>
            [ <a href=javascript:history.go(-1)>Back</a> ]</td></tr>";            
    }




  elseif ($_GET[module]=='sendemail'){
      mysql_query("INSERT INTO email(name,
                                       email,
                                       subject,
                                       message,
                                       date) 
                            VALUES('$_GET[name]',
                                   '$_GET[email]',
                                   '$_GET[subject]',
                                   '$_GET[message]',
                                   '$today_date')");



 echo "<tr><td class=header_head>&#187; Status Email</td></tr>
        <tr><td class=isi>Email has been sent</td></tr>
        <tr><td class=back><br>
        [ <a href=index.php>Back</a> ]</td></tr>";            
}

我有一个使用 post 方法的电子邮件表单。但是当我点击提交按钮时,它会在 url 地址栏上是这样的

http://staging/media.php?name=Test+name&email=Test+email&subject=test+subject&,message=Test+message

就像我使用 get 方法一样。但是如果更改$_POST$_GET在查询中。它不起作用。

我的脚本有什么遗漏吗?还是因为我使用该$_GET[module]方法在同一页面上调用?

4

6 回答 6

2

if ($_GET[module]=='home'){ </td></tr>"; 在我看来,您缺少echo "陈述。

于 2012-05-01T07:13:47.600 回答
2

由于您已选择将表单方法设置为“post”,因此您从 mysql_query 中的表单获取的值需要是 $_POST 而不是 $_GET。希望有帮助!

于 2012-05-01T07:15:07.440 回答
2

elseif ($_GET[module]=='request') 在我推荐语法高亮编辑器之前,您还缺少一个括号。找到这些东西变得非常容易。

将 HTML 输出和脚本混合在一起也不好。

于 2012-05-01T07:17:14.367 回答
0

GET 和 POST 是两个不同的东西,不应该被认为是可以互换的。

http://php.net/manual/en/reserved.variables.get.php

http://www.php.net/manual/en/reserved.variables.post.php

在 PHP 脚本中使用 $_GET 变量允许您解析和“获取” URL 参数(通常是查询字符串或带有 mod_rewrite 的文件夹参数),而 $_POST 变量允许您收集传输的数据。

此外,如果您正在向 API 或您自己的脚本提交 HTTP 请求,它应该是 POST 请求……因为您正在提交数据。如果您尝试访问 API 或您自己的脚本,并且只检索(而不是创建/更新/删除)数据,您应该使用 GET 请求。

于 2012-05-01T07:09:39.703 回答
0

您将表单的方法设置为POST,然后在下面的代码中您尝试使用$_GETGET method)访问数据,其中仅包含module=sendmail 要从您需要使用的提交表单访问数据$_POST(即POST method)。代码也没有正确编写:

  • 输入标签应该是这样的:<input type="value" name="value" />
  • 表单标签应该是这样的:<form method="post" action="http://complete/link/page.php?media=sendmail"></form>

action属性指定完整的 URL 是一种很好的做法。

于 2012-05-01T07:59:47.933 回答
0

当我单击提交按钮时,在 url 地址栏上会像这样 [...] 就像我使用 get 方法时一样。

那么你的表格不正确。它是页面上唯一的表单(使用浏览器中的查看源代码)并且它没有嵌套在另一个表单中吗?

还要记住其他答案的所有提示。虽然它们可能不会立即解决您的问题,但当您的代码更具可读性时,就会更容易找到它。

于 2012-05-01T07:26:26.997 回答