我有一个从数据库中提取的页面,显示了一些缩略图和一些关于它们的信息。我有一个"阅读更多"每个人的按钮。但您需要登录才能阅读有关该人的更多信息。
按"阅读更多"将打开一个弹出窗口,向用户提供"登录" (已有帐户)或"创建新帐户"。
用户登录后,我希望该页面重定向到特定人员的个人资料。我的问题是我无法找出存储该id变量的位置。如何将该变量传递到弹出窗口,然后传递到重定向链接。
// User Log In Form
if (isset($_POST['submit']) && $_POST['submit'] == 'userSignIn') {
if($_POST['usersEmail'] == '') {
$msgBox = alertBox("Your User Email Address is required.", "<i class='fa fa-times-circle'></i>", "danger");
} else if($_POST['password'] == '') {
$msgBox = alertBox("Your Account Password is required.", "<i class='fa fa-times-circle'></i>", "danger");
} else {
// Check if the User account has been activated
$usersEmail = (isset($_POST['usersEmail'])) ? $mysqli->real_escape_string($_POST['usersEmail']) : '';
$check = $mysqli->query("SELECT isActive FROM users WHERE usersEmail = '".$usersEmail."'");
$row = mysqli_fetch_assoc($check);
// If the account is active - allow the login
if ($row['isActive'] == '1') {
$usersEmail = $mysqli->real_escape_string($_POST['usersEmail']);
$password = encryptIt($_POST['password']);
if($stmt = $mysqli -> prepare("
SELECT
userId,
usersEmail,
usersName
FROM
users
WHERE
usersEmail = ? AND password = ?
")) {
$stmt -> bind_param("ss",
$usersEmail,
$password
);
$stmt -> execute();
$stmt -> bind_result(
$userId,
$usersEmail,
$usersName
);
$stmt -> fetch();
$stmt -> close();
if (!empty($userId)) {
session_start();
$_SESSION["userId"] = $userId;
$_SESSION["usersEmail"] = $usersEmail;
$_SESSION["usersName"] = $usersName;
$id = **NEED PERSON'S ID**
header("Location: http://scout.militarypropertyproject.com/index.php?page=scout_detail&id=".$id."");
} else {
$msgBox = alertBox("Login Failed. Please check your entries." , "<i class='fa fa-times-circle'></i>", "danger");
}
}
// Update Last Visited Date for User
$lastVisited = date("Y-m-d H:i:s");
$sqlStmt = $mysqli->prepare("
UPDATE
users
SET
lastVisited = ?
WHERE
userId = ?
");
$sqlStmt->bind_param('ss',
$lastVisited,
$userId
);
$sqlStmt->execute();
$sqlStmt->close();
} else if ($row['isActive'] == '0') {
// If the account is not active, show a message
$msgBox = alertBox("Your Account is currently inactive, and you can not log in.", "<i class='fa fa-warning'></i>", "warning");
} else {
// No account found
$msgBox = alertBox("No Account found for that Email Address & Password.", "<i class='fa fa-times-circle'></i>", "danger");
}
}
}
////////////////////用户排成行/////////////////// /////////
<div class="row">
<div id="FilterContainer">
<?php foreach ($categories as $category) { ?>
<div class="col-md-4">
<div id = "user-square">
<div class="avatar">
<center> <img src="<?php echo '../'.$avatarDir.$category['usersAvatar']; ?>" class="publicAvatar" /></center>
</div>
<div class = "user_bio_heading"><?php echo $category['name']; ?>
<?php $starNumber = $category['avgstars'];
for($x=1;$x<=$starNumber;$x++) {
echo '<i class="fa fa-star"></i>';
}
if (strpos($starNumber,'.')) {
echo '<i class="fa fa-star-half"></i>';
$x++;
}
while ($x<=5) {
echo '<i class="fa fa-star-o"></i>';
$x++;
}
?>
</div>
<div class = "user_bio"><?php echo substr($category['bio'], 0, 150) ?>...
<?php $_SESSION["scoutUserId"] = $category['id'];
?>
</div>
<a data-toggle="modal" href="#signIn" class="btn btn-warning btn-sm btn-icon"><i class="fa fa-unlock-alt"></i> Read More</a>
</div>
</div>
<?php }
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div><!-- row -->
////////////////////////////// / POP UP WINDOW ///////////// /////////////
<div class="modal fade" id="signIn" tabindex="-1" role="dialog" aria-labelledby="newAccount" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header success">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i></button>
<h4 class="modal-title">Sign In</h4>
</div>
<form action="" method="post">
<p>All ready have a user account? Please Sign in.</p>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
<input type="email" class="form-control" required="" placeholder="User's Email Address" name="usersEmail" />
</div>
<br />
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-lock icon-lock"></i></span>
<input type="password" class="form-control" required="" placeholder="Account Password" name="password" />
</div>
<div class="row mt10">
<div class="col-md-4">
<p><small><a data-toggle="modal" href="#resetPassword">Reset Password?</a></small></p>
</div>
</div>
<div class="modal-footer">
<input type="hidden" name="captcha" value="" />
<button type="input" name="submit" value="userSignIn" class="btn btn-success btn-icon"><i class="fa fa-check-square-o"></i> Sign In</button>
<button type="button" class="btn btn-warning btn-icon" data-dismiss="modal"><i class="fa fa-times-circle"></i> Cancel</button>
</div>
<hr>
<p>Don't have an account with us yet? No worries we'll get you set up real quick!</p>
<button type="input" name="submit" value="newAccount" class="btn btn-success btn-icon"><i class="fa fa-check-square-o"></i> Create Account</button>
</form>
</div>
</div>
</div>
<div class="col-md-8">
<span class="pull-right">
<button type="input" name="submit" value="userSignIn" class="btn btn-success btn-sm btn-icon"><i class="fa fa-sign-in"></i> Sign In</button>
<a data-toggle="modal" href="#newAccount" class="btn btn-warning btn-sm btn-icon"><i class="fa fa-unlock-alt"></i> Create New Account</a>
</span>
</div>
</div>
</form>
///////////////////////////////////////////////
提前感谢您提供的任何帮助。
答案 0 :(得分:0)
如何在Javascript中传递用户的ID,然后将其作为隐藏字段插入到表单中,以便在用户成功登录时,您知道他们想要去哪里。
首先将新数据属性添加到此代码中:
<a data-toggle="modal" href="#signIn" class="btn btn-warning btn-sm btn-icon"><i class="fa fa-unlock-alt"></i> Read More</a>
所以它变成了(注意data-uid):
<a data-toggle="modal" href="#signIn" class="btn btn-warning btn-sm btn-icon"><i class="fa fa-unlock-alt" data-uid="<?=$category['id']?>"></i> Read More</a>
然后在弹出的代码中:
<input type="hidden" name="captcha" value="" />
您添加了新的隐藏输入标记:
<input type="hidden" name="captcha" value="" />
<input id="wanted_user" type="hidden" name="userid" value="" />
最后,在javascript模式弹出代码中,您将data-uid插入到隐藏字段中。通过听取谁触发事件,您可以获得正确的ID。
$('#signIn').on('show.bs.modal', function (e) {
var target_user = $(e.relatedTarget).data('uid');
$('#wanted_user').val(target_user);
});
请注意,此示例可能存在一些错误,您需要对其进行调试。