Message d'erreur du serveur pour session

Eléphant du PHP | 271 Messages

11 oct. 2006, 10:00

Bonjour à tous,

J'essaie de réaliser une session et voila le message que j'obtiens après le formulaire d'identifiacation:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Je comprends que le serveur a rencontré une erreur, que l'on m'invite à contacter l'administrateur mais pourquoi cette erreur ?
Quelqu'un peut il m'éclairer ?

Ci - dessous mon code pour ouvrir la session
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<?PHP
 require('administration/config.php'); 
 //je vérifie si les post sont vides
if($_POST["nomvisiteur"] != "" && $_POST["mdp"] != "")
{
  $log     = $_POST["nomvisiteur"] ;
  $pass     = md5($_POST["mdp"]);
   }
 if (empty($log) OR empty($pass)) 
    { 
    echo '<font color="red">Attention, tous les champs doivent être renseignés</font>'; 
	include('index.html');
	exit;
    }
	
	// Aucun champ n'est vide, on peut enregistrer dans la table 
else     
 {
  
mysql_connect($localhost,$login,$mot) OR die("Erreur !<br/ >" .mysql_error());  

// Je me rend sur ma base de données 
mysql_select_db($dbName) OR die("Erreur !<br />" .mysql_error()); 

$sql = "SELECT nomvisiteur, mailvisiteur FROM quiz_visiteur WHERE nomvisiteur = '".$log."' AND mailvisiteur = '".$pass."'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

$result = mysql_fetch_assoc($req) ;

if( $result['mailvisiteur'] != $pass || $result['nomvisiteur'] != $log)

{
    echo '<p><B><span div align=\"center\"><font size="3">Mauvais pseudo ou mot de passe, Veuillez recommencer ou vous inscrire</div></font></B></p>';
    include('index.html'); // On inclut le formulaire d'identification
    exit;
  }
  else
  {
    //début de la sessions
    session_start() ;
    //enregistrement d'une variable de session, ici le login de l'utilisateur
    $_SESSION["nomvisiteur"] = $log ;
 	$_SESSION["mdp"] = $pass ;
	
    header("Location index2.php") ;
  }
  }//fin if
?>
</body>
</html>
Merci d'avance des réponses
Patience et obstination sont des qualités !

ViPHP
ViPHP | 2144 Messages

11 oct. 2006, 10:26

Sans m'être plonger à fond dans le code, c'est soit un problème temporaire sur le serveur, soit il y a une manipulatior spécifique à faire pour utiliser les sessions chez cet hébergeur, va voir ce qu'ils disent dans leurs documentation, forum ou FAQ.

Invité
Invité n'ayant pas de compte PHPfrance

11 oct. 2006, 11:03

Cela doit venir du code ou des sessions starts que j'emploie car sur un hébergeur payant qui j'en suis sûr accepte les sessions j'ai le même message.
Ci dessous les sessions starts que j'emploie
<?php session_start() ;
if(!isset($_SESSION["login"]) || $_SESSION["login"] == "")
{	
  header("Location index.html") ;
}//fin 
  ?>
et les variables de session
<?php


{
  echo("<pre>") ;
  print_r($_SESSION) ;
  echo("</pre>") ;
  echo("Bonjour ".$_SESSION["log"]."<br/>") ; 
 
}

//fin else
?>
Merci de l'aide

ViPHP
ViPHP | 3607 Messages

11 oct. 2006, 11:22

je pense plutôt que ton problème vient du fait que tu essaye de faire un header après avoir affiché des choses sur la page.
essaye de mettre le header en commentaires pour voir si l'erreur persiste?

Eléphant du PHP | 271 Messages

11 oct. 2006, 12:15

Merci de l'aide car ça fonctionne.
J'ai résolu en mettant un lien vers ver ma page d'accueil.

Mais j'aurai souhaité une redirection automatique comme un header.

Comment je peux faire ?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<?PHP
 require('administration/config.php'); 
 //je vérifie si les post sont vides
if($_POST["nomvisiteur"] != "" && $_POST["mdp"] != "")
{
  $log     = $_POST["nomvisiteur"] ;
  $pass     =md5($_POST["mdp"]) ;
   }
 if (empty($log) OR empty($pass)) 
    { 
    echo '<font color="red">Attention, tous les champs doivent être renseignés</font>'; 
	include('index.html');
	exit;
    }
	
	// Aucun champ n'est vide, on peut enregistrer dans la table 
else     
 {
  
mysql_connect($localhost,$login,$mot) OR die("Erreur !<br/ >" .mysql_error());  

// Je me rend sur ma base de données 
mysql_select_db($dbName) OR die("Erreur !<br />" .mysql_error()); 

$sql = "SELECT nomvisiteur, mailvisiteur FROM table_verif WHERE nomvisiteur = '".$log."' AND mailvisiteur = '".$pass."'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

$result = mysql_fetch_assoc($req) ;

if( $result['mailvisiteur'] != $pass || $result['nomvisiteur'] != $log)

{
    echo '<p><B><span div align=\"center\"><font size="3">Mauvais pseudo ou mot de passe, Veuillez recommencer ou vous inscrire</div></font></B></p>';
    include('index.html'); // On inclut le formulaire d'identification
    exit;
  }
  else
  {
    //début de la sessions
    session_start() ;
    //enregistrement d'une variable de session, ici le login de l'utilisateur
    $_SESSION["nomvisiteur"] = $log ;
 	$_SESSION["mdp"] = $pass ;
	
	
 /* pour vérifier les variables 
  print_r($_SESSION) ;
   */
{
  {echo("</pre>") ;
  echo("Bonjour ".$_SESSION["nomvisiteur"]."<br />") ; 
  echo ("Vous êtes bien identifié.");
  echo ("<a href=\index2.php\">accéder au site des personnes inscrites.");
}
	
  }
  }//fin if
?>
</body>
merci d'avance
Patience et obstination sont des qualités !

ViPHP
ViPHP | 3607 Messages

11 oct. 2006, 12:18

tourne toi vers une redirection html:

Code : Tout sélectionner

<META HTTP-EQUIV="Refresh" CONTENT="nbsecondes;URL='page.html'">

ViPHP
ViPHP | 2144 Messages

11 oct. 2006, 13:02

jojolapine : en effet, j'étais passé à côté de l'entête html en début de code.
Mais c'est bizzare qu'on ai le message d'erreur suivant plutot que le classique : "Header already send blabla")

Eléphant du PHP | 271 Messages

11 oct. 2006, 13:40

Merci beaucoup de l'aide.

Tout fonctionne.
Patience et obstination sont des qualités !