[Cookies] <object data> et variable de session
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:
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:
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:
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:
1 2
|
<a href="../ask.php?lot=0702PAUI00" ... |
voici le code de la page ask.php
Code:
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
@++