【发布时间】:2014-06-08 18:52:48
【问题描述】:
我正在尝试构建一个登录表单,用户必须在表单中添加以下数据:名字、姓氏、学生编号和电子邮件。
我的 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 岁,刚刚开始学习。
-
“我现在才 20 岁,刚刚开始学习。”我在这个网站和其他地方帮助过比这更年轻的人,你的代码是一场灾难。当提供答案时,您问另一个不相关的问题也无济于事。这不是一个可以让其他人为您工作的聊天室。 @Devon 的回答应该对您有所帮助。祝你好运!
-
要回答这个问题需要通过大量的代码。这使得如果不在问题上花费过多的时间,就很难给出好的答案。大多数人宁愿转向另一个问题。如果您将问题提炼到重现问题的尽可能小的样本,那么您获得的答案的数量、质量和清晰度也会有所提高。编辑后的问题不必和整个代码做同样的事情,它只需要重现你需要帮助的一个方面。
-
@user3671823 本网站的目的是提供对未来读者通常有用的问题和答案,以及您当前的问题。当您在充满多个问题的网站上倾倒大量代码时,您的问题会变成“此代码不起作用。为什么?”,您可以想象,除了拥有此特定代码的人之外,这对世界上的任何人都没有用 - 你。我是自学成才的,我可以直接告诉你,你能学到的最有价值的技能之一就是如何提炼问题和调试代码。隔离具体问题并询问,仅此而已。
标签: php mysql forms validation field