Je me demandais donc s'il serait possible de stocker des données provenant d'un formulaire en tant que variable de session.
Voici ce que j'ai jusqu'à présent, mais je ne sais pas quoi mettre pour l'action de formulaire.
Merci d'avoir regardé!
<strong>Test Form</strong>
<form action="" method"post">
<input type="text" name="picturenum"/>
<input type="submit" name="Submit" value="Submit!" />
</form>
<?
if (isset($_POST['Submit'])) {
$_session['picturenum'] = $_POST['picturenum'];
}
?>
<strong><? echo $_session['picturenum'];?></strong>
Pour utiliser des variables de session, il est nécessaire de démarrer la session en utilisant le session_start
, cela vous permettra de stocker vos données dans la variable globale $_SESSION
d'une manière persistante.
donc votre code ressemblera finalement à ceci:
<strong>Test Form</strong>
<form action="" method"post">
<input type="text" name="picturenum"/>
<input type="submit" name="Submit" value="Submit!" />
</form>
<?php
// starting the session
session_start();
if (isset($_POST['Submit'])) {
$_SESSION['picturenum'] = $_POST['picturenum'];
}
?>
<strong><?php echo $_SESSION['picturenum'];?></strong>
pour le rendre facile à utiliser et pour éviter de l'oublier à nouveau, vous pouvez créer un session_file.php
qui sera inclus dans tous vos codes et lancera la session pour vous
session_start.php
<?php
session_start();
?>
et ensuite l'inclure où vous voulez:
<strong>Test Form</strong>
<form action="" method"post">
<input type="text" name="picturenum"/>
<input type="submit" name="Submit" value="Submit!" />
</form>
<?php
// including the session file
require_once("session_start.php");
if (isset($_POST['Submit'])) {
$_SESSION['picturenum'] = $_POST['picturenum'];
}
?>
c'est le moyen le plus portable et le plus facile à entretenir à l'avenir.
autres remarques
si vous utilisez Apache version 2 ou plus, faites attention au lieu de<?
pour ouvrir les balises php, utilisez <?php
, sinon votre code ne sera pas interprété
les noms de variables en php sont sensibles à la casse au lieu d'écrire $ _session, écrivez $ _SESSION en majuscules
bon travail !
C'est parfaitement bien et cela fonctionnera. Mais pour utiliser les sessions, vous devez mettre session_start();
sur la première ligne du code php. Donc en gros
<?php
session_start();
//rest of stuff
?>
Oui c'est possible. kizzie a raison avec la session_start();
devant aller en premier.
une autre observation que j'ai faite est que vous devez filtrer vos données de formulaire en utilisant:
strip_tags($value);
et/ou
stripslashes($value);
Vous pouvez résoudre ce problème en utilisant ce code:
if(!empty($_GET['variable from which you get']))
{
$_SESSION['something']= $_GET['variable from which you get'];
}
Ainsi, vous obtenez la variable à partir d'un formulaire GET, vous stockerez dans le $_SESSION['whatever']
variable une seule fois lorsque $_GET['variable from which you get']
est défini et s'il est vide $_SESSION['something']
stockera l'ancien paramètre