我正在开发一个项目,我希望用户输入他/她的用户名和密码,如果是正确的,请在小型登录部分下方填写表格字段。这可能吗?这是我到目前为止,我有点卡住任何建议是受欢迎的。请记住,我需要组合来自2个不同表的数据,所以我在查询中使用了LEFT JOIN。
<?php
$connect = mysql_connect("localhost","*********","******") or die ("Couldn't Connect"); //host,username,password
mysql_select_db("virtua15_j*1**") or die ("Could not find database");
$query = mysql_query("SELECT * FROM jos_users LEFT JOIN jos_comprofiler ON jos_users.id=jos_comprofiler.id WHERE jos_users.id = $id");
?>
<html>
<form action="populate.php" method='post'>
<table>
<tr>
<td>VAE Username:</td>
<td><input type='text' name='username' value=''></td>
</tr>
<tr>
<td>VAE Password:</td>
<td><input type='password' name='password' value=''></td>
</tr>
</table>
<p><input type='submit' name='submit' value='Search & Populate!'></p>
</form>
<hr>
<form action="dafreg.php" method='post'>
<table>
<tr>
<td>Fristname:</td>
<td><input type='text' name='firstname' value='<?php echo $firstname; ?>'></td>
</tr>
<tr><td>Lastname:</td>
<td><input type='text' name='lastname' value='<?php echo $lastname; ?>'></td>
</tr>
<tr>
<td>Login:</td>
<td><input type='text' name='login' value='<?php echo $username; ?>'></td>
</tr>
<tr><td>Password:</td>
<td><input type='text' name='pass' value=''></td>
</tr>
<tr><td>Country:</td>
<td><input type='text' name='country' value=''></td>
</tr>
<tr><td>Pilot:</td>
<td><input type='checkbox' name='pilot' value=''></td>
</tr>
<tr><td>ATC:</td>
<td><input type='checkbox' name='atc' value=''></td>
</tr>
<tr><td>Email:</td>
<td><input type='text' name='email' value=''></td>
</tr>
</table>
<p><input type='submit' name='submit' value='Register'></p>
</form>
</form>
</html>
答案 0 :(得分:2)
您的查询正确无误,但我SELECT
只会显示您需要的字段 - 尽量避免使用*
(为什么在您只需要2或3个字段时拉取所有字段及其数据) 。此外,请务必在执行查询时始终转义变量 - 您可以使用mysql_real_escape_string()进行此操作。
您可以通过多种方式循询查询结果,但我更喜欢mysql_fetch_assoc()。
所以你的代码看起来像这样得到名字和姓氏(因为你要加入多个表,你应该为每个字段指定表名):
$query = mysql_query("SELECT jos_users.FirstName, jos_users.LastName FROM jos_users LEFT JOIN jos_comprofiler ON jos_users.id=jos_comprofiler.id WHERE jos_users.id = " . mysql_real_escape_string($id));
if ($row = mysql_fetch_assoc($query))
{
$firstname = $row['FirstName']; //This is whatever the field is called in your table
$lastname = $row['LastName'];
}
答案 1 :(得分:0)
使用POST检索用户生成的值,例如
$username = $_POST["username"];
$password = $_POST["password"];
然后使用该信息运行任何适当的SQL查询。由于您要存储登录信息,因此应阅读有关在数据库中存储敏感信息的最佳实践。 This thread是一个很好的起点。
您的查询看起来像
$query = mysql_query("SELECT firstname, lastname, ... FROM jos_users LEFT JOIN jos_comprofiler ON jos_users.id=jos_comprofiler.id WHERE jos_users.username = " . $username);
然后,您将处理$ query以将相应的值复制到$ firstname,$ lastname等,并像您一样回显它们。