variables post en vacances!!!

Eléphanteau du PHP | 11 Messages

28 déc. 2005, 21:44

bonjour j'ai quelques problemes avec un formulaire post: :cry:
en fait a quoi que je fasse il n'y a rien dans mes variables en methode post alors que ca marche très bien en get: :shock:
voila la le code;
<form action="login.php" method="post" enctype="text/plain">

<input type="text" name="login" value="" size="40" maxlength="40"/><br/>
<input type="password" name="pass" value="" size="40" maxlength="40"/><br/>
<input type="submit" name="" value="envoyer" size="40" maxlength="40"/>
</form>
<?php
if (isset($_POST["login"])){
$login = isset($_POST['login']);print $login;
$pass =md5(isset($_POST['pass']));
print $pass;
}
?>


pour simplifier voila le code reduit a sa plus simple expression
$login = $_GET['login'];
print $login;
$pass =md5($_GET['pass']);
print $pass;

resultat :
mon login: login
mon passwd md5 :1a1dc91c907325c69271ddf0c944bc72
$login = $_POST['login'];
print "mon login: ".$login."<br/>";
$pass =md5($_POST['pass']);
print "mon passwd md5 : ".$pass."<br/>";
resultat
mon login:
mon passwd md5 : d41d8cd98f00b204e9800998ecf8427e


on voi bien qu'il met rien du tout dedans.
-j'ai bien fais attention a mettre du post partout(form et variables)
-j'ai essayé de print le isset mais rien (apparament il renvoi rien quand ya rien ou alors il fait la greve.
- le probleme reviens sur toutes les pages et tous les forms.
-le probleme est le meme chez mon fai : free

Mammouth du PHP | 19672 Messages

28 déc. 2005, 21:47

Essaye donc une chose pour voir exactement ce qu'il y a dans la super-globale $_POST:
<pre>
<?php
var_dump($_POST);
?>
</pre>
Et raconte nous un peu ensuite... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 11 Messages

28 déc. 2005, 22:04

tu veux vraiment savoir ???

Code : Tout sélectionner

array(0) { } mon login: mon passwd md5 :

Mammouth du PHP | 19672 Messages

28 déc. 2005, 22:13

Je viens de regarder un peu mieux ton code, c'est un peu fantaisiste : essaye comme ceci:
<form action="login.php" method="post" enctype="text/plain">
<input type="text" name="login" value="" size="40" maxlength="40"/><br/>
<input type="password" name="pass" value="" size="40" maxlength="40"/><br/>
<input type="submit" name="" value="envoyer" size="40" maxlength="40"/>
</form>
<?php
if (isset($_POST["envoyer"]))
{
    $login = isset($_POST['login']) ? $_POST['login'] : "Pseudonyme absent";
    print $login;
    $pass = isset($_POST['pass']) ? md5($_POST['pass']) : "Mot de passe absent";
    print $pass;
}
?>
Reviens ensuite pour dire ce que tu obtiens comme résultat et avec les questions si quelque chose t'échappe.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 11 Messages

28 déc. 2005, 22:25

bon c'est pas très differente de ce que j'avais fait. je l'ai essayé et ca me donne ceci:

rien en fait. il ne rnetre pas dans la condition vu que rien n'est set pour lui
/* je savais pas qu'on pouvais faire des isset sur les boutons */

quand j'enleve le if et que j'execute :

Code : Tout sélectionner

Pseudonyme absent Mot de passe absent
petite remarque : n'oubliez pas que ca marche parfaitement avec les get.

Mammouth du PHP | 19672 Messages

28 déc. 2005, 22:33

