Question

Je souhaite obtenir la saisie de l'utilisateur dans une page, la stocker dans une variable php et l'utiliser dans une autre page php. J'ai essayé d'utiliser 'sessions' mais cela ne semble pas fonctionner. Y a-t-il une autre alternative sûre? Ces informations sont probablement des noms d’utilisateur et des mots de passe.

Était-ce utile?

La solution

Essayez de changer votre code de session car c'est le meilleur moyen de le faire.

Par exemple:

index.php

<?php
session_start();

if (isset($_POST['username'], $_POST['password']) {
    $_SESSION['username'] = $_POST['username'];
    $_SESSION['password'] = $_POST['password'];
    echo '<a href="nextpage.php">Click to continue.</a>';
} else {
    // form
}
?>

nextpage.php

<?php
session_start();

if (isset($_SESSION['username'])) {
    echo $_SESSION['username'];
} else {
    header('Location: index.php');
}
?>

Cependant, je stockerais probablement quelque chose de plus sûr, tel qu'un ID utilisateur dans une session, plutôt que les informations de connexion de l'utilisateur.

Autres conseils

Je suis d’accord avec Carson, les sessions devraient fonctionner pour cela. Assurez-vous que vous appelez session_start () avant toute autre page sur laquelle vous voulez utiliser les variables de session.

De plus, je ne stockerais pas directement les informations de mot de passe, mais utiliserais plutôt un mécanisme de jeton d'authentification. À mon humble avis, il n’est pas intrinsèquement intrinsèquement sûr de stocker les données de mot de passe dans une session, mais s’il n’est pas nécessaire de le faire, vous devriez probablement essayer de l’éviter.

Il y a plusieurs façons:

  • utilisez les sessions (mais n'oubliez pas d'appeler < un href = "http://de2.php.net/manual/en/function.session-start.php" rel = "aucune erreur de suivi"> session_start () sur chaque page où vous utiliserez les données de session magasin ( $ _SESSION ))
  • ajoutez vos données à la chaîne de requête du " next " page ( $ _GET )
  • publiez vos données sur le " next " page ( $ _POST )

Le mode session est le seul moyen de ne pas laisser les données & "laisser &"; le serveur tel qu'il est stocké sur le serveur lui-même. Pour tous les autres moyens mentionnés ci-dessus, vous devez veiller à la désinfection et à la validation des données sur la page de réception.

Le moyen le plus simple serait

//page1.php
session_start();
$_SESSION['user']='user';
$_SESSION['password']='password';

//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];

Vous pouvez essayer d'utiliser les méthodes POST et GET pour transférer les entrées d'utilisateur dans les scripts PHP.

PHP GET

POST PHP

Je suis d’accord aussi, les sessions sont la meilleure solution. Voir ce chapitre à partir de applications de base de données Web avec PHP & Amp; MySQL pour quelques exemples.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top