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
que j'inclus si présent sur le disque
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>
vous remarquerez que ce code contient :
voici le code de la page ask.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<a href="../ask.php?lot=0702PAUI00" ...
j'ai enlevé le code html pour plus de lisibilité.
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; } } ?>
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
@++
Partager