Salut tout le monde.
Im avoir un problème avec ma session PHP vars se perdre ou ne pas écrire d'informations du tout.
So heres un couple de l'information.
1. Il travaille sur ma machine NT localhost.
2. Lorsque son ne fonctionne pas sur mon serveur de son hôte client. (Hôte FATCOW à fatcow.com)
3. Hôte serveur utilise PHP: 4.4.8
Donc, fondamentalement, j'ai une page de connexion html (login.php)
Alors envoyez-login.php info à (login-exec. php) (ci-je vérifier ma base de données pour voir si nom d'utilisateur existe et si oui redirection utilisant la fonction header...
Puis la redirection mène à une page "membre" où j'ai require (auth.php) pour vérifier si la session existe si non, je suis redirigé vers page Access denied
Et theres le problème, il me donnent toujours l'accès refusé page.
So heres my code.
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");
- }
- ?>
-
Et voici mon AUTH. fichier 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 seen 1000 des postes avec des gens ayant le même problème, mais je n'arrive pas à résoudre mon problème.
Je n'ai pas utilisé
session_write_close (); avant que la redirection en-tête.
Je n'ai pas utiliser session_start () pour toutes les pages qui utilise $ SESSION [ "xxx"]
Encore une fois, comme je l'ai dit, il fonctionne sur ma machine localhost.
Je vous remercie d'avance pour votre aide.