2016-12-26 3 views
-1

Hallo Jungs Ich versuche Ergebnis auf der Homepage von PHP Optionen zu zeigen, mein Code zu suchen ist, wie untenphp Suche nach Optionen

<?php 
include 'db.php'; 
$tbl_name="socio"; 
if(isset($_POST['search'])){ 
    $input = $_GET['stYear']; 
    $sql = "SELECT * FROM socio where year='$input'"; 
    $res = mysqli_query($con, $sql) or die($sql); 
    while($row = mysqli_fetch_array($res)) 
    { 
    echo $row['socio']; 
    } 
    mysqli_close($con); 
} 
?> 

Fehler

Notice: Undefined index: stYear in C: \ Apache24 \ htdocs in Zeile 9

+1

'$ _GET' oder' $ _POST'? Sie sind auch offen für SQL-Injektionen. Wenn Sie nur die Spalte "sozio" benötigen, sollten Sie nur diese Spalte auswählen. – chris85

+0

Mögliches Duplikat von [PHP: "Notice: Undefinierte Variable" und "Notice: Undefined Index"] (http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) – chris85

+0

Hallo Ich bin nicht sicher, wo $ _GET oder $ _POST Variable auch soziales ist eine Tabelle – Krish

Antwort

0

Sie haben Ihre Eingabe nicht bestätigt. Daher das Problem. Überprüfen und bereinigen!

<?php 
include 'db.php'; 
if(isset($_POST['search'])) { 
    $_POST['stYear'] = array_key_exists('stYear', $_POST) ? mysqli_real_escape_string($con, $_POST['stYear']) : null; 
    if (empty($_POST['stYear'])) { 
     exit('Invalid year given'); 
    } 
    $sql = "SELECT * FROM socio WHERE year ='$input'"; 
    $res = mysqli_query($con, $sql) or die($sql); 
    while ($row = mysqli_fetch_array($res)) { 
     echo 'You selected '.$input; 
    } 
    mysqli_close($con); 
} 

Auch, wenn Sie nur die Jahre verwenden möchten Sie in Ihrem Formular zur Verfügung gestellt haben, können Sie sie weiße Liste in_array($_POST['stYear'], ['2014-15', '2015-16', '2016-17', '2017-18', '2018-19']) durch Zugabe. Beispiel unten:

<?php 
include 'db.php'; 
if(isset($_POST['search'])) { 
    $_POST['stYear'] = array_key_exists('stYear', $_POST) && in_array($_POST['stYear'], ['2014-15', '2015-16', '2016-17', '2017-18', '2018-19']) ? $_POST['stYear'] : null; 
    if (empty($_POST['stYear'])) { 
     exit('Invalid year given'); 
    } 
    $sql = "SELECT * FROM socio WHERE year ='$input'"; 
    $res = mysqli_query($con, $sql) or die($sql); 
    while ($row = mysqli_fetch_array($res)) { 
     echo 'You selected '.$input; 
    } 
    mysqli_close($con); 
} 
+0

Hallo ich habe Ihre Validierung hinzugefügt, aber es sagt Ungültiges Jahr durch die Art, wie ich meinen ganzen Code hier für Ihre Referenz setzen – Krish

+0

include 'db.php'; $ tbl_name = "sozio"; if (isset ($ _ POST ['Suchen'])) { $ input = $ _POST ['stYear']; if (isset ($ _ POST ['Suchen'])) { $ _POST ['stYear'] = array_key_exists ('stYear', $ _POST) && ctype_digit ($ _ POST ['stYear'])? $ _POST ['stYear']: null; if (leer ($ _ POST ['stYear'])) { Exit ('Ungültiges Jahr angegeben'); } $ sql = "SELECT * FROM sozio WHERE Jahr = '$ input'"; $ res = mysqli_query ($ con, $ sql) oder sterben ($ sql); while ($ row = mysqli_fetch_array ($ res)) { \t echo "Sie ausgewählt". $ Input; } mysqli_close ($ con); } } – Krish

+0

\t \t \t \t \t \t \t
Krish