Хранение данных формы как переменной сеанса

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

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

Спасибо, что посмотрели!

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

Ответы

Ответ 1

Чтобы использовать переменные сеанса, необходимо запустить сеанс с помощью функции 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 являются чувствительными к регистру, а не write $_session, записывают $_SESSION заглавными буквами

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

Ответ 2

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

<?php
session_start();

//rest of stuff

?>

Ответ 3

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

другое замечание, которое я сделал, это то, что вам нужно отфильтровать данные формы, используя:

strip_tags($value);

и/или

stripslashes($value);

Ответ 4

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

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'] сохранит старый параметр