Aller au contenu
  • Veuillez ne pas poster de message pour but d'insulter, incitation à la haine, propos sexuels et tout autre qui ne respecte pas nos conditions générales !

Formulaire php - Entrée d'info


Agl

Messages recommandés

  Bonjour, voici mon soucis, je souhaite que l'utilisateur puisse modifier son Discord, Soucis, quand il le rentre ca modifie ceux de tous les monde. 
Qui peux m'aider?

 

 

 

 

 <?php
                        
if (isset($_REQUEST['discord'])){
    // récupérer le nom d'utilisateur et supprimer les antislashes ajoutés par le formulaire
    $discord = stripslashes($_REQUEST['discord']);
    $discord = mysqli_real_escape_string($conn, $discord); 
    //requéte SQL + mot de passe crypté
    $query =   "UPDATE users SET discord=('$discord')";
            
    // Exécute la requête sur la base de données
    $res = mysqli_query($conn, $query);
    if($res){
       echo "<div class='sucess'>
             <h3>Votre discord est ajouté ! .</h3>
             <p>Cliquez ici pour <a href='profil'>Revenir en arrière</a></p>
             </div>";
    }
}else{
?>
<form class="box" action="" method="post">
     <input type="text" class="box-input" name="discord" placeholder="Nom Discord" required />
    <input type="submit" name="submit" value="Accepter" class="box-button" />
   </form>
<?php } ?> 

Lien à poster
Partager sur d’autres sites

  • Modérateur

