Remplacer valeur dans base de données.

Résolu/Fermé
rolly41 Messages postés 244 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 5 novembre 2024 - Modifié par rolly41 le 26/02/2013 à 07:41
rolly41 Messages postés 244 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 5 novembre 2024 - 26 févr. 2013 à 21:20
Bonjour,

Je souhaite remplacer les valeurs de certain champs par de nouvelle valeurs entrée par l'utilisateur.

J'ai trouver un code sur un site sur mysql, mais cela ne fonctionne pas.

Reprendre les valeurs des champs pour remplacer les valeurs par les valeurs d'un formulaire via POST

Requête d'enregistrement mysql :
$sql = "UPDATE membre SET passwd = '.MD5($_POST['passwd']).', mail = '.htmlentities($_POST['mail'], ENT_QUOTES, 'UTF-8').', q_secret = '.htmlentities($_POST['question'], ENT_QUOTES, 'UTF-8').', r_secret = '.htmlentities($_POST['reponse'], ENT_QUOTES, 'UTF-8').', presentation = '.htmlentities($_POST['presentation'], ENT_QUOTES, 'UTF-8').' WHERE id ='.$id.';

Erreur : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\... on line 22 (ligne 22 = code plus haut)

Merci pour votre aide.

1 réponse

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
26 févr. 2013 à 08:44
d'un point de vue purement syntaxique, ça sera mieux comme ça :

$sql = 'UPDATE membre SET passwd = '.MD5($_POST['passwd']).', mail = '.htmlentities($_POST['mail'], ENT_QUOTES, 'UTF-8').', q_secret = '.htmlentities($_POST['question'], ENT_QUOTES, 'UTF-8').', r_secret = '.htmlentities($_POST['reponse'], ENT_QUOTES, 'UTF-8').', presentation = '.htmlentities($_POST['presentation'], ENT_QUOTES, 'UTF-8').' WHERE id ='.$id;


