Probleme login/redirect avec IE mais pas avec FF

Résolu
cs_stooff Messages postés 15 Date d'inscription lundi 30 avril 2007 Statut Membre Dernière intervention 19 janvier 2010 - 13 nov. 2007 à 00:23
cs_stooff Messages postés 15 Date d'inscription lundi 30 avril 2007 Statut Membre Dernière intervention 19 janvier 2010 - 13 nov. 2007 à 12:48
Bonjour a tout le site,

Pour vous expliquer brievement le sujet ... je developpe une interface web client, dans celle ci le client doit etre redirigé via un formulaire vers son espace apres verification des identifiants via une connexion mysql.

Probleme : cela marche avec FF mais pas avec IE.
N'etant pas un developpeur d'experience, je prefere m'adresser à vous, hommes de savoirs ;)
Je developpe en php sous dreamweaver, intuitif et simple, j'ai trouvé mon bonheur avec ce logiciel (Acheté, cela dit en passant). Malheureusement je n'en maitrise pas encore toute les subtilités (logiciel et surtout code)

Merci de vos retour sur ce code et toute remarques que vous jegerez bonnes de me transmettre.

voici le code de la page .php :

##########################################################
<?php
if (!isset($_SESSION)){session_start();}
require ('Connections/client_data.php');
// *** Validate request to login to this site.

$loginFormAction = $_SERVER['PHP_SELF'];

