Modifier formulaire / php débutant

Modifier formulaire / php débutant - PHP - Programmation

Marsh Posté le 10-03-2011 à 14:25:27    

Bonjour,
 
Pour un formulaire de contact, j'ai crée un fichier modification.php que voici:
 
<HTML><HEAD>
<TITLE>modification.php</TITLE>
</HEAD>
<BODY>
 
<?php
 
$connexion = mysql_connect("localhost", "dbcolas", "xxxxxxx" );
 
if (!$connexion)
{
echo "Connexion impossible \n";
exit;
}
 
if (!mysql_select_db("suivi" ))
{
echo "Connexion base impossible\n";
exit;
}  
 
$Id = $_GET['Id'];
 
$requete="SELECT * FROM contact WHERE Id = '$Id'";
$resultat= mysql_query($requete);
while ($row=mysql_fetch_array($resultat))  
{
$Nom = ($row["Nom"]);
$Prenom =($row["Prenom"]);
}
 
?>
 
Name:<INPUT TYPE=TEXT NAME='Nom' VALUE="<?php echo $Nom; ?>" ><BR>
First name:<INPUT TYPE=TEXT NAME='Prenom' VALUE="<?php echo $Prenom; ?>" >
<INPUT TYPE=SUBMIT VALUE='add' NAME='Ajouter' >
// jusque là çà marche
<?
 
if( isset( $_GET['Ajouter'] ) )  
{
$Nom = $_GET['Nom'];  
$Prenom = $_GET['Prenom'];
$req = "UPDATE contact SET Nom='".$Nom."', Prenom='".$Prenom."' WHERE Id='$Id'";
$ok = mysql_query($req) or die ("Pas impossible" );  
// là il y a un soucis
}
 
echo '<a href="contact.php">'; ?>Enregistrer</a></td> //je repars sur ma page contact qui m'affiche la même chose qu'avant
 
</BODY></HTML>
 
 
Ce programme me retrouve bien les éléments déjà saisis dans les champs (premièer partie du code) mais ne me les modifie pas quand je clique sur Ajouter...
 
J'avoue ne pas comprendre pourquoi...  

Reply

Marsh Posté le 10-03-2011 à 14:25:27   

Reply

Marsh Posté le 12-03-2011 à 22:55:17    

met sa a la place pour voir
 
$req ="UPDATE contact SET Nom='".$Nom."', Prenom='".$Prenom."' WHERE Id=$Id";
 
si sa ne fonctionne pas met un : or die(mysql_error()); pour savor l'erreur si il y en a une
 

Reply

Marsh Posté le 13-03-2011 à 10:33:42    

@dupec: Merci de ne pas suivre le conseil de keusty78, qui malgré ce qu'on s'efforce de lui expliquer, continue à ne pas avoir compris que PHP a légèrement évolué pendant ces 10-15 dernières années. En effet, bien que son code puisse fonctionner, il laisse la porte ouverte à des attaques qui risquent de compromettre son site.

 

