php - 未定义索引:sessionName
问题描述
您好,我创建了一个登录页面,它是
<form method="POST" action="log.php">
<table border="1" cellpadding="4" cellspacing="0"
style="font-family: arial; font-size: 15px; border: 0px; text-align: left; margin-top: 5px; background-color: transparent;"
width="100%">
<thead>
<tr>
<td style="border: 0px; width: 20%; background-color: transparent;">
Username:</td>
<td style="border: 0px; width: 30%; background-color: transparent;">
<input type="text" name="email" id="email" class="form-control"
autocomplete="off" required="">
</td>
</tr>
</thead>
</table>
<table border="1" cellpadding="4" cellspacing="0"
style="font-family: arial; font-size: 15px; border: 0px; text-align: left; margin-top: 5px; background-color: transparent;"
width="100%">
<thead>
<tr>
<td style="border: 0px; width: 20%; background-color: transparent;">
Password:</td>
<td style="border: 0px; width: 30%; background-color: transparent;">
<input type="password" name="pass" id="pass" class="form-control"
autocomplete="off" required>
</td>
</tr>
</thead>
</table>
</div>
<div class="spacer-20"></div>
</div>
<!-- Social Signup -->
<div class="social-signup">
<span class="or-break"></span>
<center>
<button type="submit" name="login" class="btn btn-primary">
<span class="glyphicon glyphicon-log-in"></span> Login
</button>
No account? <a href="joinus.php"> Sign up</a>
</form>
和登录处理器如下
<?php
// Login Controller
// require('config/config.php');
include './config/config.php';
$userName = $passWord = $name = "";
if (isset ( $_POST ['login'] )) {
$userName = mysqli_real_escape_string ( $con, $_POST ['email'] );
$password = mysqli_real_escape_string ( $con, $_POST ['pass'] );
$pass = md5 ( $password );
// Block handles Doctor Login using the email
$get_doc = "SELECT * FROM doctor_registration WHERE email='$userName' AND password='$pass'";
$run_doc = mysqli_query ( $con, $get_doc );
$rows = mysqli_fetch_array ( $run_doc );
$docId = $rows ['doc_id'];
$docEmail = $rows ['email'];
$name = $rows ['first_name'] . " " . $rows ['last_name'];
if ($userName == $docEmail) {
$_SESSION ['sessionName'] = $name;
$_SESSION ['sessionId'] = $docId;
echo "<script>window.open('doctor_dashboard.php','_self')</script>";
} else {
// Block handles user Login using the username
$get_user = "SELECT * FROM users WHERE username='$userName' AND password='$pass'";
$run_user = mysqli_query ( $con, $get_user );
$rows = mysqli_fetch_array ( $run_user );
$userId = $rows ['user_id'];
$uname = $rows ['username'];
if ($userName == $uname) {
$_SESSION ['sessionName'] = $uname;
$_SESSION ['sessionId'] = $userId;
echo "<script>window.open('user_dashboard.php','_self')</script>";
} else {
echo "<script>alert('Passowrd or username is not correct!')</script>";
}
}
}
?>
对于仪表板,处理器检查电子邮件或用户名并重定向到仪表板之一。
我有两个仪表板,其中包含用于启动和存储会话的代码
<?php
session_start ();
include './config/config.php';
include './updateFunction.php';
include './InsertFunction.php';
if (isset ( $_SESSION ['sessionName'] ) && ($_SESSION ['sessionId'])) {
header ( "location:index.php" );
}
?>
每次我尝试登录两个仪表板时,我都会收到错误消息:
未定义索引:sessionName
解决方案
您应该在使用session_start()
前使用$_SESSION['sessionName'] = $name
在登录处理器中。
所以最好你应该session_start()
在页面的开头使用
推荐阅读
- python - django注释是否存在
- python - forcing a creation of 1d numpy array from a list/array of possibly iterable objects
- android - 开始任何新活动时出现 ClassNotFoundException
- bash - 参数扩展默认值为空数组
- python - 在 Django REST 框架中重构视图
- regex - 正则表达式在循环内匹配 Google 脚本?
- ionic-framework - Ionic 4 操作表:访问其他组件中的返回值
- spacy - spaCy 是否支持命名实体识别的自定义类型?
- excel - 如何修复我的代码以将其应用于所有工作表?
- python - 在“tbody”中仅打印一个“tr”标签 - Beautifulsoup