ensuite je ne peux évidemment pas garantir le résultat vu qu'on manque cruellement d'info...
0
rolly41 Messages postés 244 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 5 novembre 2024 1
Modifié par rolly41 le 26/02/2013 à 20:05
Voici la totalité de la page "mon-profil.php"
<?php $title='Mon profil'; ?>  
<?php include ("head.php"); ?>  
<?php include("banniere.php"); ?>  
<table width="1015px" border="0" align="center">  
  <tr>  
    <th class="hleft" width="4"> </th>  
    <th class="hmiddle"><?php echo $title; ?></th>  
    <th class="hright" width="4"> </th>  
  </tr>  
  <tr>  
    <td class="page" colspan="3" width="1"><hr /></td>  
  </tr>  
  <tr>  
    <td class="page" colspan="3" align="center">  
      <?php  
      $error = FALSE;  
      $registerOK = FALSE;  
        if(isset($_POST["mon-profil"]))  
          {  
          if ($_POST['passwd'] == $_POST['passwd1'])  
            {  
            $sql = "UPDATE membre SET passwd = '.MD5($_POST['passwd']).', mail = '.htmlentities($_POST['mail'], ENT_QUOTES, 'UTF-8').', q_secret = '.htmlentities($_POST['question'], ENT_QUOTES, 'UTF-8').', r_secret = '.htmlentities($_POST['reponse'], ENT_QUOTES, 'UTF-8').', presentation = '.htmlentities($_POST['presentation'], ENT_QUOTES, 'UTF-8').' WHERE id ='.$id.'";  
            $sql = mysql_query($sql);                           
            // Si la requête s'est bien effectué :  
            if($sql)  
              {                           
              // On met la variable $registerOK à TRUE pour que l'inscription soit finalisé  
              $registerOK = TRUE;  
              // On l'affiche un message pour le dire que l'inscription c'est bien déroulé :  
              $registerMSG = "Inscription réussie ! Vous êtes maintenant membre du site et connecté.<br />Retour l'<a href='index.php'>index</a>";  
            }  
            else  
              {                           
              $error = TRUE;                               
              $errorMSG = "Erreur dans la requête SQL<br/>".$sql."<br/>";  
            }  
          }  
          else  
            {  
            $error = TRUE;  
            $errorMSG = "Les deux mot de passe doivent être identique.<br />Retour à <a href='mon-profil.php'>votre profil</a>";  
          }  
        }  
        if($id != "0")  
          {   
          $dn = mysql_query('select id, pseudo, passwd, mail, q_secret, r_secret, presentation, avatar from membre where id="'.$id.'"');   
          if(mysql_num_rows($dn)>0)   
            {   
            $dnn = mysql_fetch_array($dn);   
?>  
<form action="mon-profil.php" method="POST">  
<table width="63%" name="informations" align="center" border="0">  
  <tr>  
    <td valign="bottom" colspan="3" align="center"><font size="+1">Modifiez votre profil</font></td>  
  </tr>  
  <tr>  
    <td valign="top" width="102" align="center"><?php echo html_entity_decode($dnn['pseudo'], ENT_QUOTES, 'UTF-8'); ?><br />  
      <?php echo '<img src="images/avatars/membres/'.html_entity_decode($dnn['avatar'], ENT_QUOTES, 'UTF-8').'.png" alt="Avatar du membre" style="max-width:100px;max-height:100px;" /><br />'; ?>  
      <a href="#"><u>Modifier mon avatar</u></a>  
    </td>  
    <td class="left" valign="top">  
      <table>  
        <tr>  
          <td>Changer d\'adresse mail :</td>  
          <td><?php echo '<input type="text" name="mail" value="'.html_entity_decode($dnn['mail'], ENT_QUOTES, 'UTF-8').'"/>'; ?></td>  
        </tr>  
        <tr>          
          <td>Nouveau mot de passe :</td>  
          <td><input type="password" name="passwd" value=""/></td>  
        </tr>  
        <tr>  
          <td>Confirmez mot de passe :</td>  
          <td><input type="password" name="passwd1" value=""/></td>  
        </tr>  
      </table>  
    </td>  
    <td valign="top" width="220px" style="border-width:0 0 0 1px; border-style:solid; border-color:#000000;">  
      Question secrète :<?php echo '<input name="question" type="text" value="'.html_entity_decode($dnn['q_secret'], ENT_QUOTES, 'UTF-8').'">'; ?>  
      Réponse secrète :<?php echo '<input name="reponse" type="text" value="'.html_entity_decode($dnn['r_secret'], ENT_QUOTES, 'UTF-8').'">'; ?>  
    </td>  
  </tr>  
  <tr>  
    <td colspan="3" style="border-width:1px 0 0 0; border-style:solid; border-color:#000000;" align="center">  
      <h3>Présentation :</h3>  
    </td>  
  </tr>  
  <tr>  
    <td class="left" valign="top" colspan="3" align="center">  
      <pre><textarea name="presentation"><?php echo html_entity_decode($dnn['presentation'], ENT_QUOTES, 'UTF-8'); ?></textarea></pre>  
    </td>  
  </tr>  
  <tr>  
    <td colspan="3" style="border-width:1px 0 0 0; border-style:solid; border-color:#000000;" align="center">  
      <h3>Personnage Lié</h3>  
    </td>  
  </tr>  
  <tr>  
    <td colspan="3" valign="top">  
      <table width="87%" align="center" border="1">  
        <tr>  
          <td align="center" valign="top">Pseudo</td>  
          <td align="center" valign="top">Classe</td>  
          <td align="center" valign="top" width="50">Niveau</td>  
          <td align="center" valign="top">Serveur</td>  
        </tr>  
        <?php  
          $sql = 'select id_personnage, id_membre, classe, pseudo, serveur, niveau from personnage where id_membre="'.$id.'"';  
          $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());  
          while($data = mysql_fetch_assoc($req))  
            {  
              echo '<tr><td align="center" valign="top"><a href="personnage.php?id='.html_entity_decode($data['id_personnage'], ENT_QUOTES, 'UTF-8').'" style="text-decoration:none;color:#000099;"><u>'.html_entity_decode($data['pseudo'], ENT_QUOTES, 'UTF-8').'</u></a></td><td align="center" valign="top"><font color="000099">'.html_entity_decode($data['classe'], ENT_QUOTES, 'UTF-8').'</font></td><td align="center" valign="top">'.html_entity_decode($data['niveau'], ENT_QUOTES, 'UTF-8').'</td><td align="center" valign="top">'.html_entity_decode($data['serveur'],ENT_QUOTE, 'UTF-8').'</td></tr>';  
          }  
        ?>  
        <?php  
          $sql = 'select COUNT(*) from personnage WHERE id_membre="'.$id.'"';  
          $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());  
          $data = mysql_fetch_array($req);  
          if ($data[0] == '0')  
            {  
            echo '<tr><td colspan="4" align="center" valign="top" style="background-color:#ff0000;"><font color="#ffffff">Vous n\'avez pas de personnage lié</font></td></tr>';  
          }  
        ?>  
        <tr><td colspan="4" align="center" valign="top" style="background-color:#009900;"><a href="#"><font color="#000000"><b>Créer un nouveau personnage</b></font></a></td></tr>  
      </table>  
    </td>          
  </tr>  
  <tr>  
    <td colspan="3" align="center">  
      <input name="mon-profil" value="Enregistrer les modifications" type="submit">  
    </td>  
  </tr>  
