Aller au contenu

Pb UPLOAD avec formulaire PHP


Sujets conseillés

Posté

Bonjour,

j'ai créer un annuaire sur mon site que j'interroge par php sur ma base de données... la aucun pb ça marche super.

Sur cet annuaire.php j'ai insérer dans la code echo ou s'affiche le nom ($n) :

<a href=form.php?name=$n>$n</a>

Dans form.php, on retrouve la variable : $choix = $_GET['nom'];

// Exécution de la requête SQL et mise en page

$requete1 = "SELECT $n,$p,$a1,$a2,$c,$v,$tf,$tp,$b,$e FROM annuaire WHERE nom = '$choix'";

.....

et dans echo :

<tr>

<td valign=top width=200>Nom - Prénom :</td>

<td height=30 valign=top width=350>$n $p</td>

</tr>

<tr>

<td valign=top>Naissance (jj/mm/aaaa) :</td>

<td><form method=post action=post.php>

<input name='birth' type=text size=10 maxlength=10 value='$b'>

</form></td>

</tr>

.....

Grace à ça, quand le membre clic sur son nom, ces données s'affichent dans le formulaire afin de les modifier.

Le problème maintenant vient de post.php :

// Récupération des données du formulaire

$b = $_POST['birth'];

$a1 = $_POST['adresse1'];

$a2 = $_POST['adresse2'];

$c = $_POST['cp'];

$v = $_POST['ville'];

$tf = $_POST['telfix'];

$tp = $_POST['telport'];

$e = $_POST['email'];

// Connexion à la base de donnée

ça marche

// Création de la requête SQL

$requete = "UPDATE annuaire SET telfix='$tf' WHERE nom='AUBERT";

mysql_query($requete);

echo "<html>

<body>

<div align=center>Vos coordonnées ont été mises à jour !</div>

</body>

</html>";

Ici dans la requête SQL j'ai simplifié au max pour que ça marche en spécifiant même le nom de la personne.

Mais quand je clic sur Envoyer, il se connecte bien à la base de donnée mais remplace le champ par un vide obligatoirement (même s'il y avait quelque chose avant)... la je comprends pas !???

Détail : si par contre je remplace $tf par le numéro de tel et bien ça marche super.

Je pense donc qu'il s'agit d'un pb de variable définit dans la partie echo du formulaire.

Merci pour votre aide et n'hésitez pas à demander des renseignements complémentaires

Posté

et bien rien c'est la le problème....

J'ai modifié un peu le script pour qu'il prenne en compte le nom grâce à GET. La par contre ça marche quand je fait echo $choix.

En fait je me demande s'il prend bien en compte les variables que j'ai fixé qui sont dans echo du formulaire....

$choix = $_GET['name'];

$b = $_POST['birth'];

$a1 = $_POST['adresse1'];

$a2 = $_POST['adresse2'];

$c = $_POST['cp'];

$v = $_POST['ville'];

$tf = $_POST['telfix'];

$tp = $_POST['telport'];

$e = $_POST['email'];

// Connexion à la base de donnée

require("connexion.php");

// Création de la requête SQL

$requete = "UPDATE annuaire SET telfix='$tf' WHERE nom='$choix'";

mysql_query($requete);

une petite idée pour qu'ils prennent en compte ces variables... !?

Posté

Hum...

Ton formulaire n'a pas l'air juste, c'est là ton erreur je crois ;)

<form method=post action=post.php>
<input name='birth' type=text size=10 maxlength=10 value='$b'>
</form>

Si tu fais plusieurs formulaires à chaque fois avec un seul truc demandé, il ne prendra que celui avec le bouton submit, donc tu n'auras aucune valeur ! Fais un seul formulaire avec tout dedans... Et n'utilise pas de tableaux :evil:, le CSS est ton ami..

Posté

Tu simplifies pas la mise en page, tu fais un truc faux, avec plusieurs formulaies aucune donnée n'est envoyée sur la page d'après ;)

Posté

merci sarc !

après deux jours de galère, je peux enfin crier victoire !! soulagement...

merci encore !

me reste plus que la mise en page, mais c'est une broutille... :D

Posté

juste une dernière question : comment je faits pour que le message de echo dans post.php s'affiche sur la même page que le formulaire, ie en remplacement de celle-ci.

Merci

Posté

Tu fais ton traitement au dessus de ton formulaire.

Par exemple, ce que je fais souvent, je rajoute un champ de type 'HIDDEN' ayant pour nom 'action' et valeur 'ajout' par exemple.

En haut de mon code, après mes includes, je fais :

if($action=="ajout")

{

//Mon traitement ici

}

Dans mon traitement, j'implémente une variable "erreur" ($erreur tout simplement) comme ceci :

s'il y a erreur sur le login alors tu fais ca : $erreur = $erreur . "_login"

Ensuite, je n'ai plus qu'à faire un test du style :

Si la chaine 'login' ce trouve dans ma variable erreur, alors tu affiches un message d'erreur pour le login...

Et pareil pour tous les autres champs :)

En epsérant avoir été assez clair ^_^

Portekoi

Posté

eu... ouai....

En fait vu la modif que j'ai fait avec les tables pour que la fonction UPDATE fonctionne, j'ai changé un peu la structure de la partie annuaire de mon site :

Deux pages principales :

-annuaire.php qui renvoie à

-annuaire_mod.php qui include formulaire.php, lui-même post.php

Ce que je souhaiterais c'est quand le membre clic sur le bouton envoyer, il retourne sur la page annuaire.php, en fait un redirect vers une page que je dois metre dans le fichier post.php je suppose à la place de echo "Vos données ont été enregistrées".

Moi c'est ce que je pense vu le changement, mais s'il faut mettre une variable IF dans un des fichiers, je veux bien, mais alors dans lequel !?

merci d'avance

Posté

j'ai essayé la fonction header mais il me marque un message d'erreur...

ET puis il faut le mettre dans quel fichier parmis ces trois :

annuaire_mod.php qui include formulaire.php qui renvoie à post.php !?

Posté

pour ton cas, cela ne peut pas fonctionner car tu affiches des données.

Pour que le header fonctionne, tu ne dois rien afficher avant.

++

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...