我有一个客户登录信息,客户使用电子邮件和应用程序代码登录。当客户正确登录时,它将转到PROFILE.PHP。在该配置文件中,我只需要获取并回显该客户的详细信息。
我已经尝试过这个错误了。
PROFILE.PHP
<?php
include("session.php");
$email = $_POST['email'];
$code = $_POST['code'];
$sql = mysql_query("SELECT firstname, lastname, mobileno FROM `loanapp` WHERE code = '$code' AND email = '$email'");
while ($row = mysql_fetch_array($sql)) {
echo $row['firstname'].'<br>';
echo $row['lastname'].'<br>';
echo $row['mobileno'].'<br>';
}
?>
session.php文件
<?php
include('config.php');
session_start();
$check=$_SESSION['login_code'];
$session=mysql_query("SELECT code FROM `loanapp` WHERE code='$check' ");
$row=mysql_fetch_array($session);
$login_session=$row['code'];
if(!isset($login_session))
{
header("Location:../index.php");
}
?>
当客户正确登录时,需要回显该客户的所有细节。
答案 0 :(得分:1)
我同意ByteHamster, 您的代码易受SQL注入攻击 - &gt; http://www.w3schools.com/sql/sql_injection.asp
始终使用prepare语句。 这是一个快速登录代码:
try {
$conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
$conn->exec("SET CHARACTER SET utf8"); // Sets encoding UTF-8
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT * FROM users WHERE userID = :usr AND userPass = :pas;");
$stmt->bindParam(':usr', $user);
$stmt->bindParam(':pas', $pass);
$stmt->execute();
if($stmt->rowCount() > 0){
echo "User Exists"; // You can retrieve the user data now
} else {
echo "non existant"; // wrong username or password
}
$conn = null; // Disconnect
}
catch(PDOException $e) {
echo $e->getMessage();
}
答案 1 :(得分:0)
profile.php
<?php
session_start()
include("session.php");
$email = $_POST['email'];
$code = $_POST['code'];
$sql = mysql_query("SELECT firstname, lastname, mobileno FROM `loanapp` WHERE code = '$code' AND email = '$email'");
while ($row = mysql_fetch_array($sql)) {
$_SESSION['firstname'] = $row['firstname'];
$_SESSION['lastname'] = $row['lastname'];
$_SESSION['mobileno'] = $row['mobileno'];
}
?>
然后你可以随时使用它们 例如,
<div><?php echo $_SESSION['firstname'];?></div>
答案 2 :(得分:0)
首先,我建议你不要在profile.php中启动session_start()
会话,因为你已经在页面中包含了session.php,并且已经在session.php中启动了会话。 / p>
另外我建议在页面开头使用该功能,包括config.php,或者你也可以使用config.php中的会话功能。
以下是非常简单的解释代码。
<?php
// Defining variables of values
$email = $_POST['email'];
$code = $_POST['code'];
// Select the data using mysql query
$sql = mysql_query("SELECT * FROM `loanapp` WHERE code = '$code' AND email = '$email'");
// Looping to get all the data into session
while ($row = mysql_fetch_assoc($sql)) {
$_SESSION['firstname'] = $row['firstname'];
$_SESSION['lastname'] = $row['lastname'];
$_SESSION['mobileno'] = $row['mobileno'];
}
?>
我在代码中做了哪些更改:
session_start()
*
,以防您需要更多详细信息
未来所以你需要用$ row添加密钥。但使用*是
建议您的表格是否有有限的字段mysql_fetch_assoc()
用于关联数组,以便获取数组
使用键名称字段名称,而不是任何额外的数字键注意:如果您在查询中指定字段,则可以轻松创建 所有带有字段名称的会话都使用foreach循环。
我希望它也能帮助你理解概念点。