doulaozhi6835 2015-10-31 01:46
浏览 41

使用session的php页面上的未定义变量

I've tried building a secured area using php session(). Basic workflow:

log in->go to checkuser page that:

  • queries database for user
  • starts a session -> session_start(); and then sets session variables
  • goes to home member page

code on check userpage

session_start();
error_reporting(E_ALL); ini_set('display_errors', 1);
include 'dbconnect.php';
$email_address = isset($_POST['email_address']) ?        $_POST['email_address'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';

  $passwordmd5 = md5($password);
  $result = mysqli_query($con, "SELECT * FROM users WHERE email_address='$email_address' AND password='$passwordmd5' AND activated='1'");
  $login_check = mysqli_num_rows($result);
  if($login_check > 0){
  while($row = mysqli_fetch_array($result)){
  foreach( $row AS $key => $val ){
    $$key = stripslashes( $val );
}
      $_SESSION['first_name'] = $first_name;
}

i notice if i leave the site and hit back in browser i get from the session variable being undefined. Makes sense to me because i left the secure page. But something seems wrong here. Is this supposed to work like this. What is best method to fix? This is what sits on top of each page in the secured site

ob_start();
session_start();
require_once ('verify.php'); 
$page_title = 'sponsor.php';
$sid = session_id();
$first_name=$_SESSION['first_name'];

An error occurred in script '/home/buzrw/public_html/web/website/php/main.php' on line 8: Undefined index: first_name

the verify.php script which contains my error handler is as follows:

<?php 

// Flag variable for site status:
define('LIVE', TRUE);

// Admin contact address:
define('EMAIL', 'myemail');

// Site URL (base for all redirections. This is the address they will be redirected to if they try to access a protected page and they are not logged in.):
define ('BASE_URL', 'http://www.website.org/index.php');

// Location of the MySQL connection script:
define ('MYSQL', 'dbconnect.php');


// Create the error handler:
debug_backtrace;
function my_error_handler ($e_number, $e_message, $e_file, $e_line, $e_vars) {

// Build the error message.
$message = "<p>An error occurred in script '$e_file' on line $e_line: $e_message
<br />";

// Add the date and time:
$message .= "Date/Time: " . date('n-j-Y H:i:s') . "
<br />";

// Append $e_vars to the $message:
$message .= "<pre>" . print_r ($e_vars, 1) . "</pre>
</p>";

if (!LIVE) { // Development (print the error).

    echo '<div class="error">' . $message . '</div><br />';

} else { // Don't show the error:

    // Send an email to the admin:
    mail(EMAIL, 'Site Error!', $message, 'From: admin@website.org');

    // Only print an error message if the error isn't a notice:
    if ($e_number != E_NOTICE) {
        echo '<div class="error">A system error occurred. We apologize for the inconvenience.</div><br />';
    }
} // End of !LIVE IF.

} // End of my_error_handler() definition.

// Use my error handler.
set_error_handler ('my_error_handler');
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题
    • ¥15 (标签-Python|关键词-socket)
    • ¥15 keil里为什么main.c定义的函数在it.c调用不了
    • ¥50 切换TabTip键盘的输入法
    • ¥15 可否在不同线程中调用封装数据库操作的类