开发者

How to pass variables between php scripts?

开发者 https://www.devze.com 2023-02-25 15:19 出处:网络
Is there any way to pass values and variables between php scripts? Formally, I tried to code a login page and when user enter wrong input first another script will check the input and if it is wrong

Is there any way to pass values and variables between php scripts?

Formally, I tried to code a login page and when user enter wrong input first another script will check the input and if it is wrong, site returns to the last script page and show a w开发者_如何学编程arning like "It is wrong input". For this aim, I need to pass values from scripts I guess.

Regards... :P


To pass info via 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: Take a look at this.


You should look into session variables. This involves storing data on the server linked to a particular reference number (the "session id") which is then sent by the browser on each request (generally as a cookie). The server can see that the same user is accessing the page, and it sets the $_SESSION superglobal to reflect this.

For instance:

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"


Can't you include (or include_once or require) the other script?


The quick way would be to use either global or session variables.

global $variable = 'something';

The 'better' way of doing it would be to include the script and pass the variable by parameter like

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

// script2.php
include "script1.php";
echo 'Value is '.add3(2); // Value is 5


I would say that you could also store a variable in cache if you really need.


You can use:

  • temporary file (e.g. tempnam()),
  • cache (NoSQL: memcached, redis),
  • session variable ($_SESSION), but you need to start the session first.


I use extract() method to pass variable among PHP Scripts. It look like below example:

1. File index.php

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

2. File content.php :

<?php 
echo $title;
echo $content;
0

精彩评论

暂无评论...
验证码 换一张
取 消