2017-12-09 3 views
1

Der Schüler gibt seine Anmeldeinformationen ein von:

<form action="index.php" id="courseform" method="post"> 
Enter Your First Name: <input type="text" name="fname"><br><br> 
Enter Your Last Name: <input type="text" name="lname"><br><br> 
Enter Your Student Number: <input type="text" name="student_nr"><br><br> 
    <input type="submit"> 
</form> 

ich eine Tabelle mit den Schülerdaten haben, wie unter:

Database changed 
mysql> explain student; 

    +-----------+-------------+------+-----+---------+-------+ 
    | Field  | Type  | Null | Key | Default | Extra | 
    +-----------+-------------+------+-----+---------+-------+ 
    | id  | char(6)  | NO | PRI | NULL |  | 
    | firstname | varchar(30) | NO |  | NULL |  | 
    | lastname | varchar(30) | NO |  | NULL |  | 
    | email  | varchar(50) | YES |  | NULL |  | 
    +-----------+-------------+------+-----+---------+-------+ 

4 rows in set (0.05 sec) 

Wie kann ich die 3 Werte ‚fname‘, ‚lname‘ überprüfen und 'id' (= student_nr), die in das Formular eingegeben werden, sind vollständig gültig, dh: existieren in der Tabelle?

habe ich versucht, die folgenden, aber hat nicht funktioniert:

<?php 
include 'parameter_conn.php'; 
$link = mysqli_connect("$server","$user","$pass","$db"); 

if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    }else { 
     echo "Connection Successful" . "<br>"; 
    } 

if (isset($_POST['fname'],$_POST['lname'],$_POST['student_nr'])) { 
$fname = $_POST["fname"]; 
$lname = $_POST["lname"]; 
$student_nr = $_POST["student_nr"]; 
} 
$result_student = mysqli_query($link, "SELECT * FROM student"); 
$rows_student = mysqli_num_rows($result_student); 

if($fname === $result_student['firstname'] && $lname === $result_student['lastname'] && $student_nr === $result_student['id']) { 
    echo 'found'; 
} else { 
    echo 'not found'; 
} 
+0

Woher kam '$ result_student' in Ihrem Code? – IncredibleHat

+0

Bitte zeigen Sie den Code an, mit dem Sie diese Variablen erstellen. – DrKey

+0

Randall, DrKey, danke für Feedback, hier ist der komplette PHP-Code. –

Antwort

-1

Sie können ein verwenden, wo CLOUSE in Ihrer SQL-Anweisung und einfach überprüfen, ob Sie eine passende Zeile erhalten. Bitte beachten Sie unten ist sehr unsicher und anfällig für SQL-Injection (https://en.wikipedia.org/wiki/SQL_injection), aber es veranschaulicht den Zweck. Verwenden Sie PDO

$fname = $POST['fname']; 
$email = $POST['email']; 
// .. all other fields 

$sql = "SELECT id, firstname, lastname, email FROM studentsTable WHERE firstname='".$fname."' AND lastname='".$lname."' AND email='".$email."'"; 

$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // match found 
} else { 
    // no match 
} 
+0

ja. aber hüte dich vor der SQL-Injection. Nur für Bildungszwecke. – imox

+0

Imox: Danke für die Rückmeldung, Sie sind absolut richtig. Ich werde sie später mit mysqli_real_escape_string sichern. –

+0

Evans M. Vielen Dank für Hilfe Evans.! Dank deinem Rat bin ich in die richtige Richtung. –

Verwandte Themen