2014-10-30 3 views
1

Здесь у меня есть foo.php, который работает в фоновом режиме без какого-либо HTML-кода, он никогда не посещается пользователем.Передача данных между файлами PHP

<?php 
if (isset($_GET['data'])) { 

$bar = $_GET['data']; // data comes from a html form on another page. 

$str = strtoupper($bar); 

echo $str; 
} 

Это простой пример, но, скажем, я wan't передать $str в другой файл, script.php для дополнительной обработки.

Каков наилучший способ для этого? Единственный способ, которым я могу это сделать, - отправить его в базу данных, а затем извлечь ее из script.php?

+0

Я бы включил файл 'foo.php' в файл' script.php' и внедрил функцию из инструкции if! – Rizier123

+1

$ _SESSION ["FOO"] = $ bar; – Jinandra

+0

На ваш вопрос ответили? Или вам нужна дополнительная информация/примеры? – Rizier123

ответ

1

Что-то, как это probebly простой способ сделать это:

Вы можете сделать функцию из, если заявление

foo.php:

<?php 
    function fooFunction() { 
     if (isset($_GET['data'])) { 

      $bar = $_GET['data']; // data comes from a html form on another page. 
      $str = strtoupper($bar); 

      return $str; 
     } 
    } 
?> 

script.php:

<?php 
    require_once 'foo.php'; 

?> 

ИЛИ если у вас уже есть сеанс, вы можете вставить его в массив сеансов следующим образом:

foo.php:

<?php 
    session_start(); 

    if (isset($_GET['data'])) { 

     $bar = $_GET['data']; // data comes from a html form on another page. 
     $str = strtoupper($bar); 

     $_SESSION['str'] = $str; 
    } 
?> 

script.php:

<?php 
    session_start(); 

    echo $_SESSION['str']; 

?> 
+1

Никогда, _ever_ 'echo' в функции ... функции' return', это зависит от вызывающего, чтобы решить, что делать с возвращаемым значением, эхо или назначить его переменной для последующего использования. –

+0

@EliasVanOotegem wups jeah thanks забыли его изменить после копирования – Rizier123

0

Если вы include (или require) PHP-скрипт X в другой php-скрипт Y, Y будет иметь доступ ко всем X-данным и функциям. Вы также можете использовать сеансы, такие как @sanki.

1

Использование сессии:

//On page 1 
$_SESSION['varname'] = $bar; 

//On page 2 
$var_value = $_SESSION['varname']; 

Не забудьте запустить оператор session_start() на обеих этих страницах, прежде чем пытаться получить доступ к массиву $ _SESSION, а также перед любой вывод посылается в браузер.

Cookie:

//One page 1 
$_COOKIE['varname'] = $bar; 

//On page 2 
$var_value = $_COOKIE['varname']; 

Как @ Rizier123 упоминается "Cookies могут быть удалены или отключены Не будет ли это делать, если переменная является очень важной!". Поэтому лучше избегайте такого подхода.

+1

Cookies могут быть удалены или отключены! Не сделал бы этого, если переменная очень важна – Rizier123

0

передачи данных в качестве параметра GET

<?php 
if (isset($_GET['data'])) { 

$bar = $_GET['data']; // data comes from a html form on another page. 

$str = strtoupper($bar); 
echo $str; 
header("Location: script.php?data={$str}"); 
} 

?> 

Но это будет делать script.php запускается сразу после текущего файла.

Смежные вопросы