
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 ?
|

Membre
|
Sa serait beaucoup plus simple et sécurisé avec un ID , tu ne peut pas le modifier ?
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !

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") ;
}
?>
|

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.
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !

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") ;
}
}
|

Membre
|
Impeccable, cela fonctionne correctement
Je vous remercie de m'avoir aidé
Y a t-il encore la faille de sécurité ?
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !

Membre
|
Je t'en pris =) !
Non j'ai supprimé la faille !
|