Autant pour moi, il y a une erreur dans ma proposition et le test vérifiait une variable inexistante parce que ton bouton d'envoi n'avait pas de valeur dans l'attribut name. Nouvelle proposition corrigée:
<form action="login.php" method="post">
<input type="text" name="login" value="" size="40" maxlength="40"/><br/>
<input type="password" name="pass" value="" size="40" maxlength="40"/><br/>
<input type="submit" name="envoi" value="envoyer" size="40" maxlength="40"/>
</form>
<?php
if (isset($_POST["envoi"]))
{
    $login = isset($_POST['login']) ? $_POST['login'] : "Pseudonyme absent";
    print $login;
    $pass = isset($_POST['pass']) ? md5($_POST['pass']) : "Mot de passe absent";
    print $pass;
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 11 Messages

28 déc. 2005, 22:46

oui en effet. mais j'avais sauté le pas et modifié le code ce qui me donne toujours rien. bon pour pas tourner en rond on recapitule si vous voulez bien:


-le var-dump me donne array(0) { }

-donc les variables ne sont pas send : c'est donc un probleme de formulaire ou une restriction sur les variables post dans le php.ini.

la première solution n'est pas la bonne puisque le form est au plus simple et qu'il marche en changeant la method par get.

la deuxieme je sais pas ???

bon quelqu'un a l'aideeee!!!! :cry:

ViPHP
fab
ViPHP | 2657 Messages

29 déc. 2005, 00:05

question stupide mais tu fais un truc genre unset($_POST); ? sinon je vois pas et j'ai pas souvenance d'avoir vu quelque chose sur $_POST dans le^php.ini mais je suis en vacances là ( comme tes variables :p) donc j'en ai pas un sous la main ... donc peut pas vérifier
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphanteau du PHP | 11 Messages

29 déc. 2005, 00:23

non du tout voila le code complet pour te dire
<h3>Enregistrez vous pour acceder à l'application. </h3>
<table border>
<tr>

<td>
  <form action="login.php" method="post" enctype="text/plain">
  
  <input type="text" name="login" value="" size="40" maxlength="40"/><br/>
  <input type="password" name="pass" value="" size="40" maxlength="40"/><br/>
  <input type="submit" name="send" value="envoyer" size="40" maxlength="40"/>
  </form>
</td>
</tr>
 </table>
 <?php

if (isset($_POST["send"]))
{
    $login = isset($_POST['login']) ? $_POST['login'] : "Pseudonyme absent";
    print $login;
    $pass = isset($_POST['pass']) ? md5($_POST['pass']) : "Mot de passe absent";
    print $pass;
}
 ?> 

 
 </body>
le probleme je l'ai rencontré sur tous les editeurs (eclipse et notepad++)
ainsi que sous easyphp ainsi que wamp rien a y faire . en fait c'est aussi simple que cela c'est comme si le post n'était pas reconnu par le formulaire :evil:

ViPHP
fab
ViPHP | 2657 Messages

29 déc. 2005, 00:27

ton éditeur n'a aucun rapport avec ce que php te renvoi hein !

sinon encore une vérification stupide, ton fichier se nomme bien login.php ?
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Mammouth du PHP | 19672 Messages

29 déc. 2005, 01:20

essaye donc en virant le enctype, je soupçonne quelque chose... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 11 Messages

29 déc. 2005, 01:36

essaye donc en virant le enctype, je soupçonne quelque chose... :-k
t'a un 8 ème sens ou quoi?

bravo chapeau bas total respect because caaaaa mmmaaaarche!!!!! :D

je suis hyper content.


mais bon pour que ca se reproduise plus : en quoi cette balise gene le post et pas le get??

Mammouth du PHP | 19672 Messages

29 déc. 2005, 11:44

Honnêtement, je ne sais pas vraiment, il m'est revenu que ça m'était déjà arrivé une fois, il faudrait procéder à des tests : les variables sont certainement envoyées, mais la question fondamentale, c'est "où ?"

Un détail : c'est la valeur de cette attribut enctype qui pose problème. Si tu crée un formulaire avec par exemple un ajout d'image via un champ de type file, il faudra un enctype avec la valeur multipart/form-data et les variables passeront très bien en post. Mais avec text/plain, ça bafouille, je n'ai jamais creusé ce mystère.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: