Probleme avec mes variables $_POST

seb4536
Invité n'ayant pas de compte PHPfrance

12 juil. 2006, 10:06

Bonjour,

je souhaiterais savoir pourquoi à chaque fois que j'ai un $_POST, la valeur renvoyée est une chaine vide (ce qui m'empêche de faire des insertions et des modifications dans ma BDD).

Merci

seb3645
Invité n'ayant pas de compte PHPfrance

12 juil. 2006, 10:12

Je tiens à préciser que les noms de mes champs et les noms de mes $_POST sont corrects.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

12 juil. 2006, 10:21

Du code nous aiderait sans aucun doute à repérer ton problème...

SEB3645
Invité n'ayant pas de compte PHPfrance

12 juil. 2006, 10:39

Extrait du fichier "identification.telmplate.php"
<form class="adminForm" method="post" action="admin.identification.action" onsubmit="return checkFields(this);">
	<div class="errorLogin"><?php if (array_key_exists('message', $_SESSION)) echo $_SESSION['message'];?></div>
	<div class="tabIdentification">
		<div class="identification">
			<div class="login">
				<img alt="[Login]" src="skins/novintec/images/backgrounds/login.png" />
			</div>
			<div class="loginInfo">
				<p>
					<label for="login" class="mandatory block">Identifiant&nbsp;*</label>
					<input type="text" value="" id="login" name="login" size="40" class="inline" onchange="checkField(this);" />
					<script type="text/javascript">arrChecks.push(new Array("login", /^[a-zA-Z_]{1,10}$/));</script>
				</p>
extrait du fichier "identification.action.php
$hmiInternaute = Internaute::getItemList('"int_login"=' . $scnDefautConnection->escapeString($_POST['login']));
/************************
if ($_POST['login'] == "")
     $v = "POST VIDE - ";
************************/
if ((int)$hmiInternaute->size() === 0) 

{
	$_SESSION['message'] = $v . "Votre login est incorrect";
	HttpBuffer::redirect('login');
}
 
----------------------------
Mon souci provient du fait que sytématiquement j'ai un renvoi qui me dit :

POST VIDE - votre login est incorrect

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

12 juil. 2006, 11:06

extrait du fichier "identification.action.php
/*php
echo '<pre>';
print_r($_POST);
echo '</pre>';

$hmiInternaute = Internaute::getItemList('"int_login"=' . $scnDefautConnection->escapeString($_POST['login']));
Tu en auras le coeur net : $_POST a-t-il réellement un problème, ou est-ce plutôt ta fonction $scnDefautConnection->escapeString(), ou encore Internaute::getItemList, ou encore $hmiInternaute->size()... ? Je pense que tu as cherché un bug là où il n'était pas, mais le print_r nous en donnera la certitude.

seb3645
Invité n'ayant pas de compte PHPfrance

12 juil. 2006, 11:20

Résultat de l'affichage

Array ()

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

12 juil. 2006, 11:59

Alors là tu as vraiment un problème étrange, parce que ce serait bien la première fois que je vois un passage de variable par POST échouer :lol:

Vérifie que tu n'as pas du html un peu "éxotique" (formulaires imbriqués, choses de ce genre), vérifie également que ce n'est pas un bug de ton serveur avec un test simple :

form.html

Code : Tout sélectionner

<html> <head><title>Test formulaire</title></title> <body> <h1>Formulaire POST</h1> <form method="post" action="form.php"> champ A : <input type="text" name="A" value="valeur A"><br> champ B : <input type="text" name="B" value="valeur B"><br> <input type="submit"> </form> <h1>Formulaire GET</h1> <form method="get" action="form.php"> champ A : <input type="text" name="A" value="valeur A"><br> champ B : <input type="text" name="B" value="valeur B"><br> <input type="submit"> </form> </body> </html>
form.php

Code : Tout sélectionner

<html> <head><title>Résultat</title></head> <body> Méthode : <b><?php echo $method = $_SERVER['REQUEST_METHOD']; ?></b><br> Résultat : <pre><?php print_r(${"_$method"}); ?></pre> </body> </html>
N'y a-t-il pas dans tes fonctions JS de vérifications une manipulation qui modifie le formulaire ?
Y aurait-il un header('location') qui renvoie vers la page de traitement après réception du formulaire ?

Invité
Invité n'ayant pas de compte PHPfrance

12 juil. 2006, 12:20

Merci pour ce code (mon serveur c'est IIS 6.0). Résultat : tout est ok sur les pages ci_dessus.

Mon formulaire renvoi directement sur la page identification.action.php.
Je viens de me rendre compte que c'est tout mes $_POST qui posent problème

Ce problème me dépasse et me rend fou. :?

se3645
Invité n'ayant pas de compte PHPfrance

12 juil. 2006, 12:47

Vous avez -- comme toujours -- raison. Vous avez mis le doigt ou il fallait et je vous en remercie.

En effet, lorsque je renvoie mon formulaire vers form.php (celui ci dessus), mon $_POST n'est plus une chaine vide. Je vais voir ce que cela donne sans mon header.

joecole
Invité n'ayant pas de compte PHPfrance

19 juil. 2006, 09:32

J'ai le même problème, je me demande si cela ne viens pas de IIS 6.0 Quelqu'un aurait-il des infos à ce sujet ? Merci d'avance

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

19 juil. 2006, 09:52

En espérant qu'on aie le retour de se3645 car je n'ai aucune expérience sur PHP+IIS, et je crois que peu en ont dans le coin.

seb3645
Invité n'ayant pas de compte PHPfrance

19 juil. 2006, 14:35

Me revoila avec des éléments troublants. Le même site posant problème sous IIS 6.0 fonctionne à merveille avec IIS 5.1. Je cracque...................