Отправьте и доберитесь одновременно в php

У Вас есть какие-либо предложения с моей проблемой. Я должен использовать, получают и отправляют одновременно. Доберитесь, потому что я должен произвести то, что ввел пользователь. И сообщение, потому что я должен получить доступ к mysql базе данных относительно того входа. Это выглядит примерно так:

<form name="x" method="get" action="x.php">
<input name="year" type="text">

<select name="general" id="general">
        <font size="3">
        <option value="YEAR">Year</option>

</form>

Это произведет содержание mysql в зависимости от того, что проверит пользователь:

<form name="y" method="post" action"y.php">
<input name="fname" type="checkbox">
</form>

И действие формы тех объединенных двух будет выглядеть примерно так:

   <?php

               if($_POST['general'] == 'YEAR'){
                   ?>
                   <?php echo $_GET["year"]; ?>
                   <?php
            $result2 = mysql_query("SELECT * FROM student
    WHERE student.YEAR='$syear'");
    ?>
    <table border='1'>
            <tr>

                    <?php if ( $ShowLastName ) { ?><th>LASTNAME</th><?php } ?>
                    <?php if ( $ShowFirstName ) { ?><th>FIRSTNAME</th><?php } ?>
        </tr>

    <?php while ( $row = mysql_fetch_array($result2) ) {
        if (!$result2)  { 

    }
        ?>
            <tr> 
                    <td><?php echo $row['IDNO']?> </td>
                    <td><?php echo $row['YEAR'] ?> </td>
     <?php if ( $ShowLastName ) { echo('<td>'.$row['LASTNAME'].'</td>'); } ?></td>
                    <?php if ( $ShowFirstName ) { echo('<td>'.$row['FIRSTNAME'].'</td>'); } ?>

Я действительно получаю много неопределенных ошибок, когда я делаю это. Что может Вы рекомендовать, чтобы я сделал для введения значения пользователем вместе с mysql данными.

9
задан user225269 1 May 2010 в 09:20
поделиться

4 ответа

У вас может быть только один глагол (POST, GET, PUT, ...) при выполнении HTTP-запроса . Однако вы можете выполнить

<form name="y" method="post" action="y.php?foo=bar">

, и тогда PHP заполнит и $ _ GET ['foo'] , хотя отправленный запрос был отправлен через POST.

Однако ваша проблема, похоже, гораздо больше в том, что вы пытаетесь отправить сразу две формы , направленные на два разных скрипта. Это невозможно в рамках одного запроса.

51
ответ дан 4 December 2019 в 05:53
поделиться

Как сказано в других ответах, вы не можете одновременно выполнять запросы на получение и отправку. Но если вы хотите унифицировать свой PHP-код, чтобы читать переменную, полученную через запрос get или post, возможно, вы могли бы использовать $ _ REQUEST

4
ответ дан 4 December 2019 в 05:53
поделиться

POST и GET (как HEAD, FILE, DELETE и т. Д.) Являются методами HTTP . Ваш браузер отправляет HTTP-запрос на сервер с одним из них перед запросом, поэтому вы не можете отправлять два метода одновременно (пример заголовка запроса из веб-сниффера):

GET / HTTP/1.1[CRLF]
Host: web-sniffer.net[CRLF]
Connection: close[CRLF]
User-Agent: Web-sniffer/1.0.31 (+http://web-sniffer.net/)[CRLF]
Accept-Encoding: gzip[CRLF]
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7[CRLF]
Cache-Control: no[CRLF]
Accept-Language: de,en;q=0.7,en-us;q=0.3[CRLF]
Referer: http://web-sniffer.net/[CRLF]

Большое отличие от GET и POST заключается в том, что GET извлекает ответ с url , а POST также отправляет некоторые данные содержимого на этот URL. Когда вы отправляете форму, данные собираются в стандартном формате, определяемом атрибутом enctype, и отправляются, также на этот раз, по URL-адресу.

Кроме того, URL-адрес форматируется стандартным образом, и часть строки, находящаяся за символом ? , называется ЗАПРОСНАЯ СТРОКА .

Когда сервер получает данные, он передает эту информацию в PHP, который считывает URL и метод, тело (данные) запроса и множество других вещей. Наконец, он заполняет свои суперглобальные массивы этими данными, чтобы вы знали, что отправляет пользователь ( $ _ SERVER , $ _ GET и $ _ POST и множество других);

Важное примечание! Также, если PHP заполняет суперглобальный $ _GET строкой запроса URL и, в конечном итоге, суперглобальный $ _POST данными, найденными в теле запроса, $ _ POST и $ _GET не связаны с HTTP .

Итак, если вы хотите заполнить $ _ POST и $ _ GET одновременно, вы должны отправить форму следующим образом:

<form method="post" action="http://myurl/index.php?mygetvar=1&mygetvar=2">
    <input name="year" type="text" />
    <imput type="submit" />
</form>
3
ответ дан 4 December 2019 в 05:53
поделиться

Вы не можете сделать GET и POST одновременно.

Объедините две формы в одну.

Например, объедините формы в одну форму 'post'. В своем коде извлеките все, что вам нужно, из $_POST.

И 'YEAR' не равно 'Year', ваш пример кода также требует доработки.

4
ответ дан 4 December 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: