Espace membre

Eléphanteau du PHP | 48 Messages

07 juin 2005, 14:34

Re bonjour à tous :)

Alors, dans le cadre de la création de l'espace membre sur mon site, je rencontre quelques difficultés (encore et toujours :( )

1°/ Lors de l'affichage des informations du membre (nom, prénom, pseudo, ...) la rue ne s'affiche pas entièrement, seul(s) le (ou les 2) premier(s) mot(s) s'affichent.

Voici le code :
<?php

   $id=$_GET['id'];

   $connexion = mysql_pconnect("localhost", "root", "") or die("erreur");
   mysql_select_db("bd_site", $connexion) or die ("échec");
   $reqSQL="SELECT * FROM client WHERE id='$id' ";
   $result=mysql_query($reqSQL, $connexion);
   $enreg=mysql_fetch_object($result);
   while($enreg)
{ ?>

Code : Tout sélectionner

<center> <form name="validation" method="post" action="zonemembre.php?id=$id"> <TABLE width=250 border=1 cellpadding=3> <tr><td colspan=2><CENTER><FONT size="+2"> <b>Vos coordonnées</b></FONT></CENTER></td></tr> <tr><td><center>Nom:</td><td><input type="text" name="prenomcli" value=<?php print("$enreg->nomcli");?> size="12"></td></tr> <tr><td><center>Prénom:</td><td><input type="text" name="prenomcli" value=<?php print("$enreg->prenomcli");?> size="12"></td></tr> <tr><td><center>Rue:</td><td><input type="text" name="ruecli" value=<?php print("$enreg->ruecli");?> size="30"></td></tr> <tr><td><center>Code Postal:</td><td><input type="text" name="villecli" value=<?php print("$enreg->CPcli");?> size="12"></td></tr> <tr><td><center>Ville:</td><td><input type="text" name="CPcli" value=<?php print("$enreg->villecli");?> size="12"></td></tr> <tr><td><center>E-mail:</td><td><input type="text" name="email" value=<?php print("$enreg->email");?> size="30"></td></tr> <tr><td><center>Pseudo:</td><td><input type="text" name="pseudo" value=<?php print("$enreg->pseudo");?> size="12"></td></tr> <tr><td><center>Ancien mot de passe:</td><td><input type="password" name="mdp" size="3"></td></tr> <tr><td><center>Nouveau mot de passe:</td><td><input type="password" name="mdp" size="3"></td></tr> <tr><td><center>Re-saisissez le nouveau mot de passe:</td><td><input type="password" name="mdp2" size="3"></td></tr> <tr><td colspan=2 align=center> <? echo "<input type='hidden' name='id' value='".$id."'>" ?> <input type="submit" value="Retour à l'espace perso"> </form> <form name="modifier" method="post" action="modif_infos.php?id=$id"> <? echo "<input type='hidden' name='id' value='".$id."'>" ?> <input type="submit" value="Modifier les informations"></td></tr> </form> </TABLE> <br><br><br> </center>
<?
$enreg=mysql_fetch_object($result);
}
mysql_close($connexion);
?>
2°/ Lorsque je souhaite modifier les informations du membre, l'id n'est pas transféré, les données ne dont donc pas modifiées.

Voici le code :
infos_perso.php

Code : Tout sélectionner

<form name="modifier" method="post" action="modif_infos.php?id=$id"> <? echo "<input type='hidden' name='id' value='".$id."'>" ?> <input type="submit" value="Modifier les informations"></td></tr> </form>
modif_infos.php
<?php

$id=$_GET['id'];

