web-dev-qa-db-fra.com

Comment passer des variables entre les scripts php?

Est-il possible de passer des valeurs et des variables entre les scripts php?

Formellement, j'ai essayé de coder une page de connexion et lorsque l'utilisateur saisit d'abord une entrée fausse, un autre script vérifie l'entrée et, si elle est fausse, le site revient à la dernière page de script et affiche un avertissement du type "C'est une entrée incorrecte". Pour cela, je suppose que je dois transmettre les valeurs des scripts.

Cordialement ...: P

9
erogol

Pour transmettre des informations 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 : jetez un coup d'œil à this .

16
Tanner Ottinger

Ne pouvez-vous pas include (ou include_once ou require) utiliser l'autre script?

3
Albireo

Vous devriez regarder dans variables de session . Cela implique de stocker sur le serveur des données liées à un numéro de référence particulier ("identifiant de session") qui est ensuite envoyé par le navigateur à chaque demande (généralement sous forme de cookie). Le serveur peut voir que le même utilisateur accède à la page et définit le $_SESSION superglobal pour refléter cela.

Par exemple:

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
lonesomeday

Le moyen le plus rapide serait d’utiliser des variables globales ou de session.

global $variable = 'something';

La "meilleure" façon de le faire serait d'inclure le script et de passer la variable par paramètre comme

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

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

Vous pouvez utiliser:

  • fichier temporaire (par exemple tempnam() ),
  • cache (NoSQL: memcached , redis ),
  • variable de session ( $_SESSION ), mais vous devez commencer par ouvrir la session.
0
kenorb

J'utilise la méthode extract() pour transmettre la variable entre PHP Scripts . Cela ressemble à l'exemple ci-dessous:

1. Fichier index.php

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

2. Fichier content.php :

<?php 
echo $title;
echo $content;
0
Tran Van Hoang

Je dirais que vous pouvez également stocker une variable dans le cache si vous en avez vraiment besoin.

0
dotslashlu