grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 569 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 15 h 21 m 01 s |
|
|
Reprise du message précédent :sinon pour mysql, trouve un tuto basique pour les requetes parce que tu as ecrit franchement n'importe quoi sur le post du dessus :
[cite]
Si le php UPDATE fait appel à la variable $pseudo qui fait appel à <?php echo $donnees['pseudo']; ?> qui fait appel à mysql_query
Alors $pseudo égale mysql
Donc on à beau changer à l'ecran la variable $pseudo UPDATE enregistrera toujour les données d'origine de mysql.
[/cite]
quel variable pseudo ?
mysql ne fait appel a rien 
$pseudo == mysql ???????????????????????????????????? mysql est une base de donnees, de quoi parles tu en disant mysql ?
|
|
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 12 octobre 2006 - 15 h 50 m 20 s |
|
|
Pour le melange entre nom/prenom et pseudo/message je suis désolé.
En fait j'ai d'abord travaillé sur un tuto de minichat. Attention ! que j'ai réussi à faire marcher sur ma base.
En suite j'ai décliné le code pour mon problème de fiche clients.
C'est là que j'ai oublié de remplacer pseudo par "nom" et message par "prenom".
Donc je t'explique ce que je veux faire.
Au moi de Juillet, j'ai fait un jeu concours sur mon site, avec un formulaire de débutant sans script verification. (maintenant je sais le faire, mes formulaires on des scripts, mais c'est trop tard)
Bref, 50 personnes on gagnées des bracelets néoprènes, et toutes non pas données leur s adresses.
Je veux donc envoyer ce code par 'ismai' à chaque client, afin qu'il puisse vérifier ses coordonnées et les modfier si besoin est.
|
|
| |
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 569 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 octobre 2006 - 16 h 05 m 45 s |
|
|
bon ebn voila fallait commencer par la 
donc oublie !!!
tu ne vas rien envoyer du tout... au pire un lien vers ta page qui va etre sur le web. etant donne qu'ils vont devoir mettre a jour la base, tu vas pas leur envoyer la connexion a la base en clair !!! c'est totalement suicidaire  autant leur faire un bouton "effacer tout"
donc tu vas leur envoyer un mail en mettant ton texte d'explication, puis ensuite tu vas ajouter une url, c'est tout, un truc genre :
http://www.monsite.com/coordonnees.php?id=XXX
ou XXX est l'id du type dans ta base
comme ca tu l'as ta valeur get et c'est regle.
++
|
|
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 12 octobre 2006 - 18 h 14 m 48 s |
|
|
Le code de 'coordonnees.php' a l'air de marcher.
1. <?php
2.
3. ....
4.
5. // On utilise la requéte suivante pour récupérer l'entrée nom et prenoms :
6. $reponse = mysql_query("SELECT id, nom, prenom FROM xxxxxxx WHERE id=$_GET[id]") or die(mysql_error());
7.
8. // Puis on affiche tous les résultats :
9. $donnees = mysql_fetch_array($reponse);
10.
11. // On se déconnecte de MySQL
12. mysql_close();
13.
14. ?>
15.
16. <form action="../base/update.php" method="post">
17.
18. <p>
19. id : <input type="text" name="id" value="<?php echo $donnees[id]; ?>" /><br />
20. nom : <input type="text" name="nom" value="<?php echo $donnees['nom']; ?>" /><br />
21. prenom : <input type="text" name="prenom" value="<?php echo $donnees['prenom']; ?>"/><br />
22. <input type="submit" value="Envoyer" />
23. </p>
24.
25. </form>
26.
pour le code 'update.php' il me donne l'erreur suivante :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''xxxxxxx' SET 'id'='1', 'nom'='KELD', 'prenom'='Samant' WHERE 'id'='1'' at line 1
1.
2. ....
3.
4. <?php
5.
6. // On utilise la fonction PHP htmlentities pour ?viter d'enregistrer du code HTML dans la table
7. $id = htmlentities ($_POST['id']);
8. $mom = htmlentities ($_POST['nom']);
9. $prenom = htmlentities ($_POST['prenom']);
10.
11. // Ensuite on enregistre le message
12. mysql_query("UPDATE 'fichier_clients' SET 'id'='$id', 'nom'='$nom', 'prenom'='$prenom' WHERE 'id'='$id'") or die(mysql_error());
13.
14. // On se d?connecte de MySQL
15. mysql_close();
16.
17. ?>
|
|
| |
|
Woofy
Pour les bons tuyaux me demander
Messages : 26 244 Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
|
|
Posté le 12 octobre 2006 - 18 h 28 m 02 s |
|
|
met ça a la place :
1. UPDATE `fichier_clients` SET `nom`='$nom', `prenom`='$prenom' WHERE `id`='$id'
Tu n'a pas besoin de faire un SET sur l'id puisqu'il ne change pas (pas besoin de mettre tout les champs, seulement ceux qui changent), et il y a une réelle différence entre " (doubles quotes), ' (simple quote) et `(apostrophe inversée ; tu la fait en faisant AltGr + è).
|
|
| |
Totalement inutile, donc completement indispensable 
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 12 octobre 2006 - 19 h 31 m 59 s |
|
|
Ca marche
En fait je suis un peu aveugle et le forum est écrit en tout petit.
Je n'avais pas vue la différence
Merci, merci
|
|
| |
|
Woofy
Pour les bons tuyaux me demander
Messages : 26 244 Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
|
|
Posté le 12 octobre 2006 - 21 h 05 m 08 s |
|
|
en gros, ça marche comme ça :
" (doubles quotes) pour les requêtes SQL au complet
' (simple quote) pour les valeurs
`(apostrophe inversée) pour les noms de champ et de table
|
|
| |
Totalement inutile, donc completement indispensable 
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 569 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 13 octobre 2006 - 11 h 30 m 30 s |
|
|
sachant que les quotes inversees ne sont pas obligatoires sur les noms de champs et que les simples quotes ne doivent pas etre mises pour des entiers ! je le repete mais vous avez l'air de faire la sourde oreille... en effet, si simple quote, alors expression alphanumerique, donc plus gourmande qu'une numerique de base etant donne que l'id est forcement un integer, c'est un id et un id est toujoursun entier
|
|
| |
|
Woofy
Pour les bons tuyaux me demander
Messages : 26 244 Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
|
|
Posté le 13 octobre 2006 - 12 h 15 m 00 s |
|
|
Ok Ok ^^. Je me coucherais moins con ce soir. Pis les quotes inversées c'est plus propre et plus lisible !
De toute façon, l'id je le remplis jamais !
|
|
| |
Totalement inutile, donc completement indispensable 
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 569 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 13 octobre 2006 - 12 h 58 m 37 s |
|
|
en fait c erel qui m'avait file le tuyau il y a looooongtemps... pour les quotes inversees, ouais c'est vrai
|
|
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
|
| |
|
Woofy
Pour les bons tuyaux me demander
Messages : 26 244 Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
|
|
Posté le 13 octobre 2006 - 16 h 51 m 34 s |
|
|
|
|
|
| |
Totalement inutile, donc completement indispensable 
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 13 octobre 2006 - 18 h 15 m 16 s |
|
|
Donc, un petit futé pourrait me foutre le bordel dans la base.
Je veux bien remplacer id par un N° client du genre "551885" ou "FRT8899".
Mais n'y à t'il pas une aute solution pour éviter cela.
|
|
| |
|
Woofy
Pour les bons tuyaux me demander
Messages : 26 244 Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
|
|
Posté le 13 octobre 2006 - 20 h 06 m 14 s |
|
|
Tu peux par exemple passer l'id, et un autre parametre qui sera passe a une fonction de hashage, par exemple le nom.
Tu fait nom=md5(nom) et dans ce cas, il va te sortir une valeur illisible et indecryptable qui va te servir en gros de mot de passe. Surtout tu ne l'enregistre pas dans la base.
Quand tu appel la page, par exemple coordonnee.php?id=1&pass=xbs657df4s65d7fa646f687, il te suffit de comparer le pass au hashage du nom (md5(nom) je le rappel) et s'il sont identique, c'est le meme nom donc c'est bon. S'ils sont different, tu met un message style pas le droit d'acceder a cette page.
Je suis pas tres clair, mais as-tu compris l'idee ?
|
|
| |
Totalement inutile, donc completement indispensable 
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 569 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 13 octobre 2006 - 20 h 39 m 00 s |
|
|
au pire, crypte rien ,mets une chaine de ton choix dans pass et ca ira, tu verifieras que c'est le meme que celui qui estdans la table et pis c ok. pas la peine de crypter, du moment que tu n'utilises pas un generateur "logique" et que tu tapes n'importe quoi ca ira.
|
|
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 14 octobre 2006 - 11 h 51 m 30 s |
|
|
Le 12 octobre 2006 - 18 h 28, Woofy a écrit :
met ça a la place :
1. UPDATE `fichier_clients` SET `nom`='$nom', `prenom`='$prenom' WHERE `id`='$id'
Tu n'a pas besoin de faire un SET sur l'id puisqu'il ne change pas (pas besoin de mettre tout les champs, seulement ceux qui changent), et il y a une réelle différence entre " (doubles quotes), ' (simple quote) et `(apostrophe inversée ; tu la fait en faisant AltGr + è).
|
Je suis d''accord avec toi, mais c'est le seul moyen que j'ai trouvé pour récupérer id de la page coordonnées.php.
Explication : Si je supprime la ligne 19 da la page coordonnées.php et le SET ‘id‘ ligne 12 de la page update.php, je n'arrive plus à récupérer la variable $id ligne 12 de la page update.php.
Donc Mysql ne sait plus à quel id il doit UPDATE les nouvellse données
|
|
| |
|
Smartwave
Messages : 75 Inscrit le 20/09/06
Non connecté
|
|
Posté le 14 octobre 2006 - 12 h 34 m 24 s |
|
|
Que pensez- vous de imput type "hidden" en ligne 19 (à la place de texte)
|
|
| |
|