$_POST en php 5.3.5 ne fonctionne pas
Je suis en train de travailler sur une page en PHP 5.3.5 et il semble que $_POST
ne contient pas les données transmises à partir de mon formulaire.
C'est le fichier HTML :
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
Et c'est le fichier PHP:
<html>
<body>
Welcome <?php echo $_POST["fname"]; ?>!<br />
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>
Le problème est que les valeurs d'un formulaire ne sont pas passé, alors je me sortie comme ceci:
Bienvenue ! Vous ans.
Au lieu de cela:
De Bienvenue De Jean! Vous êtes âgé de 28 ans.
Ce que je fais mal?
- Êtes-vous sûr que vous avez envoyé? Pouvez-vous voir le corps POST avec les infos dans les en-têtes?
- si vous affichez la source sur les welcome.php voyez-vous le php ou tout simplement des blancs?
- Il renvoie la page blanche
- Peut-être une petite chose comme un orthographe de votre welcome.php fichier, peut-être.
Vous devez vous connecter pour publier un commentaire.
Essayer
<?php var_dump($_POST); ?>
pour voir ce qui est vraiment là. Il n'y a aucun moyen $_POST est cassé, ça va être autre chose. Éventuellement, un serveur peut être la désactivation de $_POST.C'est probablement parce que vous avez magic_quotes_gpc allumé. Vous devez le désactiver:
http://www.php.net/manual/en/security.magicquotes.disabling.php
Avez-vous vérifier votre php.ini ?
J'ai cassé ma méthode post une fois que j'ai mis
post_max_size
la même chose avecupload_max_filesize
.Je pense que
post_max_size
faut moins deupload_max_filesize
.Testé avec PHP 5.3.3 dans RHEL 6.0
PHP 5.3 s'éloigne de l'aide mondiale, de pré-série de variables comme $_POST, pour éviter les vulnérabilités.
La question, ce que je comprends, c'est que les programmeurs qui n'ont jamais eu à utiliser $_POST ou $_GET peut le traiter comme n'importe quelle autre variable et s'ouvrir à des menaces de sécurité.
Je n'ai pas découvert la "bonne" façon de récupérer le $_POST encore de données, mais la méthode que j'ai à l'aide de semble assez sanitaires.
Cela permet de transférer les analysée HTTP POST-chaîne de $_POST variables
Est votre formulaire HTML méthode se à POST?
Vous n'avez pas Posté, ou quelque chose de se casser les
$_POST
.Si vous n'avez pas de mention de
$_POST
dans votre code avant de tenter d'y accéder, alors vous n'avez pas Posté votre script.Ici, il a travaillé, mais en PHP 5.3.1. Essayez ceci:
Veuillez jeter un oeil à cet article http://getluky.net/2009/02/24/php-_post-array-empty-although-phpinput-and-raw-post-data-is-available. Il a travaillé pour moi 🙂
Essayez d'utiliser capitales POST:
Au lieu de:
J'ai également eu le même problème.J'ai utilisé le bloc-notes de windows pour l'édition .fichier php et accidentellement enregistré le fichier dans le codage Unicode et qui crée le problème. Puis je l'ai enregistré dans l'encodage UTF-8, et il a travaillé comme un charme. Espérons que cela pourrait les aider.