Jump to content
×
×
  • Create New...
  • 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 !

 recherche Formulaire php - Entrée d'info


Agl
 Share

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

Edited by Agl
Link to comment
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.

  • J'aime 1

Flemme, ils ont supprimés mon ancienne signature 😦

Link to comment
Share on other sites

Posted (edited)

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 comment
Share on other sites

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

https://www.php.net/manual/fr/book.pdo.php

 

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

 

 

 

 

Edited by Kurumi Tokisaki

#Kirito-SAO ( c'est mon ancien pseudo)

Link to comment
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

https://www.php.net/manual/fr/book.pdo.php

 

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 comment
Share on other sites

il y a une heure, Agl a dit :

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

Nice alors

Avec plaisir , je suis content pour toi

 

retire dans la ligne ci-dessous le ->  !

 

 if(!$conn->query($sql)) {

 

Le echo devrais être présent par la suite normalement

Si cela fonctionne pas dit moi :)

 

 

Edited by Kurumi Tokisaki

#Kirito-SAO ( c'est mon ancien pseudo)

Link to comment
Share on other sites

Je peux t’ajouter sur discord ?

Link to comment
Share on other sites

  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share