2010-10-04 14 views
0

Je sais qu'une SESSION peut expirer mais qu'en est-il des variables $ _REQUEST/$ _ POST/$ _ GET?php demande/post/get/session expiration

Ma question est, j'ai des utilisateurs qui soumettent des informations et j'ai besoin de définir un ID pour cette information avant de l'insérer dans une base de données. Maintenant, j'ai pensé à l'utilisation d'une session, mais le problème est que si la session expire avant que l'utilisateur a soumis les informations à la base de données, ils perdent l'Id dont j'ai besoin. Est-ce que le passage de la variable $ _REQUEST/$ _ POST/$ _ GET serait une meilleure solution ou devrais-je juste utiliser une variable et réajuster le script?

Aussi j'utilisais comme il est SESSION très facile d'appeler à l'intérieur d'une fonction sans passer dans.

function setInfo() { 
    // no need to pass I can call from within 
    $Id = $_SESSION['Id']; 
} 

Est-ce une bonne pratique?

EDIT: Serait-ce mieux comme un cookie?

Répondre

1

Ma première question serait, êtes-vous incapable d'insérer une ligne et de récupérer un ID auto-incrémentant avec @@ IDENTITY ?. vous ne pouvez pas vraiment "stocker" des données dans $ _REQUEST, $ _POST ou $ _GET, ces données ne sont là qu'à partir du moment où le client soumet une page, un formulaire, une requête de lien au serveur pour terminer et envoyer pour sortir la page résultante . De toute façon, vous utiliserez probablement l'espace $ _SESSION pour stocker les informations qui doivent être transportées vers d'autres pages.

+0

C'est ce que je suis en train de faire mais je rencontre le problème de l'expiration de la session des utilisateurs. Cela provoque la réinitialisation de l'identifiant et l'émission d'un nouvel identifiant. J'utilisais SESSION pour contenir l'ID d'enregistrement de base de données pré-récupéré comme l'ID –

+0

compréhensible à propos de $ _REQUEST, $ _POST ou $ _GET cherchant simplement une autre méthode pour stocker l'information si sans régénérer l'ID sur l'expérience de session. bons conseils si thnx –

0

Vous pouvez utiliser un champ caché dans le formulaire, et stocker la valeur de champ caché dans la base de données ("peut-être ou très probablement" vous aurez besoin d'un tableau séparé pour cela). Lorsque l'utilisateur soumet le formulaire, vous vérifiez que la valeur soumise pour var caché existe dans la base de données.

Lorsque la demande de la valeur particulière est traitée, supprimez-la de la base de données.

+0

Je ne recommanderais pas cela comme base de sécurité. Même si le champ est caché, je peux toujours le manipuler côté client. cela aiderait à garder les données là pour la vie du formulaire, mais cela ne constituerait pas une sécurité. – FatherStorm