Alors ça fait trèèès longtemps que je n'ai plus fait de PHP mais voici quelques soucis que j'ai remarqués :

  1. Pour récupérer la variable entrée, tu utilises $_REQUEST["discord"] alors que tu devrais utiliser $_POST["discord"].
  2. Ta requête SQL change en effet la case "discord" de chaque utilisateur puisque tu ne spécifies pas quel ligne il faut modifier (spécifique à l'utilisateur).

Tu pourrais avoir une requête du style :

UPDATE users SET discord=('$discord') WHERE username = 'Jean-Marc'

Faut-il encore que tu connaisses l'identité de l'utilisateur qui soumet le formulaire.

~ Henri

Développeur WEB, NodeJS et C

 

Discord: Henri#003

Twitter: @UnrealHenri

  • J'aime 1
Lien à poster
Partager sur d’autres sites

Je vais essayé mais du coup ça donne 

 

UPDATE users SET discord=('$discord') WHERE username = ($username)

 

car dans ton exemple ce ne serait que jean marc qui pourrait changer son discord j’imagine ! 
 

moi je souhaite que l’utilisateur connecté change son discord à lui 

 

Il y a 7 heures, CptHenri a dit :

Alors ça fait trèèès longtemps que je n'ai plus fait de PHP mais voici quelques soucis que j'ai remarqués :

  1. Pour récupérer la variable entrée, tu utilises $_REQUEST["discord"] alors que tu devrais utiliser $_POST["discord"].
  2. Ta requête SQL change en effet la case "discord" de chaque utilisateur puisque tu ne spécifies pas quel ligne il faut modifier (spécifique à l'utilisateur).

Tu pourrais avoir une requête du style :

UPDATE users SET discord=('$discord') WHERE username = 'Jean-Marc'

Faut-il encore que tu connaisses l'identité de l'utilisateur qui soumet le formulaire.

 

Modifié par Agl
Lien à poster
Partager sur d’autres sites

  • Modérateur

Oui bien sûr, tu dois adapter la requête pour insérer le nom d'utilisateur du mec

~ Henri

Développeur WEB, NodeJS et C

 

Discord: Henri#003

Twitter: @UnrealHenri

Lien à poster
Partager sur d’autres sites

Il y a 9 heures, Kurumi Tokisaki a dit :

Salut,

Merci de nous donner plus d'information:

 

Comment est gérer ta session et la récupération de l'user.

Tel que username, id etc

 

Attention moi je ne ferais pas un WHERE du username :/

Je préfère utilisée l'id utilisateur , car si plusieurs personne aurais le même pseudo,

cela va update le même discord sur tous les utilisateurs avec le même pseudo

 

 

Enfin un exemple serais quelque chose comme ceci:

D'ailleurs il manque beaucoup de vérification ^^ sur le script attention ❗

A toi après de modifier avec tes codes , c'est qu'un exemple j'connaît pas les variables de ta SESSION sur ton site.

Cela ne marchera pas si tu fais un copier coller , n'oublie pas de modifier avec tes propres variables.

<?php                    
if (isset($_POST['discord'])) {  
    /*
    * Récupère l'id de l'utilisateurs connectée
    * L'id utilisateurs stock dans une session
    * [$_SESSION] -> ID
    */
    $userid = intval($_SESSION['id']);

    /*
    * Récupère le discord formulaire
    * Escape des caractères spécial
    * [$_POST] -> discord
    */
    $newdiscord = stripslashes($_POST['discord']);
    $discord = $conn->real_escape_string($newdiscord); 

    /*
    * UPDATE du discord de la personne connectée.
    * On récupère  l'user id ci-dessus de la SESSION actuellement connectée
    * userid = ID -> [$_SESSION] -> ID
    * Update SQL du (discord) de la personne connectée sur le site.
    */
    $sql = "UPDATE users SET discord = ('$discord') WHERE id = ('$userid')"; // exemple
    if(!$conn->query($sql)) {
       echo "<div class='sucess'> <h3>Votre discord est ajouté ! .</h3> <p>Cliquez ici pour <a href='profil'>Revenir en arrière</a></p> </div>";
    }

    /*
    * Terminée la requête
    * Closed connection mysqli
    */
    $conn->close();
} else {
?>

<form class="box" action="" method="post">
    <input type="text" class="box-input" name="discord" placeholder="Nom Discord" required />
    <input type="submit" name="discord" value="Accepter" class="box-button" />
</form>

<?php
}
?>

 

Pour finir

renseigne sur PDO

Pour avoir accès à ce lien, merci de vous connecter.

 

Sa te serais beaucoup plus facile et sécurisé pour toi.

<?php                    
if (isset($_POST['discord'])) {  
    /*
    * Récupère l'id de l'utilisateurs connectée
    * L'id utilisateurs stock dans une session
    * [$_SESSION] -> ID
    */
    $userid = intval($_SESSION['id']);

    /*
    * Récupère le discord formulaire
    * Escape des caractères spécial
    * [$_POST] -> discord
    */
    $newdiscord = stripslashes($_POST['discord']);
    $discord = $conn->real_escape_string($newdiscord); 

    /*
    * UPDATE du discord de la personne connectée.
    * On récupère  l'user id ci-dessus de la SESSION actuellement connectée
    * userid = ID -> [$_SESSION] -> ID
    * Update SQL du (discord) de la personne connectée sur le site.
    */
    $sql = "UPDATE users SET discord = ('$discord') WHERE id = ('$userid')"; // exemple
    if(!$conn->query($sql)) {
       echo "<div class='sucess'> <h3>Votre discord est ajouté ! .</h3> <p>Cliquez ici pour <a href='profil'>Revenir en arrière</a></p> </div>";
    }

    /*
    * Terminée la requête
    * Closed connection mysqli
    */
    $conn->close();
} else {
?>

<form class="box" action="" method="post">
    <input type="text" class="box-input" name="discord" placeholder="Nom Discord" required />
    <input type="submit" name="discord" value="Accepter" class="box-button" />
</form>

<?php
}
?>

 

 

 

 

Super ça a fonctionné et effectivement je comprends ce que tu veux dire je prend en note ton exemple !

par contre la ca affiche pas le écho « votre discord a été ajouté »

Lien à poster
Partager sur d’autres sites

  • 2 mois plus tard...
  • Henri à fermer ce/cette sujet
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...