2017-06-03 4 views
-1

Ich versuche Post zu verwenden, um etwas aus meinem Formular zu lesen, aber auch ein einfaches Beispiel von https://www.w3schools.com/php/php_forms.asp funktioniert nicht. Mein eigener Code ist dies:POST funktioniert nicht auf meinem Computer

<form id="eingabe" method="post" action="../php/suche.php"> 
    <input id="suche" name="suche" type="text" size="50px" placeholder="Suche"> 
    <input type="submit" value="Submit"> 
</form> 

suche.php

$rows = array(); 
    if (isset($_POST['suche'])) { 
     $suche = $_POST['suche']; 
     $sql= "SELECT * FROM Buch WHERE titel LIKE '%" . $suche . "%' OR autor LIKE '%" . $suche ."%' OR isbn LIKE '%" . $suche ."%' OR genre LIKE '%" . $suche ."%'"; 
     $result=$conn->query($sql); 
     if ($result->num_rows > 0) { 
      while ($row=$result->fetch_assoc()) { 
       $titel = $row['titel']; 
       $autor = $row['autor']; 
       $isbn = $row['isbn']; 
       $genre = $row['genre']; 
       $preis = $row['preis']; 
       $bild = $row['image']; 
       $beschreibung = $row['beschreibung']; 
       $rows[] = $row; 
      } 
     } 
    } 

die var_dump($_POST) ist immer array(0) { } aber in den var_dump($GLOBALS), ich das Wort i Senden finden:

array(6) { ["HTTP_RAW_POST_DATA"]=> string(10) "suche=test" ["_GET"]=> array(0) { } ["_POST"]=> array(0) { }... 

Frage ist:

Ich benutze php7.1, aber schon versuchte ältere Versionen. Wenn ich zu GET ändern, funktioniert es, aber ich muss wirklich POST verwenden. Ich habe auch meine php.ini überprüft, aber POST ist aktiviert und hat 128MB für ussage. Hat jemand eine Idee, warum Post nicht für mich arbeitet?

PS: Ein Freund von mir ist mit der exakt gleichen Code und es funktioniert für ihn perfekt, so dass ihr nicht der Code

+0

Sind Sie und Ihr Freund den Code auf dem gleichen Server laufen? Wenn nicht, haben Sie und Ihr Freund die gleiche Serverkonfiguration und schreiben die Regeln neu? – chris85

+0

wir arbeiten lokal, und nur die Datenbank ist auf dem Server? Wenn dies Ihre Frage beantwortet – memporer

+0

PHP ist eine serverseitige Sprache, was auch immer es ist, ist Ihr Server. – chris85

Antwort

0

Sie können den Code so schreiben -

$rows = array(); 
if($_SERVER["REQUEST_METHOD"] == "POST"){ 
    $suche = $_POST['suche']; 
    $sql= "SELECT * FROM Buch WHERE titel LIKE '%" . $suche . "%' OR autor LIKE '%" . $suche ."%' OR isbn LIKE '%" . $suche ."%' OR genre LIKE '%" . $suche ."%'"; 
    $result=$conn->query($sql); 
    if ($result->num_rows > 0) { 
     while ($row=$result->fetch_assoc()) { 
      $titel = $row['titel']; 
      $autor = $row['autor']; 
      $isbn = $row['isbn']; 
      $genre = $row['genre']; 
      $preis = $row['preis']; 
      $bild = $row['image']; 
      $beschreibung = $row['beschreibung']; 
      $rows[] = $row; 
     } 
     echo "<pre>"; 
     print_r($rows); 
    } 
}else{ 
    echo "POST method not working"; 
} 

hier, wenn Ihr Die POST-Methode funktioniert nicht, dann erhalten Sie die Meldung "POST-Methode funktioniert nicht". Wenn Ihre POST-Methode funktioniert, erhalten Sie Ihre Daten mit der Funktion print_r().

Hinweis - Dieser Code dient nur zu Testzwecken. Bitte ändern Sie ihn entsprechend Ihren Anforderungen.

+0

"Hinweis: Undefinierter Offset: 0 in ..." – memporer

+0

Sollte 'if ($ _ SERVER [" REQUEST_METHOD "] ==" POST ") {' - schließen eckige Klammer war an der falschen Stelle. –

+0

Sorry Tippfehler –

Verwandte Themen