IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

ajout de champs SQL


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut ajout de champs SQL
    Bonjour, voila j'ai une page pour les membres où ils peuvent modifier leur information (mot de passe, e-mail etc...)

    A la base il n'y avait que l'e-mail et le mot de passe de modifiable mais j'ai rajouté la ville, adresse et code postal. J'ai créer les champs dans le même tableau sur mon mysql.
    Seul problème c'est que ce que j'ai rajouter ne veulent pas se modifier.

    Voila le code de la page de modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    <?php
    session_start();
    include_once 'recup_config.php';	//On récupère la configuration du script
    $titre_page = MOD_PROFIL_TITRE;	//Définition du titre de la page
    include_once 'verifications.php';	//On inclue les vérifications
     
    if( isset($_POST['envoi']) )	{
     
    require_once 'fonctions/formulaires.php';
     
    $_POST = form_secu($_POST, 'addslashes');
    $_POST = form_secu($_POST, 'trim');
     
    if( strlen($_POST['email']) < 1)
    	$erreur .=MOD_PROFIL_PAS_EMAIL."<br />";
    if( strlen($_POST['adresse']) < 1)
    	$erreur .=MOD_PROFIL_PAS_EMAIL."<br />";
    if( strlen($_POST['ville']) < 1)
    	$erreur .=MOD_PROFIL_PAS_EMAIL."<br />";
    if( strlen($_POST['codepostal']) < 1)
    	$erreur .=MOD_PROFIL_PAS_EMAIL."<br />";
     
    	connexion();
     
    if( strlen($_POST['passe_enc']) > 1)
    {
    	if($_POST['nouv_passe'] != $_POST['nouv_passe2'])
    	$erreur .=MOD_PROFIL_MDPS_CORRES."<br />";
     
    	if( strlen($_POST['nouv_passe']) < 5)
    	$erreur .=MOD_PROFIL_MDP_PETIT."<br />";
     
    	$_POST['passe_enc'] = md5($_POST['passe_enc']);	//Encodage en md5
     
    	$reponse_passe=mysql_query("SELECT passe FROM ". PREFIX ."membres WHERE passe='". $_POST['passe_enc'] ."' AND identifiant='". $session ."'") or die ('Erreur, impossible de vérifier si l\'ancien mot de passe est correct.');	//verification si mdp valide
    	$count_passe=mysql_num_rows($reponse_passe);
    	if($count_passe === 0)
    	$erreur .=MOD_PROFIL_MDP_CORRES."<br />";
     
    	if( strlen($erreur) > 5 )
    	{
    		echo $erreur ,'<a href="#" onClick="history.back()">', GENERAL_RETOUR, '</a>';
    		include_once 'bas.php';
    		exit;
    	}
     
    	$_POST['nouv_passe'] = md5($_POST['nouv_passe']);
     
    	mysql_query("UPDATE ". PREFIX ."membres SET passe='". $_POST['nouv_passe'] ."' WHERE identifiant='". $session ."'") or die ('Erreur, modification du mot de passe impossible');
    	}
     
    	mysql_query("UPDATE ". PREFIX ."membres SET email='". $_POST['email'] ."' WHERE identifiant='". $session ."'") or die ('Erreur, modification de l\'e-mail impossible');
     
    	mysql_query("UPDATE ". PREFIX ."membres SET adresse='". $_POST['adresse'] ."' WHERE identifiant='". $session ."'") or die ('Erreur, modification de l\'adresse impossible');
     
    	mysql_query("UPDATE ". PREFIX ."membres SET ville='". $_POST['ville'] ."' WHERE identifiant='". $session ."'") or die ('Erreur, modification de la ville impossible');
     
    	mysql_query("UPDATE ". PREFIX ."membres SET codepostal='". $_POST['codepostal'] ."' WHERE identifiant='". $session ."'") or die ('Erreur, modification du code posal impossible');
     
    	echo'<div align="center">', MOD_PROFIL_FORM_OK, '<br />
    	<a href="espacemembre.php">', GENERAL_RETOUR, '</a></div>';
     
    	mysql_close();
    }
     
    else	{
    ?><div align="center"><h1><?php echo MOD_PROFIL_TITRE; ?></h1>
     
    <form action="" method="post">
    <table class="inscription">
    <tr>
    <td><label for="email"><?php echo MOD_PROFIL_EMAIL; ?></label></td>
    <td><input name="email" type="text" id="email" value="<?php echo $email ?>"></td>
    </tr>
    <tr>
    <td><label for="adresse">Adresse</label></td>
    <td><input name="adresse" type="text" id="adresse" value="<?php echo $adresse ?>"></td>
    </tr>
    <tr>
    <td><label for="ville">Ville</label></td>
    <td><input name="ville" type="text" id="ville" value="<?php echo $ville ?>"></td>
    </tr>
    <tr>
    <td><label for="codepostal">Code Postal</label></td>
    <td><input name="codepostal" type="text" id="codepostal" value="<?php echo $codepostal ?>"></td>
    </tr>
    <tr>
    <td><label for="mdp"><?php echo MOD_PROFIL_ANCIEN_PASS; ?></label></td>
    <td><input name="passe_enc" type="password" id="mdp"></td>
    </tr>
    <tr>
    <td><label for="mdp2"><?php echo MOD_PROFIL_NOUVEAU_MDP; ?></label></td>
    <td><input name="nouv_passe" type="password" id="mdp2"></td>
    </tr>
    <tr>
    <td><label for="mdp3"><?php echo MOD_PROFIL_CONFIRM_MDP; ?></label></td>
    <td><input name="nouv_passe2" type="password" id="mdp3"></td>
    </tr>
    <tr>
    <td colspan="2"><div align=center><input type="submit" name="envoi" value="<?php echo MOD_PROFIL_ENVOYER; ?>"></div></td>
    </tr>
    </table>
    </form><br />
    <a href="espacemembre.php"><?php echo GENERAL_RETOUR; ?></a></div>
    <?php
    	}
     
     
    ?>

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    bon cela restera mon avis, mais le script je le trouve brouillon pour pouvoir t'aider..

    tu as des série de if (), moi je poserais des if(){ } partout, le jeu d'accolade aide à la lisibilité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WHERE identifiant='". $session ."'"
    la je n'ai pas trouvé ce que $session est -> recup base de donnée je suppose ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SET passe='". $_POST['nouv_passe'] ."'
    protège les données, il faudrait ecrire au moins :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $nv_passe=protection($_POST['nouv_passe']);
     
    SET passe='$nv_passe'

    voila pour moi, a ++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Citation Envoyé par ascito Voir le message
    bon cela restera mon avis, mais le script je le trouve brouillon pour pouvoir t'aider..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WHERE identifiant='". $session ."'"
    la je n'ai pas trouvé ce que $session est -> recup base de donnée je suppose ?
    Oui c'est ça

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Pourquoi tout les messages ont étaient supprimés ?

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Comme il est expliqué dans ce post indiqué dans la barre en haut du forum, suite à un problème matériel, le forum est revenu en l'état dans lequel il était le 23 juillet au soir.

    Si tu as besoin vraiment d'une réponse importante, nous pouvons peut-être t'aider à la retrouver.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Alors on m'avais demandé de remplacer ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("UPDATE ". PREFIX ."membres SET adresse='". $_POST['adresse'] ."' WHERE identifiant='". $session ."'") or die ('Erreur, modification de l\'adresse impossible');
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql  = "UPDATE ". PREFIX ."membres SET adresse='". $_POST['adresse'] ."' WHERE identifiant='". $session ."'";
    echo $sql;
    mysql_query($sql) or die ('Erreur, modification de l\'adresse impossible');
    Alors quand je remplis le formulaire et que j'envoie, cela m'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE espm_membres SET adresse='test' WHERE identifiant='wtA29WrNw6zIY7aIZ4ZhYRem8Xo4je'
    Puis on ma demandé d'exécuter ce même code le UPDATE......... dans mon mysql.

    Je l'ai fait puis j'ai un message comme quoi tout est bon. Mais pourtant quand je regarde mes informations,<?php echo $adresse ?> n'a subit aucune modification, rien ne s'affiche....

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Quand tu le fais dans phpmyadmin, il t'indique combien d'enregistrements modifiés ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Nombre d'enregistrements affectés : 0 (traitement: 0.0260 sec.)
    requête SQL:
    UPDATE espm_membres SET adresse = 'test' WHERE identifiant = 'wtA29WrNw6zIY7aIZ4ZhYRem8Xo4je'

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ba voila, il n'y a pas d'indentifiant wtA29WrNw6zIY7aIZ4ZhYRem8Xo4je dans ta base.

    A quoi ressemble ce que contient ton champ dans la base ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Alors j'ai 4 tables :

    espm_config
    espm_membres
    espm_mps_envoyes
    espm_mps_recus

    Les champs de la table espm_membre :



    Et dans la table espm_membre il y à 1 enregistrement :



    Comme vous pouvez le voir, la table adresse et les autres ont bien eu une modification. Mais pourquoi ce message d'erreur ? et pourquoi quand je fait <?php echo $adresse ?> cela n'affiche rien ?

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    et pourquoi quand je fait <?php echo $adresse ?> cela n'affiche rien ?
    Je ne vois pas dans ton code ou tu définis la valeur de $adresse ?

    Sinon il faut vraiment que tu vois dans ton code comment fonction $session.
    A priori ici ton champ identifiant est un id de session donc il n'est plus valable a la connexion suivante, j'imagine qu'il y un systeme de mise à jour a la connexion de l'utilisateur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    A chaque page je rajoute ça :

    <?php session_start();
    include_once 'recup_config.php';
    include_once 'verifications.php';
    ?>

    Sa regarde si l'utilisateur est toujours connecté et si il a le rang nécessaire pour regarder la page, sinon redirection vers l'espace membre ou vers la page pour se connecter.

Discussions similaires

  1. [MySQL] Ajouter un champ dans une requête SQL Insert
    Par beegees dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 10/11/2008, 15h24
  2. Ajout de champ avec du SQL dynamique
    Par od.dev dans le forum Paradox
    Réponses: 1
    Dernier message: 24/06/2008, 12h09
  3. [Requête/SQL]ajouter un champ calculé dans une table
    Par zougna dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 17/04/2007, 20h09
  4. SQL Ajout de champ du meme mois
    Par Jahprend dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 06/07/2006, 11h29
  5. ajouter un champ dynamiquement à une instance de table
    Par maniack dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/02/2004, 00h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo