Passer des Données d'Une Page PHP à une Autre en utilisant l'en-tête()
Je veux envoyer des données à partir d'un fichier PHP à un autre fichier PHP dans un sous-dossier dans lequel le premier fichier PHP est présent. J'ai un dossier nommé folder1
qui a contient un fichier PHP nommé file1.php
et je veux appeler un autre fichier nommé file2.php
dans un sous-dossier de folder1
nommé folder2
. Je suis l'aide de la header()
fonction comme ceci dans file1.php
:
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'folder1/folder2/file2.php';
header("location:http://$host$uri/$extra?sms=".$msg."&num=".$msg_num);
De données n'est pas en passant. Est-il une solution à l'aide de header()
? Je ne peux pas utiliser cURL
à cause de certaines restrictions.
- Pouvez-vous être plus précis que "les données ne passe pas" signifie?
- Avez-vous essayez d'utiliser les sessions?
- paramètres de chaîne de requête sont vides dans file2.php. Même s'ils sont remplis avec des données valides dans file1.php
- Qu'obtenez-vous lorsque vous
echo "location:http://$host$uri/$extra?sms=".$msg."&num=".$msg_num;
- je suis l'obtention de données lorsque je me fais l'écho de ce genre... mais les données ne sont transmises, fichier2
- Je ne vous vois pas l'initialisation de
$msg
et$msg_num
. Comme @jprofitt dit, fondamentalement, le débogage 101, imprimer le résultat et voir si elle correspond à vos attentes. La seule possibilité est que ces variables ne sont pas définies et la chaîne de requête est chargé avec vide de variables. Ou, mais vous ne l'avez pas dit, vous avez déjà l'écho avais quelque chose et que vous recevez l'avertissement que les en-têtes sont déjà envoyés, et la redirection n'a jamais lieu. Comment voyez-vous que "les données ne sont transmises, fichier2"? Avez-vous essayévar_dump($_SERVER);
? - J'ai initialisé et lui a attribué. Je peux dire que les données ne sont pas arriver à file2.php comme il n'y a pas de données dans la chaîne de requête, comme je peux voir le navigateur
- je ne peux pas utiliser les sessions pour mon fichier 🙁
- Pensez-vous réellement obtenir redirigé vers cette file2.php? Et ce ne vous voyez dans la barre d'adresse?
Vous devez vous connecter pour publier un commentaire.
Le code suivant fonctionne:
file1.php
:inner/file2.php
:La suite de la visite de
http://localhost/testing/file1.php
est une redirection vershttp://localhost/testing/inner/file2.php?x=1&y=2&z=3
qui s'affiche:Je suggère de copier ces fichiers de test et de prouver à vous-même que le concept de base de redirection avec les valeurs passées travaille. Ensuite, construire le reste de votre code autour d'un noyau. Bonne chance!
Sans un exemple de variables que vous souhaitez envoyer, c'est un peu dur de dire quel peut être le problème, mais un possible problème pourrait être les personnages dans les variables.
Pour s'assurer il n'y a pas de caractères non valides, vous pouvez utiliser
urlencode()
, peut-être en combinaison avechtmlentities()
, voir la manuel:file2.php
est en fait à la recherche pour les paramètres corrects.