Je te conseille donc de passer par une requête préparée ( http://www.php.net/manual/fr/mysqli.prepare.php ):

 
Code :
  1. if ($stmt = mysqli_prepare($link, "UPDATE contact SET Nom=?, Prenom=? WHERE Id=?" )) {
  2.  
  3.    mysqli_stmt_bind_param($stmt, "ssi", $Nom, $Prenom, $Id);
  4.    mysqli_stmt_execute($stmt);
  5.    mysqli_stmt_close($stmt);
  6. }
 

J'ai pas PHP sous la main donc pas testé mais ça doit jouer dans ce snes là

Message cité 1 fois
Message édité par esox_ch le 13-03-2011 à 10:34:10

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 13-03-2011 à 13:46:43    

esox_ch a écrit :

@dupec: Merci de ne pas suivre le conseil de keusty78, qui malgré ce qu'on s'efforce de lui expliquer, continue à ne pas avoir compris que PHP a légèrement évolué pendant ces 10-15 dernières années. En effet, bien que son code puisse fonctionner, il laisse la porte ouverte à des attaques qui risquent de compromettre son site.
 
Je te conseille donc de passer par une requête préparée ( http://www.php.net/manual/fr/mysqli.prepare.php ):
 

Code :
  1. if ($stmt = mysqli_prepare($link, "UPDATE contact SET Nom=?, Prenom=? WHERE Id=?" )) {
  2.  
  3.    mysqli_stmt_bind_param($stmt, "ssi", $Nom, $Prenom, $Id);
  4.    mysqli_stmt_execute($stmt);
  5.    mysqli_stmt_close($stmt);
  6. }


 
J'ai pas PHP sous la main donc pas testé mais ça doit jouer dans ce snes là


 
mdr esox_ch de quel droit dit tu de ne pas suivre mes conseil? je n'es fait que reprendre son code sans rien toucher mis a par les apostrophe de $id maintenant dupec n'as pas demander comment proteger mon site il a simplement demander pk sa fonctionnai pas? si il aurai fallu que je protege son site contre des injections sql je n'aurai pas modiffier just les apostrof je lui aurai caremment fourni tou le code et c'est pas avec la simple requette preparé que tu lui fourni qu'il es proteger d'une injection mdrrr  
 
 
ps: esox_ch je sai pa ce que t'a contre moi mai si il y a un probleme fai le moi savoir.

Reply

Marsh Posté le 13-03-2011 à 14:25:40    

Le conseil que tu as donné était mauvais il l'a expliqué. Après si tu ne veux pas comprendre, c'est toi qui voit.


---------------
Blablaté par Harko
Reply

Marsh Posté le 13-03-2011 à 14:34:16    

@keusty78 : Je n'ai aucun soucis avec toi, vu que je ne te connais pas. Par contre j'ai des soucis avec nombre des conseils que tu dispenses. Je me permet donc de signaler à l'auteur du topic qu'il veut mieux ne pas suivre un mauvais conseil, et plutôt faire ça comme il faut.
De plus, comment veux-tu qu'un type qui n'arrive pas à écrire une clause UPDATE tout seul sache ce qu'est une SQL Injection? Il essaie de se former => C'est tout à son honneur. Et c'est de ton/notre devoir en tant que personne plus experte de lui signaler les éventuelles erreurs.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 13-03-2011 à 17:43:26    

esox_ch a écrit :

@keusty78 : Je n'ai aucun soucis avec toi, vu que je ne te connais pas. Par contre j'ai des soucis avec nombre des conseils que tu dispenses. Je me permet donc de signaler à l'auteur du topic qu'il veut mieux ne pas suivre un mauvais conseil, et plutôt faire ça comme il faut.
De plus, comment veux-tu qu'un type qui n'arrive pas à écrire une clause UPDATE tout seul sache ce qu'est une SQL Injection? Il essaie de se former => C'est tout à son honneur. Et c'est de ton/notre devoir en tant que personne plus experte de lui signaler les éventuelles erreurs.


 
je respect ce que tu dis sans aucun probleme mai ya une facon de dir les choses, et sa va de soi de proteger son code faut pas etre nee de la derniere pluis pour savoir que les injections existe  
 
j'ai juste fais en sorte que son code fonctionne le reste c'est a lui de voir comment il programme et si il a un autre souci il stipulera dans un autre sujet  
 
et je ne vois pas pourquois tu dis que je donne de mauvais conseil a tous le monde ils son bons les membres de ce forum!!!!

Reply

Marsh Posté le 13-03-2011 à 18:09:47    

- Non ce ne va pas de soit qu'il faut protéger son code. Suffit de voir le pourcentage de codes qui passent par ce forum et qui ressemblent à des passoires.  
- Ce que je m'efforce de te faire comprendre c'est qu'il y a plein de gens qui ne savent PAS qu'il faut protéger le code. Du coup, il vont pas venir demander comment le protéger.
- J'ai pas dit que tu donnes de mauvais conseils à tout le monde. Mais là ça fait 2 topics sur 3 dans lesquels on se croise ou tu donnes une solution dont t'es super fier parce qu'elle "marche" alors qu'il y a moyen de faire mieux sans pour autant faire plus compliqué. Et qu'après en plus te te vexes quand on te le fait remarquer


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 13-03-2011 à 18:42:11    

je ne me vex pas dutout je dis juste que je donne des solution a la hauteur des problemes que les membre poste il vont pas apprendre comme sa par exemple ce membre a un probleme avec un update c'est que tu sai deja qu'il debute dans la programation pourkoi lui rajouter des requette preparer alor qu'avec une requette simple il a du mal tous se qu'on va faire c'est tout embrouiller dans sa tete au final il ne sera ni faire une requette simple ni une requette preparer mai franchement entre nous tu pouvais simplement me faire un ptit rapel en me disant n'oubli pas de proteger tes code pour les membre que tu aide que de dir de ne pas suivre mes conseil sa fait trop le mec qui sai tou et moi riendutou alor que je sui partit d'un bon sentiment a la base

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed