Bonjour à tous,

dans une page php, j'utilise un script qui teste l'existence d'un fichier html
si le fichier existe la page en tient compte et insère le contenu dans un <objet data>

voici ma page b.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
 
 session_name('sid');
 session_start();
 $session = session_name() . '=' . session_id();
 
/*
si la variable de session login n'existe pas cela siginifie que le visiteur
n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
acceder à l'espace membres
*/
if(!isset($_SESSION['login'])) {
//  echo 'Vous n\'êtes pas autorisé à acceder à cette page';
$_SESSION['page']='b.php';
  header('Location: login.php');
  exit;
}
 
?>
 
<p>blabla html</p>
 
<?php
$path='data/data-b.htm';
if (is_file($path)) {
?>
 
<P align="center">
<object data="data/data-b.htm" width="98%" height="280">
    </object></p>
<?php
} else {
?>
             <p>bla bla html</p>
<?php
}
include 'include/footer.php';
?>
Vous constatez qu'il s'agit de pages protégées apartenant à un espace membre, une fois identifié, le nom et d'autres informations de l'utilisateur sont stockés dans des variables de session.

(extrait du fichier login.php)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
    $_SESSION['login']     = $login;
    $_SESSION['mail']      = $user['mail'];
    $_SESSION['nom']       = $user['nom'];
    $_SESSION['prenom']    = $user['prenom'];
    $_SESSION['telephone'] = $user['telephone'];

un peu plus bas, je teste la présence du fichier html

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<table border="0" cellspacing="0" bordercolor="#B40000" cellpadding="0">
    <tr bgcolor="#F4DEE0">
        <td width="20" align="center" valign="middle">
        </td>
        <td width="180">
            <p align="center">0702PAUI01</p>
        </td>
        <td width="180">
            <p align="center"><img src="images/clig.gif" width="10" height="10" border="0"></p>
        </td>
        <td width="180">
            <p align="center">400</p>
        </td>
        <td width="180">
            <p align="center">2004</p>
        </td>
        <td width="180">
            <p align="center">12.5</p>
        </td>
        <td width="208">
            <p align="center">5800</p>
        </td>
        <td width="208">
            <p align="center"></p>
        </td>
        <td width="20" align="center" valign="middle">
            <p align="center"><a href="../ask.php?lot=0702PAUI00" target="parent"><img src="images/info.gif" width="16" height="16" border="0"></a></p>
        </td>
      </tr>
    <tr bgcolor="#F4DEE0">
        <td>
        </td>
        <td colspan="7">
            <p align="left">CHATEAU HAUT MILON</p>
        </td>
        <td>
        </td>
      </tr>
  </table>
que j'inclus si présent sur le disque

vous remarquerez que ce code contient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<a href="../ask.php?lot=0702PAUI00" ...
voici le code de la page ask.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
 
session_name('sid');
session_start();
$session = session_name() . '=' . session_id();
 
if(isset($_GET) && !empty($_GET['lot'])) {
  extract($_GET);
	}
 
	if (!isset($_SESSION['mail'])) {
		$sender	='';
		$nom	='';
		$prenom	='';
		$tel	='';
 
	} else {
		$sender	=$_SESSION['mail'];
		$nom	=$_SESSION['nom'];
		$prenom	=$_SESSION['prenom'];
		$tel	=$_SESSION['telephone'];
	}
 
    $tmp = $lot;
    $lot=htmlspecialchars($tmp, ENT_QUOTES);
    //$lot = preg_replace( "/[^0-9]/", "", $tmp );
 
    if (isset($lot) && $lot<>'') {
 
	$to="admin@site.com";
	$from = $sender;
	$subject = "[i " . $lot ." ]";
 
    // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
	$headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 
    // En-têtes additionnels
    $headers .= 'To: ' . $to . "\r\n";
    $headers .= 'From: ' . $from . "\r\n";
    $headers .= 'Cc: ' . $cc . "\r\n";
    $headers .= 'Bcc: ' . $bcc . "\r\n";
 
 
    if (!empty($sender)) {
         $message = 'blabla'
 
     //echo $message;
     // Envoi au bureau
     mail($to, $subject, $message, $headers);
 
    	// message
 
 
 
     echo $message;
     }
 
    }
 
?>
j'ai enlevé le code html pour plus de lisibilité.

Mon problème est le suivant.
sous IE, version 6.0.2900.2180.xpsp2
les variables de session ne sont pas transmises à la page ask.php

par contre sur un IE plus ancien Version: 6.0.2800.1990.xpsp2 et sous firefox, je n'ai aucun problèmes de fonctionnement.

le probleme vient t'il de la version d'IE ?
dois-je reformuler mon code ?
si oui, comment obtenir le même resultat que mon <object data> ?

Petite précision,
PHP V 4.4.4

@++