Hola a todos.
Im teniendo un problema con mi sesión de PHP vars perderse o de no escribir información en absoluto.
Así heres un par de información.
1. Está trabajando en mi máquina NT localhost.
2. Cuando no su trabajo en mi servidor de su máquina cliente. (Host FatCow en fatcow.com)
3. Servidor host está usando PHP: 4.4.8
Así que básicamente tengo una página de acceso HTML (login.php)
Luego login.php enviar información a (login-exec. php) (Aquí puedo comprobar mi base de datos para ver si existe nombre de usuario y si es así reorientar el uso de cabecera...
Luego va a la redirección de una página de "miembro" donde me requieren (auth.php) para comprobar si existen período de sesiones si no me redirecciona a ACCESS DENIED PÁGINA
Y theres el problema, siempre me dan la página de acceso denegado.
Así Heres mi código.
login-exec.php
<?php
//Start session
session_start();
//Include database connection details
require_once('../Connections/golf_stats.php');
//Array to store validation errors
$errmsg_arr = array();
//Validation error flag
$errflag = false;
//Connect to mysql server
$link = mysql_connect($hostname_golf, $username_golf_stats, $password_golf_stats);
if(!$link) {
die('Failed to connect to server: ' . mysql_error());
}
//Select database
$db = mysql_select_db($database_golf_stats, $golf_stats);
if(!$db) {
die("Unable to select database");
}
//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
//Sanitize the POST values
$login = clean($_POST['login']);
$password = clean($_POST['password']);
//Input Validations
if($login == '') {
$errmsg_arr[] = 'Login ID missing';
$errflag = true;
}
if($password == '') {
$errmsg_arr[] = 'Password missing';
$errflag = true;
}
//If there are input validations, redirect back to the login form
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: login.php");
exit();
}
//Create query
mysql_select_db($database_golf_stats, $golf_stats);
$query_members = "SELECT * FROM members WHERE username = '$login'";
$list_members = mysql_query($query_members, $golf_stats) or die(mysql_error());
$row_members = mysql_fetch_assoc($list_members);
$totalRows_members = mysql_num_rows($list_members);
//Check whether the query was successful or not
if($list_members) {
if($totalRows_members == 1) {
//Login Successful
$_SESSION['SESS_MEMBER_USERNAME'] = $row_members['username'];
$_SESSION['SESS_JOUEUR_ID'] = $row_members['idJoueur'];
$_SESSION['SESS_JOUEUR_NAME'] = $row_members['name'];
session_write_close();
header("location: ../members/members-index.php");
exit();
}else {
//Login failed
header("location: login-failed.php");
exit();
}
}else {
die("Queryisfailed");
}
?>
-
- <?php
- //Start session
- session_start();
-
- //Include database connection details
- require_once('../Connections/golf_stats.php');
-
- //Array to store validation errors
- $errmsg_arr = array();
-
- //Validation error flag
- $errflag = false;
-
- //Connect to mysql server
- $link = mysql_connect($hostname_golf, $username_golf_stats, $password_golf_stats);
- if(!$link) {
- die('Failed to connect to server: ' . mysql_error());
- }
-
- //Select database
- $db = mysql_select_db($database_golf_stats, $golf_stats);
- if(!$db) {
- die("Unable to select database");
- }
-
- //Function to sanitize values received from the form. Prevents SQL injection
- function clean($str) {
- $str = @trim($str);
- if(get_magic_quotes_gpc()) {
- $str = stripslashes($str);
- }
- return mysql_real_escape_string($str);
- }
-
- //Sanitize the POST values
-
- $login = clean($_POST['login']);
- $password = clean($_POST['password']);
-
- //Input Validations
- if($login == '') {
- $errmsg_arr[] = 'Login ID missing';
- $errflag = true;
- }
- if($password == '') {
- $errmsg_arr[] = 'Password missing';
- $errflag = true;
- }
-
- //If there are input validations, redirect back to the login form
- if($errflag) {
- $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
- session_write_close();
- header("location: login.php");
- exit();
- }
-
- //Create query
- mysql_select_db($database_golf_stats, $golf_stats);
- $query_members = "SELECT * FROM members WHERE username = '$login'";
- $list_members = mysql_query($query_members, $golf_stats) or die(mysql_error());
- $row_members = mysql_fetch_assoc($list_members);
- $totalRows_members = mysql_num_rows($list_members);
-
- //Check whether the query was successful or not
- if($list_members) {
- if($totalRows_members == 1) {
- //Login Successful
- $_SESSION['SESS_MEMBER_USERNAME'] = $row_members['username'];
- $_SESSION['SESS_JOUEUR_ID'] = $row_members['idJoueur'];
- $_SESSION['SESS_JOUEUR_NAME'] = $row_members['name'];
-
- session_write_close();
- header("location: ../members/members-index.php");
- exit();
- }else {
- //Login failed
- header("location: login-failed.php");
- exit();
- }
- }else {
- die("Queryisfailed");
- }
- ?>
-
Y Heres mi AUTH. archivo php
<?php
session_start();
//Check whether the session variable SESS_MEMBER_ID is present or not
if(!isset($_SESSION['SESS_MEMBER_USERNAME'])) {
header("location: ../login/access-denied.php");
exit();
}
?>
-
- <?php
- session_start();
-
- //Check whether the session variable SESS_MEMBER_ID is present or not
- if(!isset($_SESSION['SESS_MEMBER_USERNAME'])) {
- header("location: ../login/access-denied.php");
- exit();
- }
- ?>
-
Ive visto 1000 de los puestos con personas que tienen el mismo problema, pero no puedo resolver mi problema.
Hice uso
session_write_close (); antes de la redirección de cabecera.
Hice uso de session_start () para todas las páginas que utiliza $ session [ "xxx"]
Una vez más, como he dicho, funciona en mi máquina localhost.
Muchas gracias de antemano por su ayuda.