Modifier une BDD à partir d'un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Modifier une BDD à partir d'un formulaire

par Romaniak » 16 juin 2009, 17:49

Ok.
Je reste convaincu que lui faire part de ta remarque aurait suffit.

Quoique selon moi, se faire recaler par MySQL en essayant de passer une chaine non protégée qui contient un apostrophe me semble aussi formateur que de bouffer du tuto...

par dunbar » 16 juin 2009, 17:21

Je lui montre le principe...A lui d'être malin ensuite...
J'ai simplement voulu dire que je n'aime pas les mauvais principe, j'aime bien et même si je me suis déjà fait reprendre, montrer ou donner des bout de code, mais dans la mesure du possible je ne donne jamais des mauvaise pistes et pour moi ceci est une mauvaise piste
$texte1 = $_POST['texte1']; 
Sans lui dire qu'il faut protéger ces données avant de les envoyer à MySQL
au lieu par exemple de
$texte1 = mysql_real_escape_string($_POST['texte1']); 
Parce que à tout les coups il va faire un copier coler sans jamais corriger l'erreur.
Et loin de moi de vouloir faire la moral ou le malin.
Mais bon cela n'engage que moi :)

par Romaniak » 16 juin 2009, 17:13

Je lui montre le principe...A lui d'être malin ensuite...

par Wolfgang » 16 juin 2009, 17:00

D'où le principe qu'il cherche par lui même des tutoriaux à ce sujet. :P

par dunbar » 16 juin 2009, 16:49

Formulaire :

<form action="#" method="POST">
<input type="text" name="texte1" />
<input type="text" name="texte2" />

<input type="hidden" name="validation" value="ok" />
<input type="submit" name="valider">
</form>


// Récupération
<?php
if($_POST['validation'] == 'ok') {
$texte1 = $_POST['texte1'];
$texte2 = $_POST['texte2'];
}

//Ajout dans la base de données :

Mysql_Query("INSERT INTO Matable SET Texte1 = '$texte1', Texte2 = '$texte2'");

?>
Peut-être que l'idée d'envoyer directement les valeurs de POST dans la base sans aucune protection n'est probablement pas une bonne idée

par Romaniak » 16 juin 2009, 16:14

Formulaire :

<form action="#" method="POST">
<input type="text" name="texte1" />
<input type="text" name="texte2" />

<input type="hidden" name="validation" value="ok" />
<input type="submit" name="valider">
</form>


// Récupération
<?php
if($_POST['validation'] == 'ok') {
$texte1 = $_POST['texte1'];
$texte2 = $_POST['texte2'];
}

//Ajout dans la base de données :

Mysql_Query("INSERT INTO Matable SET Texte1 = '$texte1', Texte2 = '$texte2'");

?>

par Nagol » 16 juin 2009, 14:58

Merci pour votre aide et vos explications. :wink:
@Wolfgang: Je suis d'accord avec toi mais en fait je suis en stage et je n'ai pas vraiment le temps de faire des tutos, quand on me dit quelque chose je dois le faire au plus vite...

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]
c'est que tu n'es pas en stage avec des gens corrects, le stage n'a pas pour but d'etre utile qu'à l'entreprise mais d'etre un échange de conaissance, servant autant à l'un qu'à l'autre, malheureusement beaucoup d'entreprises confondent stagiaires et salariés à bas coûts, m'enfin, ceux la finissent juste avec des rapports sur leur dos, et des boulots incohérents, le plus grave en soi étant que toi tu perdes du temps et qu'on te laisse pas apprendre.

aussi, le fait que tu sois pressée, ne nous intéresse pas en soi, on est pas payé pour aider les gens, on le fait parcequ'on aime aider, et forcément les gens qui n'ont pas conscience de l'effort qu'on fait, on ne va pas les aider aussi bien.

par Lolu » 16 juin 2009, 14:21

Merci pour votre aide et vos explications. :wink:
@Wolfgang: Je suis d'accord avec toi mais en fait je suis en stage et je n'ai pas vraiment le temps de faire des tutos, quand on me dit quelque chose je dois le faire au plus vite...

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par Nagol » 16 juin 2009, 14:01

le principe de php c'est d'etre capable de produire du texte (typiquement du html, voire du javascript ou du css) et d'etre connectable à une source de donnée externe à php (le plus souvent et le plus classique: mysql)

php en soi ne peut pas intéragir côté client il n'intervient que côté serveur cad:

browser request url -> serveur web recoit requete -> serveur web utilise php pour produire du html -> html reçu par le browser

une fois le html reçu on est côté client, cad que le php ne fait plus rien, dans le cas d'un formulaire, le formulaire produit en html, une fois valider soumet une url et rentre dans le schéma plus haut, php peut recevoir les informations et les utiliser pour intéragir avec autre chose, puis renvoyer du html (exemple un message de succès, d'échec, ce que tu veux)

c'est important de bien comprendre que php n'intervient que de façon ponctuelle en réalité, contrairement à l'utilisation qu'on fait de beaucoup d'autre langages, ou le code une fois lancé boucle en attente de données pour avoir une réelle intéractivitée avec le client.

avec un peu de lecture, et de recherche sur php.net qui est je le rappelle non seulement la doc officielle mais une source essentielle de code utilisateur.

par dunbar » 16 juin 2009, 12:35

Salut,
Un truc du genre.
echo '<form action="fichier de traitement.php" method="post"">';
ton formulaire ici
ton bt submit ici
echo '</form>';
[/php]

par Wolfgang » 16 juin 2009, 11:46

Salut, je pense qu'il faudrait que tu cherches des tutoriaux concernant le PhP, dieu sait s'il y en a sur la toile du web, car je pense que l'intérêt de ce forum est d'aider les gens qui ont des difficultés avec un code en particulier, pas de fournir des scripts tous fais. :wink:

Modifier une BDD à partir d'un formulaire

par Lolu » 16 juin 2009, 10:46

Bonjour,

tout est dans le titre.
J'ai donc un formulaire avec des zones de saisie. Dans ces zones de saisies (modifiables) figurent ce qu'il y a en base de données.
En dessous de ce formulaire un bouton submit.
Je voudrais qu'en cliquant sur ce bouton, si les zones de saisies ont été modifiées, les données de ma BDD soient mises à jour.

Donc je pense à faire des updates
Mais j'utilise des templates pour mon affichage. Donc j'ai mon bouton valider sur ma page de templates, et mon code php sur une autre page.

Je connais mal PHP je suis habitué à coder en pascal avec Delphi...
Comment je fais pour "mettre du code derrière mon bouton valider" ? :?

Merci d'avance pour votre aide :wink: