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 でフォームから取得する値は、$_GET ではなく $_POST である必要があります。それが役に立てば幸いです!

于 2012-05-01T07:15:07.440 に答える
2

elseif ($_GET[module]=='request') また、 May I recommend a syntax highlighting editor の前にブラケットがありません。このようなものを見つけるのは非常に簡単になります。

また、HTML 出力とスクリプトを混在させるのもよくありません。

于 2012-05-01T07:17:14.367 に答える
0

GET と POST は 2 つの異なるものであり、交換可能と考えるべきではありません。

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 変数を使用すると、転送されたデータを収集できます。

さらに、HTTP リクエストを API または独自のスクリプトに送信する場合は、データを送信しているため、POST リクエストにする必要があります。API または独自のスクリプトにアクセスしようとしていて、データの取得のみ (作成/更新/削除ではなく) を行う場合は、GET 要求を使用する必要があります。

于 2012-05-01T07:09:39.703 に答える
0

送信ボタンをクリックすると、URLアドレスバーにこのようになります[...] getメソッドを使用したときと同じです。

それならあなたのフォームは正しくありません。それはページ上の唯一のフォーム (ブラウザーから [ソースの表示] を使用) であり、別のフォームにネストされていませんか?

また、他の回答からのすべてのヒントを念頭に置いてください。問題がすぐに解決されるわけではありませんが、コードが読みやすくなると、問題を突き止めるのが容易になります。

于 2012-05-01T07:26:26.997 に答える
0

フォームのメソッドを に設定POSTし、次のコードで ( ) を使用してデータにアクセスしようとし$_GETGET methodmodule=sendmail ます。また、コードが正しく記述されていません:$_POSTPOST method

  • 入力タグは次のようにする必要があります:<input type="value" name="value" />
  • フォームタグは次のようにする必要があります:<form method="post" action="http://complete/link/page.php?media=sendmail"></form>

属性に完全な URL を指定することをお勧めしactionます。

于 2012-05-01T07:59:47.933 に答える