사용자가 이름, 성, 학생 번호 및 이메일과 같은 형식으로이 데이터를 추가해야하는 로그인 양식을 만들려고했습니다.PHP가있는 MySQL에서 여러 양식 필드의 유효성을 검사하는 방법은 무엇입니까?
MySQL 데이터베이스에 테스트 사용자가 있지만 지금까지 작동하지 않습니다. 내 코드는 다음과 같습니다.
<?php
//Start session//
session_start();
//Include database connection file and header file//
include_once('resources/includes/database.inc.php');
include_once('header.php');
?>
<!-- Login form -->
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
//Escape de gebruikersnaam
$sFirstName = mysql_real_escape_string($_POST['firstname']);
$sLastName = mysql_real_escape_string($_POST['lastname']);
$sStudentNumber = ($_POST['studentnumber']);
$sEmail = ($_POST['email']);
$sSQL = 'SELECT `id`, `firstName`, `lastName`, `studentNumber`, `email`, `accepted` FROM `student` WHERE `firstName` = \'' . $sFirstName . '\'';
$rsSQL = mysql_query($sSQL);
$aUser = mysql_fetch_array($rsSQL);
//Er is geen rij gevonden en $aUser is false:
//Dat betekent dat er geen user is met de opgegeven gebruikersnaam
if($aUser == false)
{
echo '<strong>Deze gebruiker is niet gevonden</strong>';
}
//Vergelijk de rest
elseif($aUser['lastname'] != $sLastName)
{
echo '<strong>De achternaam is niet bekend</strong>';
}
elseif($aUser['studentnumber'] != $sStudentNumber)
{
echo '<strong>Het studentnummer is niet geldig</strong>';
}
elseif($aUser['email'] != $sEmail)
{
echo '<strong>Het e-mailadres is niet bekend</strong>';
}
//Inloggen gelukt
else
{ //De combinatie is goed, maak de sessie aan
$_SESSION['login_user'] = $aUser['id'];
//Verstuur de gebruiker door
header("location: studentloggedin.php");
//Mocht de redirect hierboven niet werken:
echo '<strong>Je bent ingelogd, klik <a href="studentloggedin.php">hier</a> om door te gaan.</strong>';
}
}
?>
<form method="post">
<table>
<tr>
<td>Voornaam</td>
<td><input type="text" name="firstname" /></td>
</tr>
<tr>
<td>Achternaam</td>
<td><input type="text" name="lastname" /></td>
</tr>
<tr>
<td>Studentnummer</td>
<td><input type="text" name="studentnumber" /></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email" /></td>
</tr>
<tr>
<td><input type="submit" value="Inloggen" /></td>
</tr>
</table>
</form>
<?php
$html = file_get_contents('resources/templates/homecontent.template.html');
print $html;
include_once('resources/templates/footer.template.html');
?>
누구나 내가 뭘 잘못하고 있는지 알 수 있습니까? 내 데이터베이스 사용자에 따라 모든 것을 정확하게 채우면 'De achternaam is niet bekend'입니다. 성은 인식되지 않습니다. 아마도 MySQL 쿼리의 유효성을 검사해야합니까?
내 삭제 된 답변에 대한 코멘트에서 "학교 프로젝트 용입니다."숙제에 대해 행운을 내세요! – JakeGould
안녕하세요, 제이크. 고맙습니다. 미안 해요. 이 직업을 가진 사람들 만 전문적으로 도움을 받아야한다고 생각하십니까? 나는 stackoverflow 여기에 더 이상의 질문을하지 않을 것 같아요. 나는이 주제에 매우 관심이 있으며 나중에 이것을 전문적으로하고 싶을 것입니다. 저는 이제 겨우 20 살이 고 막 배우기 시작했습니다. – Julia
"나는 지금 겨우 20 살이 며 방금 배우기 시작했습니다."나는이 사이트와 다른 곳에있는 사람들보다 더 젊은 사람들을 도왔으며 귀하의 코드는 재앙입니다. 답변을 제공 할 때 관련없는 다른 질문을하는 것이 도움이되지 않습니다. 이것은 다른 사람들이 당신을 위해 당신의 일을하도록 할 수있는 대화방이 아닙니다. @ Devon의 대답이 도움이 될 것입니다. 행운을 빕니다! – JakeGould