Gönderebilir ve php aynı anda almak

5 Cevap php

Do you have any suggestions with my problem. I need to use get and post at the same time. Get because I need to output what the user has typed. And post because I need to access the mysql database in relation to that input. It looks something like this:

<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>

Bu irade çıktı mysql içeriği kullanıcı kontrol edecek ne bağlı:

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

Ve birleştirilen iki form action bu gibi bir şey olacaktır:

   <?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>'); } ?>

Bunu yaparken gerçekten tanımsız hataları çok olsun. Eğer ben mysql veri ile birlikte kullanıcı tarafından girilen değeri almak için yapmanız gereken ne tavsiye edebilirsiniz.

5 Cevap

Bir HTTP Request yaparken tek verb (POST, GET, PUT, ...) olabilir. Ancak, bunu yapabilirsiniz

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

gönderilen İstek POST'ed olmasına rağmen ve daha sonra PHP, $_GET['foo'] de dolduracaktır.

Ancak, sorunun iki farklı komut yönelik, send two forms at once çalıştığınız o kadar daha fazla gibi görünüyor. Bu bir isteği içinde imkansızdır.

Siz aynı zamanda bir GET ve POST yapamaz.

Birine iki formları birleştirin.

Örneğin bir 'post' forma formları birleştirir. Kodunuzu ekstrede ne olursa olsun $ _POST ihtiyacınız.

Ve 'YIL' Yıl 'eşit değil, örnek kod da çalışma ihtiyacı yoktur.

POST ve (BAŞ, DOSYA, silme vb gibi) HTTP methods GET. Tarayıcınız böylece aynı zamanda (bir web sniffer gelen istek başlığının örneği) iki yöntemi gönderilen olamaz isteği önünde bunlardan biri ile sunucuya bir HTTP isteği göndermek:

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 ve POST Bu bir url ve POST bir yanıt almak GET olan ikinci büyük fark url de bazı içerik veri göndermek. Eğer formu gönderdiğinizde, veri enctype niteliği tarafından tanımlanan ve bir url için, bu kez de gönderilen standart bir formatta toplanır.

Ayrıca url standart bir şekilde biçimlendirilmiş ve ? karakter arkasında bulunan dize bölümü QUERY STRING denir.

Sunucu verileri aldığında, bu URL'yi okur ve yöntemi, vücut isteği ve diğer şeylerin büyük miktarda (veri) okur PHP bu bilgileri iletişim kurar. Son olarak size bir kullanıcı ($_SERVER, $_GET ve $_POST gönderir ne bildirmek için bu veri ile fills onun süper küresel diziler ve bir demet diğerleri);

Önemli Uyarı! Ayrıca PHP URL sorgu dizesi ile $ _GET superglobali doldurmak ve istek vücutta bulunan verilerle sonunda $ _POST süper küresel eğer, $_POST and $_GET are not related to HTTP.

Yani, isterseniz $_POST doldurmak ve $_GET, aynı zamanda, bu şekilde form göndermek gerekir:

<form method="post" action="http://myurl/index.php?mygetvar=1&mygetvar=2">
    <input name="year" type="text" />
    <imput type="submit" />
</form>

Diğer cevaplar Saig gibi, aynı zamanda bir get ve post isteği yapamaz. Ama sen, belki kullanabilirsiniz bir get veya post isteği ile alınan bir değişken okumak için PHP kodu birleştirmek istiyorsanız $_REQUEST

Ben bu test değil ama bir formun action değeri üzerinden GET değişkenleri göndermek için olası bir çözüm ...

$request_uri = $_SERVER['REQUEST_URI'];
$request_uri = str_replace("&", "?", $request_uri);
$request_args = explode("?", $request_uri);
foreach($request_args as $key => $val) {
    if(strpos($val, "=") > 0) {
        $nvp_temp = explode("=", $val);
        $_GET[$nvp_temp[0]] = $nvp_temp[1];
    }
}

Tamamen aptal kanıt yok, ama ben bir başlık ("Konum:") ile bir sorun karşılaştım dahil hata erken olsun böyle http://website.com/page?msg=0 gibi bir url ile $ _GET altında sunucu tarafından görülüyor ama olmamak değişkenler $ _SERVER ['REQUEST_URI'] değişkeni içinde var. Bu yardımcı olur ve iyi şanslar umut!