Хранение данных формы в виде переменной сеанса - PullRequest
17 голосов
/ 25 сентября 2010

Поэтому мне было интересно, можно ли будет хранить данные, поступающие из формы, как переменную сеанса.

Вот то, что у меня есть, но я не знаю, что положить на действие формы.

Спасибо за внимание!

<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>

Ответы [ 4 ]

34 голосов
/ 25 сентября 2010

Чтобы использовать переменные сеанса, необходимо запустить сеанс с помощью функции session_start, это позволит вам сохранять данные в глобальной переменной $_SESSION на постоянной основе.

, так что ваш код, наконец, будет выглядеть следующим образом:

<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>

, чтобы упростить его использование и избежать повторного забывания, вы можете создать session_file.php, который будет включен во всеваши коды и начнут сеанс для вас

session_start.php

 <?php
   session_start();
 ?> 

, а затем включите его в любое место:

<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'];
 } 
?> 

это более переносимый и простой способ поддержки в будущем.

другие замечания

  • , если вы используете Apache версии 2 или более,будьте осторожны вместо
    <?
    для открытия тегов php, используйте <?php, иначе ваш код не будет интерпретироваться

  • имена переменных в php чувствительны к региструвместо $ _session напишите $ _SESSION заглавными буквами

хорошая работа!

7 голосов
/ 25 сентября 2010

Это прекрасно и будет работать.Но чтобы использовать сессии, вы должны поместить session_start(); в первую строку кода php.Так что в основном

<?php
session_start();

//rest of stuff

?>
2 голосов
/ 25 сентября 2010

Да, это возможно.kizzie верна, когда session_start(); нужно идти первым.

Еще одно замечание, которое я сделал, заключается в том, что вам необходимо отфильтровать данные формы, используя:

strip_tags($value);

и / или

stripslashes($value);
1 голос
/ 31 октября 2017

Вы можете решить эту проблему, используя этот код:

if(!empty($_GET['variable from which you get'])) 
{
$_SESSION['something']= $_GET['variable from which you get'];
}

Таким образом, вы получаете переменную из формы GET, вы сохраняете ее в переменной $_SESSION['whatever'] только один раз, когда установлена ​​$_GET['variable from which you get'] и если она пуста, $_SESSION['something'] сохранит старый параметр

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...