2010-11-17 7 views
0

Je travaille actuellement sur un site où j'essaie d'utiliser les variables de session.

J'ai un script de contrôleur (index.php) qui commence par session_start(); et a deux fichiers HTML inclus dans différents if déclarations. Tout fonctionne très bien quand je vais à /quote/index.php, les variables de session que j'ai définies sont répercutées sur la page comme prévu, mais si je supprime 'index.php *' de l'URL de sorte qu'il pointe juste /quote la page ne charge pas les variables de session apparaissent. Je n'utilise pas session_destroy n'importe où dans mes scripts et les variables de session ne font pas écho '0', donc je suis à peu près sûr qu'elles ne sont pas désactivées, elles semblent simplement ignorées sans le nom de fichier l'URL!

Toute idée pour expliquer pourquoi ce phénomène se produit serait génial, Merci

/quote/index.php (avec des morceaux étrangers enlevés):

<?php 
session_start(); 

if (isset($_GET['form'])) 
    { 
include 'form.html.php'; 
exit(); 
    } 
if (isset($_GET['fetchquote'])) 
    { 
    $width = mysqli_real_escape_string($link, $_POST['width']); 
    $height = mysqli_real_escape_string($link, $_POST['height']); 
    $_SESSION['height'] = $height; 
    $_SESSION['width'] = $width; 
    } 
include 'quote.html.php'; 
?> 

Les variables de session sont résonnaient dans la citation. html.php

+0

Assurez-vous que vos fichiers html supplémentaires à la racine ne sont pas nommés "index.html" ou "index.htm" – Codex73

Répondre

1

Quels sont les deux noms de fichiers? semble que l'un des fichiers que vous incluez est nommé index.html et réside dans mysite.com/quote/ lui-même. Et si je ne me trompe pas, si dans un répertoire il y a index.html et index.php alors le fichier index.html est chargé par défaut à moins que le fichier ne soit explicitement spécifié dans l'url. Donc, il semble que dans votre cas, lorsque vous ne spécifiez pas explicit.php, le fichier index.html est en cours de chargement. Bien sûr, ce n'est le cas que s'il y a un index.html dans le répertoire.

+0

Juste édité ma question pour contenir le code, j'espérais que ce que vous avez décrit serait le cas, mais hélas, Nope ! Merci pour votre réponse. – BigRob

0

Assurez-vous que vous utilisez également session_start() en haut des pages PHP où vous souhaitez renvoyer la variable de session. Et assurez-vous que index.php est le seul index de votre racine.

Vous vérifiez si une option est définie via la méthode GET. Où est votre formulaire en utilisant la méthode GET? Envoyez votre script en entier et vous obtiendrez de bien meilleures réponses.

0

Cela a probablement quelque chose à voir avec la portée de validité du cookie d'ID de session. Parce que si le cookie path est défini sur /quote/, le cookie sera uniquement disponible dans /quote/ et au-delà.

Questions connexes