Erreur impossible d'afficher la page

Résolu
cs_lylya Messages postés 33 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 20 avril 2010 - 4 mars 2010 à 17:04
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

8 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
8 mars 2010 à 18:41
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 -
3
gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
4 mars 2010 à 19:24
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
0
cs_lylya Messages postés 33 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 20 avril 2010
5 mars 2010 à 11:10
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 :'(:'(
0
cs_lylya Messages postés 33 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 20 avril 2010
5 mars 2010 à 11:40
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.
:'(:'(.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
5 mars 2010 à 18:44
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 -
0
cs_lylya Messages postés 33 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 20 avril 2010
8 mars 2010 à 09:57
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
0
cs_lylya Messages postés 33 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 20 avril 2010
8 mars 2010 à 10:32
j'ai remplacé le session_register('A'); par $_SESSION['A']=$A;
et ça marche toujours pas :s:s
0
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
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.
0
Rejoignez-nous