Jump to content
  • Please do not post a message for the purpose of insulting, incitement to hatred, sexual remarks and any other which does not respect our terms of use !

Formulaire php - Entrée d'info


Agl

Recommended Posts

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

Link to post
Share on other 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
Link to post
Share on other 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.

 

Edited by Agl
Link to post
Share on other 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

Link to post
Share on other 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

To access this link, please log in.

 

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é »

Link to post
Share on other sites

  • 2 months later...
  • Henri locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...