Créer un compte
Connexion

Modifier données dans MySQL

Pour créer et répondre aux sujets, vous devez être connecté.
Ce sujet est résolu.
Pages: 1
Auteur Message
toupoutou
26/09/2011 à 18:14:44
toupoutou
Membre
Bonjour à tous et à toutes, voilà j'ai un problème sur un code PHP dont la fonction doit changer les informations du profil mais cela change toutes les données dans MySQL  :(
Sachant que je n'utilise pas de ID dans ma base de donnée.

Voici mon code source du formulaire :

<form name="insertion" action="insertion2.php" method="POST">
  <table border="0" align="center" cellspacing="2" cellpadding="2">
    <tr align="center">
      <td>nom</td>
      <td><input type="text" name="nom" value="<?php echo($result->nom) ;?>"></td>
    </tr>
    <tr align="center">
      <td>prenom</td>
      <td><input type="text" name="prenom" value="<?php echo($result->prenom) ;?>"></td>
    </tr>
    <tr align="center">
      <td>adresse</td>
      <td><input type="text" name="adresse" value="<?php echo($result->adresse) ;?>"></td>
    </tr>
    <tr align="center">
      <td>code postal</td>
      <td><input type="text" name="codepostal" value="<?php echo($result->codepostal) ;?>"></td>
    </tr>
    <tr align="center">
      <td>numéro de téléphone</td>
      <td><input type="text" name="telephone" value="<?php echo($result->telephone) ;?>"></td>
    </tr>
    <tr align="center">
      <td colspan="2"><input type="submit" value="modifier"></td>
    </tr>
  </table>
</form>
 

Et voici le code source de la page insertion2.php :

<?php
session_start();

if($_SESSION['email'])

  //connection au serveur
  $cnx = mysql_connect( "localhost", "...", "..." ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "..." ) ;
 
  //récupération des valeurs des champs:
  //nom:
  $nom     = $_POST["nom"] ;
  //prenom:
  $prenom = $_POST["prenom"] ;
  //adresse:
  $adresse = $_POST["adresse"] ;
  //code postal:
  $cp        = $_POST["codePostal"] ;
  //numéro de téléphone:
  $tel        = $_POST["telephone"] ;
 
  //récupération de l'identifiant de la personne:
  $email         = $_POST["email"] ;
 
  //création de la requête SQL:
  $sql = "UPDATE table_utilisateurs
            SET nom         = '$nom',
                  prenom     = '$prenom',
                  adresse    = '$adresse',
                  codepostal = '$codepostal',
                  telephone = '$telephone'
                 " ;
         
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
 
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
?>
 

J'ai aussi un doute sur : (sur l'emplacement dans le code, vu que c'est une page protégée).
session_start();
if($_SESSION['email'])

Le code source dont j'ai mis modifie toutes les données, comment faire pour qu'il prend uniquement la ligne du profil du membre et non toutes les lignes ?

Lolo44
27/09/2011 à 12:00:22
Lolo44
Membre
Sa serait beaucoup plus simple et sécurisé avec un ID , tu ne peut pas le modifier ?

Aglzime
27/09/2011 à 16:18:53
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
C'est tout a fait normal, Essaye ceci:
<?php
session_start();

if($_SESSION['email'])

  //connection au serveur
  $cnx = mysql_connect( "localhost", "...", "..." ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "..." ) ;
 
  //récupération des valeurs des champs:
  //nom:
  $nom     = $_POST["nom"] ;
  //prenom:
  $prenom = $_POST["prenom"] ;
  //adresse:
  $adresse = $_POST["adresse"] ;
  //code postal:
  $cp        = $_POST["codePostal"] ;
  //numéro de téléphone:
  $tel        = $_POST["telephone"] ;
 
  //récupération de l'identifiant de la personne:
  $email         = $_POST["email"] ;
 
  //création de la requête SQL:
  $sql = "UPDATE table_utilisateurs
            SET nom         = '$nom',
                  prenom     = '$prenom',
                  adresse    = '$adresse',
                  codepostal = '$codepostal',
                  telephone = '$telephone'
                  Where email='".$_SESSION['email']"' " ;
         
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
 
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
?>


toupoutou
27/09/2011 à 22:28:02
toupoutou
Membre
Bonjour :)
Cela me donne une page blanche dans la page insertion2.php.
Comment ça se fait ?

Lolo44: si je modifie en ID, je devrais refaire toutes les pages.

Aglzime
28/09/2011 à 18:52:07
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Re bonjour,
désolé j'ai oublié un point de mon ancien message. Et visuellement, ta page présente une faille de sécurité, elle n'est pas protégé, essaye ce code:


session_start();
// on vérifie toujours qu'il s'agit d'un membre qui est connecté
if (!isset($_SESSION['email'])) {
        // si le membre n'est pas connecté, on le redirige vers l'accueil
        header ('Location: /index.php');
        exit();
}
else
{
//connection au serveur
  $cnx = mysql_connect( "localhost", "...", "..." ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "..." ) ;
 
  //récupération des valeurs des champs:
  //nom:
  $nom     = $_POST["nom"] ;
  //prenom:
  $prenom = $_POST["prenom"] ;
  //adresse:
  $adresse = $_POST["adresse"] ;
  //code postal:
  $cp        = $_POST["codePostal"] ;
  //numéro de téléphone:
  $tel        = $_POST["telephone"] ;
 
  //récupération de l'identifiant de la personne:
  $email         = $_POST["email"] ;
 
  //création de la requête SQL:
  $sql = "UPDATE table_utilisateurs
            SET nom = '$nom',
                  prenom = '$prenom',
                  adresse = '$adresse',
                  codepostal = '$codepostal',
                  telephone = '$telephone'
                  Where email='".$_SESSION['email']."' " ;
         
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
 
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
}

 


toupoutou
28/09/2011 à 19:24:27
toupoutou
Membre
Impeccable, cela fonctionne correctement :)
Je vous remercie de m'avoir aidé :)
Y a t-il encore la faille de sécurité ?

Aglzime
05/10/2011 à 17:28:37
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Je t'en pris =) !
Non j'ai supprimé la faille !

Pages: 1