</table>  
</form>  
<?php  
        }  
        else  
        {  
                echo '<font align="center" color="990000"><b>Ce membre n\'existe pas.</b></font>';  
        }  
}  
else  
{  
        echo '<font align="center">Vous devez être connecté pour afficher votre profil.<br /><a href="connexion.php">Connection</a> - <a href="inscription.php">Inscription</font>';  
}  
?>  
    </td>  
  </tr>  
</table>  
<?php include("copyright.php"); ?>

Erreur connue au chargement de la page "mon-profil.php" : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\monsite\mon-profil.php on line 22

Ligne qui pose problème :
 $sql = "UPDATE membre SET passwd = '.MD5($_POST['passwd']).', mail = '.htmlentities($_POST['mail'], ENT_QUOTES, 'UTF-8').', q_secret = '.htmlentities($_POST['question'], ENT_QUOTES, 'UTF-8').', r_secret = '.htmlentities($_POST['reponse'], ENT_QUOTES, 'UTF-8').', presentation = '.htmlentities($_POST['presentation'], ENT_QUOTES, 'UTF-8').' WHERE id ='.$id.'";
0
rolly41 Messages postés 244 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 5 novembre 2024 1
26 févr. 2013 à 21:20
J'ai modifier mon fichier avec votre code et je n'ai plus de message d'erreur.

En revanche, quand je clique sur "Enregistrer les modifications", il n'y a aucune requête sql qui se fait. C'est comme si je cliquais sur le lien "mon-profil.php".

