[ Script PHP ] Problème de connexion (session php)

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par guicara, 28 Mars 2006.

  1. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Bonjours,

    Je posséde un script sur mon site qui gère les Articles et les Tutoriaux (c'est un script de gestion d'articles). Le script marche très bien aucun sousi.

    Sauf que depuis que j'ai décidé de mettre ma page de connexion (index.php)
    (exemple sur cette page) au design de mon site rien ne va ! Je ne peux plus me connecter.

    Quand j'entre mes identifiants, je suis reconnu sa me redirige sur la page admin.php. Mais sur cette page (ou ce trouve l'espace d'admin) je ne voit que le design de mon site, sans les informations du script.

    Si la page de connexion est vide, sans design tous va bien.

    Ma page index.php (au design)

    Code:
    				<br />
    				<br />
    				<h3>Articles - Administration</h3>
    				<br />
    			 	<? session_start();
    			 	include('../configuration/configuration.php');
    			 	echo'<table width="100%" cellpadding="0" border="0" cellspacing="0" align="center" valign="center">
    			 	  <tr height="5"><td></td></tr>
    			 	</table>';
    			 	if(!empty($_GET)) {
    			 	echo'<table width="95%" cellpadding="0" border="0" cellspacing="0" align="center" valign="center" class="categories">';
    			 	echo'<td><center><font color="#800000">/!\ ACTION INTERDITE /!\</font></center><br><u>Informations</u> : pour des raisons de sécurité, la méthode GET génère une erreur si elle est utilisée dans une URL.<br>Une URL du type :<br>http://www.monsite.com/article/administration/index.php (<font color="green">fonctionnera</font>)<br> http://www.monsite.com/article/administration/index.php?login=blablabla&password=blablalba (<font color="red">ne fonctionnera pas</font>).'; 
    			 	}
    			 	else {
    			 	if(!$submit) {
    			 	if(!session_is_registered("admin"))
    			 	{
    			 	?>
    			 	<table width="95%" cellpadding="0" border="0" cellspacing="5" align="center" valign="center" class="categories">
    			 	<form action="" method="post" name="add" OnSubmit="return champsok()">
    			 		<tr height="10">
    			 		<td align="center" valign="center" colspan="2"></td>
    			 	  </tr>
    			 	  <tr>
    			 	   <td align="right" valign="center">Login : </td><td><input type="text" name="login" style="width:150px;"></input></td>
    			 	  </tr>
    			 	  <tr>
    			 	   <td align="right" valign="center">Pass : </td><td><input type="password" name="password" style="width:150px;"></input></td>
    			 	  </tr>
    			 		  <tr>
    			 	   <td align="right" valign="center" class="sommaire"></td><td><input type="submit" name="submit" value="Connexion" style="width:150px;"></input></td>
    			 	  </tr>
    			 		</form>
    			 		<tr>
    			 		<td align="center" valign="center" colspan="2"></td>
    			 	  </tr>
    			 	</table> 
    			 	<?
    			 	}
    			 	else {
    			 	?>
    			 	<script LANGUAGE="JavaScript">
    			 	    setTimeout("window.location='admin.php'",0); 
    			 	    // delai d'attente en ms
    			 			</script>
    			 	<?
    			 	}
    			 	}
    			 	elseif($submit) {
    			 	echo'<table width="50%" cellpadding="0" border="0" cellspacing="0" align="center" valign="center" class="admin">';
    			 	echo'<td align="center" valign="center">';
    			 	// on se connecte à MySQL 
    			 	$db = mysql_connect($host, $login_host, $pass_host);  
    			 	
    			 	// on seléctionne la base 
    			 	mysql_select_db($hostname,$db);  
    			 	
    			 	// On n'effectue les traitement qu'à la condition que 
    			 	// les informations aient été effectivement postées
    			 	if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password']))) {
    			 				 	
    			 	  extract($_POST); 
    			 	
    			 	  // On va chercher le mot de passe afférent à ce login
    			 	  $sql = "SELECT * FROM ".$prefixe."_admins WHERE login='".secure($login)."'";
    			 	  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
    			 	  
    			 	  // On vérifie que l'utilisateur existe bien
    			 	  if (mysql_num_rows($req) > 0) {
    			 	     $data = mysql_fetch_assoc($req);
    			 	    $password = secure(md5($password));
    			 	    // On vérifie que son mot de passe est correct
    			 	    if ($password == $data['password']) {
    			 			$niveau = $data['niveau'];
    			 			if ($niveau == "1") {
    			 			$_SESSION['super_admin'] = $login;
    			 			} else {}
     			 	      $_SESSION['admin'] = $login;
    			 				 // on crée la requete SQL
    			 				 $date = date("y-m-d");
    			 				 $sql = "UPDATE ".$prefixe."_admins SET date='$date' WHERE login= '".secure($login)."'";
    			 				 $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    			 				 ?>
    			 	<script LANGUAGE="JavaScript">
     			 	    setTimeout("window.location='admin.php'",0); 
    			 	    // delai d'attente en ms
    			 	</script>
    			 			<?
    			 	    }
      
    			 	else { ?>
    			 	<span class="normal"><font class="normal" color="#800000">Erreur :</font> Pseudo ou password invalide.</font></span>
    			 	<script LANGUAGE="JavaScript">
    			 	    setTimeout("window.location='index.php'",4000); 
    			 	    // delai d'attente en ms
    			 				 	</script>
    			 	<? }
    			 	// on ferme la connexion à mysql 
    			 	mysql_close();
    			 	}
    			 	else { ?>
    			 	<span class="normal"><font color="#800000">Erreur :</font> Pseudo ou password invalide.</font></span>
    			 	<script LANGUAGE="JavaScript">
    			 	    setTimeout("window.location='index.php'",4000); 
    			 	    // delai d'attente en ms
    			 	</script>
    			 	<? }
    			 	}
    			 	else { ?>
    			 	<font color="#800000">Erreur :</font> Aucun champs ne doit rester vide.</font>
    			 	<script LANGUAGE="JavaScript">
    			 	    setTimeout("window.location='index.php'",4000); 
    			 	    // delai d'attente en ms
    			 	</script>
    			 	<? }
    			 	}
    			 	}
    			 	?></body></html>
    			 	<br />
    			 	<br />
    			 	<br />
    			 	<br />
    
    et il y a aussi un code javascript entre head (si on n'a pas renseigner les cases login et pass).

    Et le code sans le design

    Code:
    <? session_start();
    include('../configuration/configuration.php');
    echo'<table width="100%" cellpadding="0" border="0" cellspacing="0" align="center" valign="center">
      <tr>
       <td align="center" valign="center" class="titre">Zone Administration</td>
      </tr>
      <tr height="5"><td></td></tr>
    </table>';
    if(!empty($_GET)) {
    echo'<table width="95%" cellpadding="0" border="0" cellspacing="0" align="center" valign="center" class="categories">';
    echo'<td><center><font color="#800000">/!\ ACTION INTERDITE /!\</font></center><br><u>Informations</u> : pour des raisons de sécurité, la méthode GET génère une erreur si elle est utilisée dans une URL.<br>Une URL du type :<br>http://www.monsite.com/article/administration/index.php (<font color="green">fonctionnera</font>)<br> http://www.monsite.com/article/administration/index.php?login=blablabla&password=blablalba (<font color="red">ne fonctionnera pas</font>).'; 
    }
    else {
    if(!$submit) {
    if(!session_is_registered("admin"))
    {
    ?>
    <script language="javascript">
    <!--
    function champsok()
    {
    if (document.add.login.value.length == 0)
    {
    alert("Veuillez inscrire votre login !");
    return false;
    }
    if (document.add.password.value.length == 0)
    {
    alert("Veuillez inscrire votre mot de passe !");
    return false;
    }
    return true;
    }
    //-->
    </script>
    <table width="50%" cellpadding="0" border="0" cellspacing="5" align="center" valign="center" class="categories">
    <form action="" method="post" name="add" OnSubmit="return champsok()">
    	<tr height="10">
    	<td align="center" valign="center" colspan="2"></td>
      </tr>
      <tr>
       <td align="right" valign="center">Login : </td><td><input type="text" name="login" style="width:150px;"></input></td>
      </tr>
      <tr>
       <td align="right" valign="center">Pass : </td><td><input type="password" name="password" style="width:150px;"></input></td>
      </tr>
    	  <tr>
       <td align="right" valign="center" class="sommaire"></td><td><input type="submit" name="submit" value="Connexion" style="width:150px;"></input></td>
      </tr>
    	</form>
    	<tr>
    	<td align="center" valign="center" colspan="2"></td>
      </tr>
      <tr>
    	<td align="center" valign="center" colspan="2"><small>[<A HREF="javascript:window.close()" class="d">fermer la fenêtre</a>]</small></td>
      </tr>
    </table> 
    <?
    }
    else {
    ?>
    <script LANGUAGE="JavaScript">
        setTimeout("window.location='admin.php'",0); 
        // delai d'attente en ms
    		</script>
    <?
    }
    }
    elseif($submit) {
    echo'<table width="50%" cellpadding="0" border="0" cellspacing="0" align="center" valign="center" class="admin">';
    echo'<td align="center" valign="center">';
    // on se connecte à MySQL 
    $db = mysql_connect($host, $login_host, $pass_host);  
    
    // on seléctionne la base 
    mysql_select_db($hostname,$db);  
    
    // On n'effectue les traitement qu'à la condition que 
    // les informations aient été effectivement postées
    if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password']))) {
    
      extract($_POST); 
    
      // On va chercher le mot de passe afférent à ce login
      $sql = "SELECT * FROM ".$prefixe."_admins WHERE login='".secure($login)."'";
      $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
      
      // On vérifie que l'utilisateur existe bien
      if (mysql_num_rows($req) > 0) {
         $data = mysql_fetch_assoc($req);
        $password = secure(md5($password));
        // On vérifie que son mot de passe est correct
        if ($password == $data['password']) {
    		$niveau = $data['niveau'];
    		if ($niveau == "1") {
    		$_SESSION['super_admin'] = $login;
    		} else {}
           $_SESSION['admin'] = $login;
    			 // on crée la requete SQL
    			 $date = date("y-m-d");
    			 $sql = "UPDATE ".$prefixe."_admins SET date='$date' WHERE login= '".secure($login)."'";
    			 $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    			 ?>
    <script LANGUAGE="JavaScript">
        setTimeout("window.location='admin.php'",0); 
        // delai d'attente en ms
    </script>
    		<?
        }
      
    else { ?>
    <span class="normal"><font class="normal" color="#800000">Erreur :</font> pseudo ou password invalide.</font></span>
    <script LANGUAGE="JavaScript">
        setTimeout("window.location='index.php'",4000); 
        // delai d'attente en ms
    </script>
    <? }
    // on ferme la connexion à mysql 
    mysql_close();
    }
    else { ?>
    <span class="normal"><font color="#800000">Erreur :</font> pseudo ou password invalide.</font></span>
    <script LANGUAGE="JavaScript">
        setTimeout("window.location='index.php'",4000); 
        // delai d'attente en ms
    </script>
    <? }
    }
    else { ?>
    <font color="#800000">Erreur :</font> aucun champs ne doit rester vide.</font>
    <script LANGUAGE="JavaScript">
        setTimeout("window.location='index.php'",4000); 
        // delai d'attente en ms
    </script>
    <? }
    }
    }
    ?></body></html>
    Merci d'avance
    Ou est mon problème ??
     
  2. bolbo
    bolbo WRInaute discret
    Inscrit:
    29 Avril 2004
    Messages:
    55
    J'aime reçus:
    0
    Bonjour,

    En PHP le session_start() se met avant tout affichage, y compris les sauts de ligne.
    Met ton session_start() avant les <br> et le <h3>, ca devrait aller mieux je pense.

    Bolbo
     
  3. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Ok, j'y met au tous début de ma page, car ce que j'ai donné n'est que un petit copier collé de mon code source.

    Donc avant head ?
     
  4. bolbo
    bolbo WRInaute discret
    Inscrit:
    29 Avril 2004
    Messages:
    55
    J'aime reçus:
    0
    Oui voila, en fait session_start() doit être appelé avant tout affichage par le navigateur.

     
  5. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Encore quelques erreur pour moi, personne ne peux m'integrer ce script a une page de mon design vierge ?

    page vierge ici >http://www.design-graph.info/aide/index.php

    Merci d'avance
    Guicara
     
  6. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    J'ai trouver,
    Merci quand même !
     
Chargement...
Similar Threads - Script PHP Problème Forum Date
Probleme avec Script PHP pour remplir mysql avec un fichier Excel Développement d'un site Web ou d'une appli mobile 13 Février 2013
Problème extraction tables croisés script php Développement d'un site Web ou d'une appli mobile 9 Janvier 2013
Problème appel script bash depuis php Administration d'un site Web 9 Juin 2011
[script] probleme confirm() javascript+ PHP Développement d'un site Web ou d'une appli mobile 7 Juin 2011
Script PHP : Problème de mémoire Administration d'un site Web 31 Juillet 2008
Probleme etrange html/javascript/php Développement d'un site Web ou d'une appli mobile 28 Juin 2007
Problème de fonctionnement de script PHP apres migration Développement d'un site Web ou d'une appli mobile 24 Novembre 2006
[PHP] Problème avec script Développement d'un site Web ou d'une appli mobile 7 Novembre 2006
[réglé]Problème avec script lourdingue optimisation php? Développement d'un site Web ou d'une appli mobile 14 Août 2006
Probleme script php&js Développement d'un site Web ou d'une appli mobile 5 Juillet 2006
Problème php - Fonction die, arret de script Développement d'un site Web ou d'une appli mobile 18 Juin 2006
[Résolu] XHMTL 1.0 Strict et script php problème de <br&g Développement d'un site Web ou d'une appli mobile 18 Février 2006
aide sur un script php photo, je ne vois pas le probleme Développement d'un site Web ou d'une appli mobile 10 Novembre 2005
Probleme avec un script PHP Développement d'un site Web ou d'une appli mobile 14 Octobre 2005
Sites de scripts PHP, jQuery, Ajax, etc. Le café de WebRankInfo 20 Mars 2022
Détecter arrêt user d'un script PHP ? Développement d'un site Web ou d'une appli mobile 28 Décembre 2021
Actualiser un script php toutes les 10 secondes Développement d'un site Web ou d'une appli mobile 6 Septembre 2021
Quel script PHP conversion HTML -> JSON ? Développement d'un site Web ou d'une appli mobile 17 Février 2021
script PHP erreurs inexplicables. Développement d'un site Web ou d'une appli mobile 14 Février 2021
Du php dans du javascript Développement d'un site Web ou d'une appli mobile 16 Novembre 2020