Как передать переменные между PHP-скриптами? - PullRequest
10 голосов
/ 15 апреля 2011

Есть ли способ передать значения и переменные между php-скриптами?

Формально я пытался закодировать страницу входа в систему, и когда пользователь вводит неправильный ввод первым, другой скрипт проверяет ввод, и если он неправильный, сайт возвращается на последнюю страницу скрипта и показывает предупреждение типа «Это неправильно».вход».Для этой цели мне нужно передать значения из сценариев, я думаю.

С уважением ...: P

Ответы [ 7 ]

18 голосов
/ 15 апреля 2011

Для передачи информации через GET :

    header('Location: otherScript.php?var1=val1&var2=val2');

Session

    // first script
    session_start(); 
    $_SESSION['varName'] = 'varVal';
    header('Location: second_script.php'); // go to other

    // second script
    session_start(); 
    $myVar = $_SESSION['varName'];

Post : взгляните на this .

3 голосов
/ 15 апреля 2011

Вы должны посмотреть переменные сеанса . Это включает в себя хранение данных на сервере, связанном с конкретным ссылочным номером («идентификатором сеанса»), который затем отправляется браузером при каждом запросе (обычно в виде файла cookie). Сервер может видеть, что тот же пользователь обращается к странице, и он устанавливает суперглобальный $_SESSION, чтобы отразить это.

Например:

a.php

session_start(); // must be called before data is sent

$_SESSION['error_msg'] = 'Invalid input';

// redirect to b.php

b.php

<?php

session_start();

echo $_SESSION['error_msg']; // outputs "Invalid input"
3 голосов
/ 15 апреля 2011

Не можете ли вы include (или include_once или require) другой сценарий?

1 голос
/ 15 апреля 2011

Быстрый способ - использовать глобальные переменные или переменные сеанса.

global $variable = 'something';

«Лучшим» способом будет включение сценария и передача переменной по параметру, например

// script1.php contains function 'add3'
function add3( $value ) {
  return $value + 3;
}

// script2.php
include "script1.php";
echo 'Value is '.add3(2); // Value is 5
0 голосов
/ 02 ноября 2016

Я использую extract() метод для передачи переменной среди PHP Scripts . Это выглядит как пример ниже:

1. Файл index.php

<?php
$data = [
    'title'=>'hello',
    'content'=>'hello world'
];
extract($data);
require 'content.php';

2. Файл content.php :

<?php 
echo $title;
echo $content;
0 голосов
/ 30 сентября 2015

Вы можете использовать:

  • временный файл (например, tempnam()),
  • кеш (NoSQL: memcached, redis),
  • переменная сеанса ($_SESSION), но сначала необходимо запустить сеанс.
0 голосов
/ 16 сентября 2011

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

...