Erreur impossible d'afficher la page [Résolu]

Messages postés
33
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
- - Dernière réponse : cs_lylya
Messages postés
33
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
- 8 mars 2010 à 20:11
Bonjour, ou plutot bonsoir.
voila j'ai un probleme sur un site il devrait acceder a une autre page lorsque on s'indentifi mais ça m'affiche impossible d'afficher la page :s:s.
voila un bout de mon code sur lequel ça plante:
elseif($rowslog == 1){
//SI LOGIN CORRECT ENREGISTRE SESSION
$_SESSION['sessIdsite'] = mysql_result($resultlog,0,idsite);
$_SESSION['sessCode'] = mysql_result($resultlog,0,code);
$_SESSION['sessType']= mysql_result($resultlog,0,type);
session_register('sessIdsite');
session_register('sessCode');
session_register('sessType');
$IP=$REMOTE_ADDR;
header ("location: users/fiche.php");
}

si vous avez une idée ça serait super :):).
Merci
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
3
Merci
Oula !! il y a un paquet d'erreurs !

if (!isset($_POST['Login']) && !isset($_POST['Pwd'])){ 

=> Tu veux que les deux soient renseignés non ?, alors :
if (!isset($_POST['Login']) || !isset($_POST['Pwd'])){ 


A quoi servent tous les isset qui suivent le session_start() ?

if (strlen($Login)==13){ 

Où est définie $Login ?

Il est impératif de traiter toutes tes données post et get avec mysql_real_escape_string pour éviter les bugs et les injections.


j'ai remplacé le session_register('A'); par $_SESSION['A']=$A;
et ça marche toujours pas :s:s

Ca serait sans doute une bonne chose que tu fournisses le code tel que tu l'utilises et après modifications ça éviterait les erreurs et les interprétations.

Il y a vraiment beaucoup de fautes dans ton code et il est clair que ça ne peut fonctionner ainsi.
Je te propose dans un premier temps de corriger les plus grossières (pour le debug uniquement) :
- active l'affichage des erreurs PHP.
Tu peux mettre ces lignes tout en haut de tes scripts :
ini_set('display_errors', 1);
error_reporting(-1);

- ajoute des 'or die(mysql_error());' à toutes tes requêtes
- contrôle tes variables :
- print_r($_POST); en début de script pour vérifier le contenu de tes données postées
- print_r($_SESSION); pour vérifier tes variables de session
- echo, die(), etc ...

Cordialement,

Kohntark -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 140 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kohntark
Messages postés
318
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
11 mars 2010
0
Merci
Bonjour,

C'est un problème difficile à résoudre avec juste un petit morceau de code.

Quelques pistes éventuelles :

-> Le fichier fiche.php existe-t-il physiquement sur le serveur ?
-> Le chemin est-il bon ? Ici c'est un chemin relatif donc si tu es dans un sous-dossier il va chercher dans ce sous dossier. Exemple : tu es à l'url http://localhost/connexion/index.php, ce header va rediriger vers http://localhost/connexion/users/fiche.php. Si tu veux accéder à http://localhost/users/fiche.php tu dois mettre un '/' devant le chemin pour qu'il soit en absolu.
-> Est-ce qu'il n'y a pas une réécriture d'URL quelque part, elle peut ne pas fonctionner.





Grrrrrrrrrrr
Commenter la réponse de gibozsec
Messages postés
33
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
0
Merci
Bonjour.
bon pour le code c'est dans cette boucle que ça coince donc forcement c'est une erreur dans ce bout la du code.
autre chose j'ai vérifié tout ce que vous m'avez dit et normalement c ok, le fichier existe bien et le chemin est bon.
Je suis complètement coincée :'(:'(
Commenter la réponse de cs_lylya
Messages postés
33
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
0
Merci
Bon peut être un peut plus d'explication :
dans le header j'ai beau changer le fichier, rien ne change quand méme, aussi autre chose l'adresse qui s'affiche sur la barre des adresses de MF en local c'est http://127.1.0.0/blabla/login.php, et pas /users/fiche.php.
:'(:'(.
Commenter la réponse de cs_lylya
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Salut,

bon pour le code c'est dans cette boucle que ça coince donc forcement c'est une erreur dans ce bout la du code.

Gibozsec a raison, il n'est pas possible de t'aider avec si peu de code.
Si tu veux de l'aide tu devrais tenir compte de cette remarque et fournir le code nécessaire, parce qu'il peut y avoir un paquet de choses :
- tu n'es pas dans ce elseif mais dans la condition précédente ou suivante
- tu rediriges vers login.php dans fiche.php si les variables de sessions ne sont pas correctes, ce qui ne serait pas étonnant avec l'utilisation de session_register() D'une part c'est une fonction obsolète et de l'autre on ne voit pas où sont définies tes variables.
- etc ...

Bref, si tu veux de l'aide et règler rapidement ton souci poste le code.

Cordialement,


Kohntark -
Commenter la réponse de kohntark
Messages postés
33
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
0
Merci
Bonjour
le code en entier c'est celui la si vous pouvez m'aider please parceque ça commence à m'enerver de pas trouver
et je tiens à m'exuser si je vous derange :s:s.
<?php
session_start();
isset($sessSanoss);
isset($sessSacodeconf);
isset($sessIdsite);
isset($sessAffno);
isset($sessSamatric);
isset($sessNom);
isset($sessPrenom);
isset($sessType);

include("include/connexion_base.php");

if (!isset($_POST['Login']) && !isset($_POST['Pwd'])){
$message = "Vous devez saisir un login et un code d'accès1";
header ("location: index.php?message=$message");
exit;
}
else{
if (strlen($Login)==13){
// si l'utilisateur a bien saisi le champs Login - attention entre noss et siret
$sqllog = "SELECT idsite, saaffno,";
$sqllog .= " samatric,";
$sqllog .= " sanom, ";
$sqllog .= " saprenom ";
$sqllog .= " from salaries";
$sqllog ." where sanoss '".$_POST['Login']."'";
$sqllog ." and sacodeconf ".$_POST['Pwd'];
$resultlog = mysql_query($sqllog);
$rowslog = mysql_num_rows($resultlog);
if ($rowslog < 1){
$message="Vérifier votre login et votre code d'accès2";
header ("location: index.php?message=$message");
exit;
}
elseif ($rowslog == 1){
//SI LOGIN CORRECT ENREGISTRE SESSION

$_SESSION['sessSanoss'] = $_POST['Login'];
$_SESSION['sessSacodeconf'] = $_POST['Pwd'];
$_SESSION['sessIdsite'] = mysql_result($resultlog,0,idsite);
$_SESSION['sessAffno'] = mysql_result($resultlog,0,saaffno);
$_SESSION['sessSamatric'] = mysql_result($resultlog,0,samatric);
$_SESSION['sessNom'] = mysql_result($resultlog,0,sanom);
$_SESSION['sessPrenom'] = mysql_result($resultlog,0,saprenom);
$_SESSION['sessType']='S';
session_register('sessSanoss');
session_register('sessCodeconf');
session_register('sessIdsite');
session_register('sessAffno');
session_register('sessSamatric');
session_register('sessNom');
session_register('sessPrenom');
session_register('sessType');
$IP=$REMOTE_ADDR;
//include("include/history.php");
header ("location: salaries/cadre.php");
}
}

elseif (strlen($Login)==14 or strlen($Login)==9 ){
// si l'utilisateur a bien saisi le champs Login
$sqllog = "SELECT affno ";
$sqllog .= " from affaire";
$sqllog ." where afsiret '".$Login."'";
$sqllog ." and affno '".$Pwd."'";
$resultlog = mysql_query($sqllog);
$rowslog = mysql_num_rows($resultlog);
if ($rowslog < 1){
$message="Vérifier votre login et votre code d'accès3";
header ("location: index.php?message=$message");
exit;
}
elseif($rowslog == 1){
//SI LOGIN CORRECT ENREGISTRE SESSION
$sessAffno = mysql_result($resultlog,0,affno);
$sessType='D';
$sessSamatric ='0';
session_register('sessAffno');
session_register('sessType');
session_register('sessSamatric');
$IP=$REMOTE_ADDR;
//include("include/history.php");
header ("location: fiche.php");
}
}
$rowslog=$_GET['rowslog'];

else
{
// si l'utilisateur a bien saisi le champs Login
$sqllog = "SELECT idsite, type, code ";
$sqllog .= " from rusers";
$sqllog ." where login '".$_POST['Login']."'";
$sqllog ." and pwd '".$_POST['Pwd']."'";
$resultlog = mysql_query($sqllog);
$rowslog = mysql_num_rows($resultlog);
if ($rowslog < 1){
$message = "Vérifiez votre login et code d'accès4";
header ("location: index.php?message=$message");
exit;
}
elseif($rowslog == 1){
$sqllog = "SELECT idsite, type, code ";
$sqllog .= " from rusers";
$sqllog ." where login '".$_POST['Login']."'";
$sqllog ." and pwd '".$_POST['Pwd']."'";
$resultlog = mysql_query($sqllog);
$rowslog = mysql_num_rows($resultlog);

//$resultlog=$_GET['resultlog'];
//SI LOGIN CORRECT ENREGISTRE SESSION
//$_SESSION['sessIdsite'] = mysql_result($resultlog,0,idsite);
//$_SESSION['sessCode'] = mysql_result($resultlog,0,code);
//$_SESSION['sessType']= mysql_result($resultlog,0,type);
//session_register('sessIdsite');
//session_register('sessCode');
//session_register('sessType');
//$IP=$REMOTE_ADDR;
//include("include/history.php");
header ("Location: users/fiche.php");
}
}
}

?>
en sachant que quand je met $rowslog=$_GET['rowslog']; au debut (juste apres session start) ça ne rentre pas dans les else méme si le code est bon et quand je le met de cette maniere ça rentre dans le else mais ça m'affiche une page blanche
Commenter la réponse de cs_lylya
Messages postés
33
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
0
Merci
j'ai remplacé le session_register('A'); par $_SESSION['A']=$A;
et ça marche toujours pas :s:s
Commenter la réponse de cs_lylya
Messages postés
33
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
0
Merci
Merci kohntark
au fait c'était juste une erreur dans l'écriture de la requête ça manquait un ' quelque part :s:s merci beaucoup pour votre aide si précieuse.
Bonne soirée et à la prochaine fois :):).
Merci.
Commenter la réponse de cs_lylya