$connexion=mysql_pconnect("localhost","root","");
mysql_select_db("db_site",$connexion);
$reqSQL="UPDATE client SET nomcli='$nomcli', prenomcli='$prenomcli', ruecli='$ruecli', CPcli='$CPcli', villecli='$villecli', email='$email', pseudo='$pseudo', mdp='$mdp' WHERE id='$id'";
$result=mysql_query($reqSQL, $connexion);
if ($result)
{
    print("<strong><h1>Modification effectuée avec succès!</h1></strong>");
    print("<form name=\"modifier\" method=\"post\" action=\"infos_perso.php?id=$id\">
           <input type='hidden' name='id' value='".$id."'>
           <input type=\"submit\" value=\"Voir les modifications\">
           </form>");
}
else
{
    print("<strong><h1>Modification non effectuée</h1></strong>");
    print("<form name=\"modifier\" method=\"post\" action=\"infos_perso.php?id=$id\">
           <input type='hidden' name='id' value='".$id."'>
           <input type=\"submit\" value=\"Retour\">
           </form>");
}
mysql_close($connexion);

?>
Je ne sais pas si la syntaxe du code de infos_perso.php est correcte :?:

zzzzZZZZZ
Invité n'ayant pas de compte PHPfrance

07 juin 2005, 14:38

Code : Tout sélectionner

<form name="modifier" method="post" action="modif_infos.php?id=$id"> <? echo "<input type='hidden' name='id' value='".$id."'>" ?> <input type="submit" value="Modifier les informations"></td></tr> </form>
essaie ca
<form name="modifier" method="post" action="modif_infos.php?id=".$id."">
<? echo "<input type='hidden' name='id' value='".$id."'>" ?>
<input type="submit" value="Modifier les informations"></td></tr>
</form>

Eléphanteau du PHP | 48 Messages

07 juin 2005, 14:44

Code : Tout sélectionner

<form name="modifier" method="post" action="modif_infos.php?id=$id"> <? echo "<input type='hidden' name='id' value='".$id."'>" ?> <input type="submit" value="Modifier les informations"></td></tr> </form>
essaie ca

Code : Tout sélectionner

<form name="modifier" method="post" action="modif_infos.php?id=".$id.""> <? echo "<input type='hidden' name='id' value='".$id."'>" ?> <input type="submit" value="Modifier les informations"></td></tr> </form>
Non :(

J'ai remarqué que j'avais omis des points virgules aussi mais ça ne change rien

zzzzzzZZZZ
Invité n'ayant pas de compte PHPfrance

07 juin 2005, 14:52

il sert a quoi le champs caché? puisque la valeur de l'id est passé dans l'URl?

Eléphanteau du PHP | 48 Messages

07 juin 2005, 14:53

il sert a quoi le champs caché? puisque la valeur de l'id est passé dans l'URl?
Et bien le champ caché sert à transférer l'id à la page suivante.
Seulement rien n'y fait, l'id n'est pas transféré, ni dans l'url, ni dans la page ...

zzzzzZZZZZZ
Invité n'ayant pas de compte PHPfrance

07 juin 2005, 14:59

le navigateur affiche quoi comme source lorsque la page comportant le formulaire info_perso.php est recupéré apres interpretation coté serveur?
si tu enleve le type hidden....

zzzzZZZZ
Invité n'ayant pas de compte PHPfrance

07 juin 2005, 15:06

fait un echo de $reqSQL
voir si les variables passent bien
si c'est le cas, execute la requete directement sous pgadmin.... pour voir si il décèle des erreurs de syntaxe

Eléphanteau du PHP | 48 Messages

07 juin 2005, 15:06

le navigateur affiche quoi comme source lorsque la page comportant le formulaire info_perso.php est recupéré apres interpretation coté serveur?
si tu enleve le type hidden....
Tu veux dire si j'enlève simplement
type='hidden'
?

A ce moment là l'id s'affiche sur la page du formulaire, ce qui ne me sert à rien !

Si j'enlève la boud de code php suivant
<?
echo "<input type='hidden' name='id' value='".$id."'>";
?>
il ne se passe rien non plus.

Ma variable $id n'est toujours pas transférée ni dans ma page de modification ni dans ma page de "retour".

Mammouth du PHP | 19672 Messages

07 juin 2005, 15:08

Si tu envoies une valeur avec la méthode post, il faut la récupérer dans $_POST['id'] et pas dans $_GET['id'].
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

zzzZZZZ
Invité n'ayant pas de compte PHPfrance

07 juin 2005, 15:09

A ce moment là l'id s'affiche sur la page du formulaire, ce qui ne me sert à rien !
ca sert a savoir si la variable passe bien dans le formulaire
utilise des flags dans le deroulement pour savoir a quel moment tu perds la variable

zzzzZZZZ
Invité n'ayant pas de compte PHPfrance

07 juin 2005, 15:10

oé mais le formulaire l'envoie a la fois en post et en get.....
bizarre le code

Eléphanteau du PHP | 48 Messages

07 juin 2005, 15:11

A ce moment là l'id s'affiche sur la page du formulaire, ce qui ne me sert à rien !
ca sert a savoir si la variable passe bien dans le formulaire
Mais la variable passe dans le formulaire ! Les odnnées s'affichent bien ! Le problème ne si situe pas là.

En fait mes donénes s'affichent, mais je souhaite que lorsque l'utilisateur clique sur "modifier les informations" la requête UPDATE s'effectue et que les données soient modifiées dans la BD. Seulement cette requête est sensée fonctionner grâce à l'id, qui lui n'est pas transféré...

De même lorsque l'utilisateur clique sur "Retour à l'espace perso" il faut que l'id soit transféré pour que le membre ne perde pas son identification...

Mammouth du PHP | 19672 Messages

07 juin 2005, 15:13

oé mais le formulaire l'envoie a la fois en post et en get.....
bizarre le code
Effectivement j'avais pas remarqué ce détail. Il faut en virer un des deux: soit le champ caché, soit le paramètre, ou alors il faut leur donner des noms différents.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 48 Messages

07 juin 2005, 15:14

fait un echo de $reqSQL
Si je fais un
echo $reqSQL;
s'affiche la requête telle que
SELECT * FROM client WHERE id='qf4xmnsters9ubc9urkx'

zzzzzzZZZZ
Invité n'ayant pas de compte PHPfrance

07 juin 2005, 15:16

celle la
$reqSQL="UPDATE client SET nomcli='$nomcli', prenomcli='$prenomcli', ruecli='$ruecli', CPcli='$CPcli', villecli='$villecli', email='$email', pseudo='$pseudo', mdp='$mdp' WHERE id='$id'";