if (!function_exists("GetSQLValueString")) {function GetSQLValueString($theValue, $theType, $theDefinedValue "", $theNotDefinedValue "")
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

if (isset($_POST['Username']) && isset($_POST['Password']))
{
    $login_Username = $_POST['Username'];
    $login_Password = sha1($_POST['Password']);
}
elseif(isset($_SESSION['Client_Username']) && isset($_SESSION['Password']) && isset($_SESSION['code_client']))
{
    $login_Username = $_SESSION['Client_Username'];
    $login_Password = $_SESSION['Password'];
}
if (isset($login_Username) && isset($login_Password))
{
    $Username=$login_Username;
    $Password=$login_Password;
    $fldUserAuthorization = "";
    $redirectLoginSuccess = "espace.php?cat=bienvenue";
    $redirectLoginFailed = "deny.php";
    $redirecttoReferrer = false;
    mysql_select_db($database_client_data, $client_data);
    $LoginRS__query=sprintf("SELECT Username, Password FROM clients WHERE Username='%s' AND Password='%s'", get_magic_quotes_gpc() ? $Username : addslashes($Username), get_magic_quotes_gpc() ? $Password : addslashes($Password));
    $LoginRS = mysql_query($LoginRS__query, $client_data) or die('Erreur SQL ! acces.php>$LoginRS'.$SQLQuery.''.mysql_error());
    $row_LoginRS = mysql_fetch_assoc($LoginRS);
    $loginFoundUser = mysql_num_rows($LoginRS);

// alternative d'authentification
   
    /*
    mysql_select_db($database_client_data, $client_data);    $query_ftp_client_data_Recordset sprintf("SELECT * FROM clients WHERE Username %s", GetSQLValueString($Username, "text"));
    $ftp_client_data_Recordset = mysql_query($query_ftp_client_data_Recordset, $client_data) or die(mysql_error());
    $row_ftp_client_data_Recordset = mysql_fetch_assoc($ftp_client_data_Recordset);
        if ($Username $row_ftp_client_data_Recordset['Username'] && $Password $row_ftp_client_data_Recordset['Password'])
    $loginFoundUser = "1";
    else $loginFoundUser = "0";
    */
   
    if ($loginFoundUser)
    {
        $loginStrGroup = "";
//declare three session variables and assign them
        $_SESSION['Client_Username'] = $Username;
        $_SESSION['Password'] = $Password;
        $_SESSION['UserGroup'] = $loginStrGroup;
       
        mysql_select_db($database_client_data, $client_data);$query_client_data_Recordset sprintf("SELECT code_client FROM clients WHERE Username '%s'", get_magic_quotes_gpc() ? $Username : addslashes($Username));
    $client_data_Recordset = mysql_query($query_client_data_Recordset, $client_data) or die(mysql_error());
    $row_client_data_Recordset = mysql_fetch_assoc($client_data_Recordset);
    $totalRows_client_data_Recordset = mysql_num_rows($client_data_Recordset);
//declare code_client session variables and assign it       
        $_SESSION['code_client'] = $row_client_data_Recordset['code_client'];
        header("Location: " . $redirectLoginSuccess );
    }
    else
    {
        header("Location: ". $redirectLoginFailed );
    }
}
?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html40/strict.dtd">
<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Atriumpc 2006">
<meta name="description" content="Atriumpc.com - D&eacute;pannage informatique &aacute;  domicile">
<meta name="keywords" content="d&eacute;panage, informatique, ordinateur, rennes, ille et vilaine, 35, service, prestation, maintenance, forfait">
<title>Atriumpc - Acc&egrave;s clients</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/main.css">
<link rel="stylesheet" type="text/css" media="screen" href="colorschemes/colorscheme4/colorscheme.css">
<link rel="stylesheet" type="text/css" media="screen" href="css/style.css">
<link rel="stylesheet" type="text/css" href="css/sweetTitles.css">
<link rel="stylesheet" type="text/css" href="css/layers.css">
<!-- compliance patch for microsoft browsers -->
    <!--[if lt IE 7]><script src="/medias/patch/IE7/ie7-standard-p.js" type="text/javascript"></script><![endif]-->
<script type="text/javascript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function YY_checkform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; iCr&eacute;er mon espace perso       

 

 

   
Par le biais de cet espace, vous pourrez facilement modifier une partie des informations vous concernant en notre possession, modifier votre ou vos acc&egrave;s FTP ou bien encore &eacute;diter vos factures.

 

 

   

 

    Bienvenue dans votre espace personnel

  

     ----
        
Veuillez renseigner votre identifiant ainsi que votre mot de passe pour entrer dans votre espace.

           Vous devez l'avoir pr&eacute;alablement cr&eacute;&eacute; en cliquant sur le lien
           au-dessus.

           Ou avoir re&ccedil;u un mail notificatif  vous indiquant son activation.

    ,     
                            &nbsp;

                            &nbsp;

&nbsp;

           <form name="acces" method="POST" action="<?php echo $loginFormAction; ?>" onSubmit="YY_checkform('acces','Username','#q','0','Identifiant manquant.','Password','#q','0','Mot de passe manquant.');return document.MM_returnValue">

                            <table width="100%" border="0">
                                  ----

                                   ,
Votre identifiant :
</td>
                                                                         
                                   

                                   ,
                                 
                                  ----

                                    Votre mot de passe :,
                                                                         
                                   ,
                                 
                        

                              &nbsp;

                              &nbsp;

                             
                               
                             

                 

           </form>
           

                           
</td>
   </tr></table>
  

<?php
require ("footer.php");
?>

<!-- wfxbuild / 1.0 / layout5-10 / 2006-11-17 17:06:48 CET--></html>

########################################

Merci à tous de votre support.

Amicalement

2 réponses

cs_stooff Messages postés 15 Date d'inscription lundi 30 avril 2007 Statut Membre Dernière intervention 19 janvier 2010
13 nov. 2007 à 12:48
J'ai trouvé la solution, la voici pour ceux qui serait confronté au meme probleme.

"Une page contenant une frame qui
redirige vers un autre site. IE n'acceptait pas les cookies de cet
autre site et donc ne prenait pas en compte la session.

Pour résoudre ce problème, il faut indiquer à IE qu'il peut accepter les cookies sans problème.

Pour cela, il suffit d'ajouter la ligne suivante :

header('P3P: CP="CAO PSA OUR"');

en début de script sur le site pointé (attention, aucun caractère
ne doit être envoyé avant cette ligne, y compris un espace ou un retour
à la ligne).
"

vu sur ce site : commentcamarche.net

Dsl pour ce poste peut etre posté de manière hative.
3
cs_stooff Messages postés 15 Date d'inscription lundi 30 avril 2007 Statut Membre Dernière intervention 19 janvier 2010
13 nov. 2007 à 00:31
Petit rajout de derniere minute, je viens de m'appercevoir que cela serait un probleme de session server, voici le debut de la page incriminée :

<?php
if (!isset($_SESSION)){session_start();}
if(isset($_SESSION['Client_Username']))
{
    $actual_user = $_SESSION['Client_Username'];
}
else header("Location: deny.php");
$cat = $_GET["cat"];
?>

Donc le test de la variable session echoue sous IE mais pas FF, je ne comprend toujours pas le probleme mais cela vous aidera surement je l'espere.

Merci encore de votre soutient.

Amicalement
0
Rejoignez-nous