$ _REQUEST有效,但$ _POST没有

时间:2015-08-11 07:30:49

标签: php html forms http

我有一个带有post方法的HTML表单

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js'></script>
    <script type='text/javascript' src='scripts/scrollbar.js'> </script>
    <script type='text/javascript' src='scripts/string.js'> </script>

    <link type='text/css' rel='stylesheet' href='styles/defaults.css'/>
    <link type='text/css' rel='stylesheet' href='styles/header.css'/>
    <link type='text/css' rel='stylesheet' href='styles/content.css'/>
    <link type='text/css' rel='stylesheet' href='styles/preview.css'/>
    <link type='text/css' rel='stylesheet' href='styles/key-value.css'/>
    <link type='text/css' rel='stylesheet' href='styles/notice.css' />  
    <link rel='stylesheet' type='text/css' href='styles/footer.css' />

    <meta http-equiv='content-type' content='text/html;charset=utf-8' />
</head>
<body>
<nav id='navigation' class='alternative'>
    <section id='logo'> <a href='/.'>im</a> </section>
</nav>  <div class='content alternative'>

<form class='A4 page' method='post' action='includes/process-book-submission.php?action=add&mid=-1&isbn=0309211794&quality=New&scheduled=Fri Jan 15 2016&comments=&price=77.11&extras=&deal=sell&pendings=YES&seller=1'>
    <table class='im key-value' id='preview'>
        <caption> 
            <h1>Item's Information Review</h1> 
            <small>(You can always make changes in the future)</small>
        </caption>
        <tbody>
            <tr> 
                <td><strong>Title</strong></td> 
                <td id='title'> <label>Approaches for Ecosystem Services Valuation for the Gulf of Mexico After the Deepwater Horizon Oil Spill: Interim Report</label> </td> 
            </tr>
            <tr>
                <td><strong>Authors(s)</strong></td> 
                <td id='authors'> <label>Committee on the Effects of the Deepwater Horizon Mississippi Canyon-252 Oil Spill on Ecosystem Services in the Gulf of Mexico, Ocean Studies Board, Division on Earth and Life Studies, National Research Council</label> </td> 
            </tr>
            <tr> 
                <td><strong>ISBN</strong></td> 
                <td id='isbn'> <label>0309211794<label> </td> 
            </tr>
            <tr> 
                <td><strong>Book Condition</strong></td> 
                <td id='quality'> <label>New<label> </td> 
            </tr>
            <tr> 
                <td><strong>Available Starting</strong></td> 
                <td id='accessible'> <label>January 15th, 2016<label> </td> 
            </tr>
            <tr> 
                <td><strong>Available For</strong></td> 
                <td> </label>Sell</label> </td>
            </tr> 
            <tr>
                <td><strong>Price</strong></td> 
                <td id='price'> <label>$77.11<label> </td> 
            </tr>

            <tr>
                <td><strong>Include My Pending List</strong></td>
                <td>
                    <label>YES</label>
                </td>
            </tr>

            <tr> 
                <td><strong>Comments</strong></td> 
                <td></td> 
            </tr>
        </tbody>
    </table>
    <div style='text-align: center; padding: 25px 0px;'>
        <button class='im2' onclick="location.href='../index.php'">Cancel</button>
        <button class='im2'>Continue</button>
    </div>
</form>

然后我提交页面并转到page.php。如果我print_r $_REQUEST或者我是print_r $ _GET这两个工作,但当我print_r $_POST它是空的时,任何人都可以解释发生了什么,为什么即使我指定我也无法使用$ _POST我的表单中的method ='post'

3 个答案:

答案 0 :(得分:3)

问题是您使用重定向而不是提交

更改

<button class='im2'>Continue</button>

<input type="submit" value="continue" name="submit">

另一种方法是在按钮点击时触发form.submit事件。

编辑:

您可以通过$_GET获取变量,因为您可以在操作网址中设置变量。 此外,没有输入通过邮件发送。所以你需要创建一些通过<input> html标签或<textarea>等。注意你需要设置这些html标签的name属性,以便正确发送到服务器。

示例:

将此代码<input type="text" name="isbn" value="0309211794">放入您<form></form>中,并在上面发布的代码点击submit

答案 1 :(得分:2)

您发布的内容不是表单,只是指向其他页面的链接。

你正在传递一些数据吗?在正确的网址中,您将通过$ _get。

在目标网页中找到

要使用表单和帖子方法,您必须删除所有信息后?在url中,用以下内容替换每个variable = value对:

<input type="hidden" name="thevariable" value="thevalue">

每次变量和名称都是您要发布的对中的一个。

然后您将能够通过$ _post

访问数据

答案 2 :(得分:1)

您的表单没有输入字段,这就是$ _POST为空的原因。
你不通过POST向服务器发送任何内容,并且你的$ _GET不是空的,因为你在url的action参数中传递参数, 出于同样的原因,$ _REQUEST也不是空的。