Voici le code :
<?php $title='Mon profil'; ?>  
<?php include ("head.php"); ?>  
<?php include("banniere.php"); ?>  
<table width="1015px" border="0" align="center">  
  <tr>  
    <th class="hleft" width="4"> </th>  
    <th class="hmiddle"><?php echo $title; ?></th>  
    <th class="hright" width="4"> </th>  
  </tr>  
  <tr>  
    <td class="page" colspan="3" width="1"><hr /></td>  
  </tr>  
  <tr>  
    <td class="page" colspan="3" align="center">  
      <?php  
      $error = FALSE;  
      $registerOK = FALSE;  
        if(isset($_POST["register"]))  
          {  
          if ($_POST['passwd'] == $_POST['passwd1'])  
            {  
            $sql = 'UPDATE membre SET passwd = '.MD5($_POST['passwd']).', mail = '.htmlentities($_POST['mail'], ENT_QUOTES, 'UTF-8').', q_secret = '.htmlentities($_POST['question'], ENT_QUOTES, 'UTF-8').', r_secret = '.htmlentities($_POST['reponse'], ENT_QUOTES, 'UTF-8').', presentation = '.htmlentities($_POST['presentation'], ENT_QUOTES, 'UTF-8').' WHERE id ='.$id;  
            $sql = mysql_query($sql);                           
            if($sql)  
              {                           
              $registerOK = TRUE;  
              $registerMSG = "Modifications réussie !<br /><a href='mon-profil.php'>Retour</a>";  
            }  
            else  
              {                           
              $error = TRUE;                               
              $errorMSG = "Erreur dans la requête SQL<br/>".$sql."<br/>";  
            }  
          }  
          else  
            {  
            $error = TRUE;  
            $errorMSG = "Les deux mot de passe doivent être identique.<br />Retour à <a href='mon-profil.php'>votre profil</a>";  
          }  
        }
       ?>
       <?php  
        if($_SESSION['id'] != "0")  
          {   
          $dn = mysql_query('select id, pseudo, passwd, mail, q_secret, r_secret, presentation, avatar from membre where id="'.$id.'"');   
          if(mysql_num_rows($dn)>0)   
            {   
            $dnn = mysql_fetch_array($dn);   
?>  
<form action="mon-profil.php" method="POST">  
<table width="63%" name="informations" align="center" border="0">  
  <tr>  
    <td valign="bottom" colspan="3" align="center"><font size="+1">Modifiez votre profil</font></td>  
  </tr>  
  <tr>  
    <td valign="top" width="102" align="center"><?php echo html_entity_decode($dnn['pseudo'], ENT_QUOTES, 'UTF-8'); ?><br />  
      <?php echo '<img src="images/avatars/membres/'.html_entity_decode($dnn['avatar'], ENT_QUOTES, 'UTF-8').'.png" alt="Avatar du membre" style="max-width:100px;max-height:100px;" /><br />'; ?>  
      <a href="#"><u>Modifier mon avatar</u></a>  
    </td>  
    <td class="left" valign="top">  
      <table>  
        <tr>  
          <td>Changer d\'adresse mail :</td>  
          <td><?php echo '<input type="text" name="mail" value="'.html_entity_decode($dnn['mail'], ENT_QUOTES, 'UTF-8').'"/>'; ?></td>  
        </tr>  
        <tr>          
          <td>Nouveau mot de passe :</td>  
          <td><input type="password" name="passwd" value=""/></td>  
        </tr>  
        <tr>  
          <td>Confirmez mot de passe :</td>  
          <td><input type="password" name="passwd1" value=""/></td>  
        </tr>  
      </table>  
    </td>  
    <td valign="top" width="220px" style="border-width:0 0 0 1px; border-style:solid; border-color:#000000;">  
      Question secrète :<?php echo '<input name="question" type="text" value="'.html_entity_decode($dnn['q_secret'], ENT_QUOTES, 'UTF-8').'">'; ?>  
      Réponse secrète :<?php echo '<input name="reponse" type="text" value="'.html_entity_decode($dnn['r_secret'], ENT_QUOTES, 'UTF-8').'">'; ?>  
    </td>  
  </tr>  
  <tr>  
    <td colspan="3" style="border-width:1px 0 0 0; border-style:solid; border-color:#000000;" align="center">  
      <h3>Présentation :</h3>  
    </td>  
  </tr>  
  <tr>  
    <td class="left" valign="top" colspan="3" align="center">  
      <pre><textarea name="presentation"><?php echo html_entity_decode($dnn['presentation'], ENT_QUOTES, 'UTF-8'); ?></textarea></pre>  
    </td>  
  </tr>  
  <tr>  
    <td colspan="3" style="border-width:1px 0 0 0; border-style:solid; border-color:#000000;" align="center">  
      <h3>Personnage Lié</h3>  
    </td>  
  </tr>  
  <tr>  
    <td colspan="3" valign="top">  
      <table width="87%" align="center" border="1">  
        <tr>  
          <td align="center" valign="top">Pseudo</td>  
          <td align="center" valign="top">Classe</td>  
          <td align="center" valign="top" width="50">Niveau</td>  
          <td align="center" valign="top">Serveur</td>  
        </tr>  
        <?php  
          $sql = 'select id_personnage, id_membre, classe, pseudo, serveur, niveau from personnage where id_membre="'.$id.'"';  
          $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());  
          while($data = mysql_fetch_assoc($req))  
            {  
              echo '<tr><td align="center" valign="top"><a href="personnage.php?id='.html_entity_decode($data['id_personnage'], ENT_QUOTES, 'UTF-8').'" style="text-decoration:none;color:#000099;"><u>'.html_entity_decode($data['pseudo'], ENT_QUOTES, 'UTF-8').'</u></a></td><td align="center" valign="top"><font color="000099">'.html_entity_decode($data['classe'], ENT_QUOTES, 'UTF-8').'</font></td><td align="center" valign="top">'.html_entity_decode($data['niveau'], ENT_QUOTES, 'UTF-8').'</td><td align="center" valign="top">'.html_entity_decode($data['serveur'],ENT_QUOTE, 'UTF-8').'</td></tr>';  
          }  
        ?>  
        <?php  
          $sql = 'select COUNT(*) from personnage WHERE id_membre="'.$id.'"';  
          $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());  
          $data = mysql_fetch_array($req);  
          if ($data[0] == '0')  
            {  
            echo '<tr><td colspan="4" align="center" valign="top" style="background-color:#ff0000;"><font color="#ffffff">Vous n\'avez pas de personnage lié</font></td></tr>';  
          }  
        ?>  
        <tr><td colspan="4" align="center" valign="top" style="background-color:#009900;"><a href="#"><font color="#000000"><b>Créer un nouveau personnage</b></font></a></td></tr>  
      </table>  
    </td>          
  </tr>  
  <tr>  
    <td colspan="3" align="center">  
      <input name="register" value="Enregistrer les modifications" type="submit">  
    </td>  
  </tr>  
</table>  
</form>  
    <?php  
        }  
        else  
        {
          echo '<font align="center" color="990000"><b>Ce membre n\'existe pas.</b></font>';  
      }
    }
    else
      {
        echo '<font align="center">Vous devez être connecté pour afficher votre profil.<br /><a href="connexion.php">Connexion</a> - <a href="inscription.php">Inscription</font>';  
    }  
    ?>  
    </td>  
  </tr>  
</table>  
<?php include("copyright.php"); ?>
0