J'ai un formulaire HTML Affectations à l'index.php suivante:
<?php require_once("/home/full/path/to/included/file.php"); ?>
Et file.php, je suis en train d'accéder à $ _POST:
ob_start();
session_start();
var_dump($_POST);
$contents = ob_get_contents();
ob_end_clean();
echo $contents;
Mais retourne var_dump ($ _ POST) un tableau vide.
Le déplacement des fonctions ob vers index.php n'a aucun effet.
Si je mets le var_dump ($ _ POST) avant ob_start(), OU si je supprime complètement la mémoire tampon de sortie, le problème disparaît, mais j'ai besoin d'un tampon de sortie. Donc, dans un effort pour traquer le problème, j'ai essayé POSTer les données de formulaire à un test.php:
ob_start();
$session_start;
var_dump($_POST);
$contents = ob_get_contents();
ob_end_clean();
echo $contents;
Et tout va bien affiché. Donc, le problème avec mon fichier. Php semble être qu'il est à la fois inclus, et en utilisant la mise en mémoire tampon de sortie. Voyez-vous un problème avec ma configuration? Pourquoi $ _POST ne peut-il pas être accédé par un script buffer inclus en sortie? Voyez-vous un moyen de résoudre ce problème, ou une alternative? Merci.
EDIT: Un autre facteur possible: Ma balise form HTML est la suivante:
<form action="/" method="POST">
J'utilise mod_rewrite pour rediriger que index.php. J'essaie action = "/ index.php" et rien ne change, donc ça ne devrait pas avoir d'importance.
ne vous "include" à l'aide d'URL HTTP au lieu de chemin de système de fichiers? le chemin semble correct mais c'est la raison la plus probable –
Je l'inclue en utilisant un chemin de système de fichiers car il est en dehors de la racine du document (il contient des données sensibles et je ne veux pas qu'il soit accessible publiquement, protégé par .htaccess). –