Modifier un statut

Alucard380 Messages postés 19 Statut Membre -  
arthezius Messages postés 3756 Statut Membre -
Bonjour,
Bonjour à tous, j'ai voulu faire un projet il y a peu de temps qui est un Tool Game Master pour le jeu Metin2.
Alors voila, je suis bloquer pour le ban d'un compte.
Je vous explique ça plus en détail:
Pour bannir un compte il faut insérer l'id de compte dans la zone de texte que j'ai mis.
Voila donc le code de la case:

<form method="post" action="ban.php">Nom
du compte : <input name="account" maxlength="100" type="text" />

<input value="Valider" type="submit" /></b>
</form>

Jusqu'à là, tout va bien. Je vais vous donner le code de mon PHP:

<?php
//On se connecte à la base de données
mysql_connect("*.**.***.***", "****", "******");
mysql_select_db("account");

//on fait ça
$account=$_POST['account'];
$sql="UPDATE account SET status='BAN' WHERE login='$account'";
?>

Le compte <?php echo $_POST['account']; ?> à bien
été banni !

Mais voila, quand je me connecte a ma base de donnée, je regarde dans la base et le compte n'est toujours pas bannis... je ne comprends pas...
Merci d'avance a ceux qui pourront m'aidés!!
(Je vous donne le message d'erreur si ca peut aider: Warning: include(config.php) [function.include]: failed to open stream: No such file or directory in /home/frenchpserv/www/ban.php on line 2

Warning: include(config.php) [function.include]: failed to open stream: No such file or directory in /home/frenchpserv/www/ban.php on line 2

Warning: include() [function.include]: Failed opening 'config.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/frenchpserv/www/ban.php on line 2

Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 101 in /home/frenchpserv/www/ban.php on line 4

Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/frenchpserv/www/ban.php on line 5

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/frenchpserv/www/ban.php on line 5
Le compte Shuyin55400 à bien été banni !)

Cordialement, Alucard.
Configuration: Windows 7 / Firefox 3.5.7

27 réponses

  • 1
  • 2
  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Le chemin pour inclure le fichier "config.php" n'est pas bon.
    Sinon ton formulaire n'est pas très valide W3C et la sécurité n'est pas très présente dans le PHP.
    0
  2. Alucard380 Messages postés 19 Statut Membre
     
    Merci, mais je suis très débutant en la matière et... le chemin de config.php c'est quoi? Si c'est pas trop te demandé est ce que tu peut détailler? x)
    Sinon pour la sécuriter y'a pas de soucis puisque la c'est juste pour tester en locale, après je mettrais peut être du htaccess si je le mets en ligne.

    Alucard.
    0
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Le chemin que tu précises dans la fonction include() est mauvais.
    Pour la sécurité, une .htaccess n'empêchera pas une injection SQL.
    0
  4. Alucard380 Messages postés 19 Statut Membre
     
    Laissons le .htacess de côté.
    Pour l'instant je voudrais savoir, dans le config.php qu'est ce que je dois mettre? Les pass, id et hebergeur de la base de donnée? Et après mettre le include config.php?
    Ou est ce que je peut directement enlever le include config.php et mettre mysql_connect("*********", "****", "******");

    Et après je mets mon code php?
    J'suis vraiment très low :S.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Tu fais comme tu veux.
    Le mieux est de mettre tes identifiants dans un fichier de configuration, comme ça si tu changes d'hébergeur tu n'as que ce fichier à modifier.
    0
  7. Alucard380 Messages postés 19 Statut Membre
     
    J'te remercie déjà beaucoup de ton aide, mais je vais encore t'embêter un peu.
    Maintenant que j'ai créer le fichier config.php et mis tout ce qu'il fallait dedans, quand j'essaye de bannir le compte, voila l'erreur qu'il me mets :S.

    Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 101 in /home/frenchpserv/www/ban.php on line 4

    Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/frenchpserv/www/ban.php on line 5

    Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/frenchpserv/www/ban.php on line 5
    Le compte Shuyin55400 à bien été banni !
    0
  8. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Ton fichier config.php ressemble-t-il bien à cela ?
    <?php
    $dbhost = 'sql.tonhebergeur.com';
    $dbuser = 'tonidentifiant';
    $dbpass = 'tonpassword';
    $dbname = 'nom_de_la_bdd';
    ?>
    Ensuite, tu dois inclure ce fichier dans ta page PHP et utiliser les variables comme suit :
    <?php
    require 'config.php';
    
    mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db($dbname);
    
    // ...
    ?>
    0
  9. Alucard380 Messages postés 19 Statut Membre
     
    Oula, non il ne ressemblait pas du tout a cela xD, alors j'ai mis tout ce que tu m'a dit et remplis (normalement correctement) tout ce qu'il y avait a remplir.
    Mais... encore une petite erreur!

    La voila:

    Parse error: syntax error, unexpected '<' in /home/frenchpserv/www/ban.php on line 2

    En espèrant que tu pourra encore m'aider (je te remercie déjà beaucoup d'avoir eu la patience jusqu'à là de m'avoir aider ^^).

    Cordialement,
    Alucard.
    0
  10. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Quelle sont les 3 premières lignes de ton fichier ban.php ?
    Regardes-y avant, tu vas sans doute trouver l'erreur.
    0
  11. Alucard380 Messages postés 19 Statut Membre
     
    J'ai trouver deux erreurs, je les ai corrigés, pourtant maintenant il y a une erreur (oui encore >_<)

    Je te repasse le ban.php:

    <?php
    require 'config.php';

    mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db($dbname);

    // ...

    //On se connecte à la base de données
    $db_connect;
    mysql_select_db("account");

    //on fait ça
    $account=$_POST['account'];
    $sql="UPDATE account SET status='BAN' WHERE login='$account'";
    ?>

    Le compte <?php echo $_POST['account']; ?> à bien
    été banni !

    Voila ensuite le config.php:

    <?php
    $dbhost = '*********';
    $dbuser = '****';
    $dbpass = '******';
    $dbname = '******';
    ?>

    L'erreur, la voici:

    Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/frenchpserv/www/ban.php on line 4

    Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/frenchpserv/www/ban.php on line 5

    Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/frenchpserv/www/ban.php on line 5

    Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/frenchpserv/www/ban.php on line 11

    Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/frenchpserv/www/ban.php on line 11
    Le compte Shuyin55400 à bien été banni !
    0
  12. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Pourquoi refais-tu un mysql_select_db alors que ça se fait déjà juste après le mysql_connect, avec la variable $dbname du fichier config.php ?
    Et le compte ne risque pas d'être banni puisque tu définis la requête mais tu ne l'exécute pas (mysql_query).
    Pour les erreurs, ton hôte SQL est mauvaise.
    0
  13. Alucard380 Messages postés 19 Statut Membre
     
    Re salut,
    Bon alors j'ai changer de technique. Cette fois j'ai décider de ne plus utiliser le config.php.
    Voila mon ban.php modifié:

    <?php
    mysql_connect("*.**.***.***", "****", "******");

    mysql_select_db("account");

    //on fait ça
    $account=$_POST['account'];
    $sql="UPDATE account SET status='BAN' WHERE login='$account'";
    mysql_query($sql) or die (mysql_error());
    ?>

    Le compte <?php echo $_POST['account']; ?> à bien
    été banni !

    Mais ca ne marche toujours pas... J'suis un peu dégouté lol:

    Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 101 in /home/frenchpserv/www/ban.php on line 2

    Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/frenchpserv/www/ban.php on line 4

    Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/frenchpserv/www/ban.php on line 4

    Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/frenchpserv/www/ban.php on line 9

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/frenchpserv/www/ban.php on line 9
    Le compte maximedragon à bien été banni !
    0
  14. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Tu indiques une mauvaise hôte SQL.
    0
  15. Alucard380 Messages postés 19 Statut Membre
     
    Re bonjour,

    Effectivement c'était mon hôte MySql qui n'était pas bon, je viens de tester en local et ca marche a la perfection :).

    Alors maintenant, je me suis attaquer à essayer de trouver des informations, mais il y a une erreur, la voici;
    Parse error: parse error in C:\wamp\www\searchaccount.php on line 21

    Je t'explique mon problème:

    Je crois que le code est bon, le seul truc, c'est que je ne sais pas comment relier mon searchaccount.php a mon index.html, je ne sais pas quoi mettre :S. Par exemple, si je reprend l'exemple de mon ban.php j'avais mis ça pour relier mon ban.php au index.html:

    Dans mon ban.php: $account=$_POST['account'];

    Dans mon index.html: <form method="post" action="ban.php">Nom
    du compte : <input name="account" maxlength="100" type="text" /><br />
    <input value="Valider" type="submit" /></b>
    </form>

    Seulement la, c'est pas $_POST qu'il faut mettre ca doit être autre chose mais je ne sais pas quoi :S
    Si tu pouvais m'éclairer un peu plus sur ceci... merci d'avance!

    P.S: Voila mon searchaccount.php:

    <?php
    mysql_connect("localhost", "root", ""); // Connexion à MySQL
    mysql_select_db("metin2"); // Sélection de la base coursphp

    $account=$_POST['account'];
    $reponse = mysql_query("SELECT * FROM account"); // Requête SQL

    // On fait une boucle pour lister tout ce que contient la table :

    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>

    Nom du compte : <?php echo $_POST['account']; ?> <br>
    <p>
    Nom de compte : <?php echo $donnees['login']; ?><br />
    Code d'effacement de perso : <?php echo $donnees['social_id']; ?>
    Etat du compte : <?php echo $donnees['status']; ?><br />
    </p>

    Alucard.
    0
  16. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Parse error: parse error in C:\wamp\www\searchaccount.php on line 21
    Regarde si tu n'aurais pas oublié un ";" ou une erreur avec les apostrophes à la ligne 21 ou celle du dessus.
    0
  17. Alucard380 Messages postés 19 Statut Membre
     
    Tu peux vérifier et compter les lignes, tu verra qu'il n'y a pas d'erreur!

    Je te remets encore mon searchaccount.php:

    <?php
    mysql_connect("localhost", "root", ""); // Connexion à MySQL
    mysql_select_db("metin2"); // Sélection de la base coursphp

    $account=$_POST['account'];
    $reponse = mysql_query("SELECT * FROM account"); // Requête SQL

    // On fait une boucle pour lister tout ce que contient la table :

    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>

    Nom du compte : <?php echo $_POST['account']; ?>
    Nom de compte : <?php echo $donnees['login']; ?>
    Code d'effacement de perso : <?php echo $donnees['social_id']; ?>
    Etat du compte : <?php echo $donnees['status']; ?>

    Et maintenant, j'ai cette erreur la: Parse error: parse error in C:\wamp\www\searchaccount.php on line 18
    0
  18. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Tu ne fermes pas la boucle while
    0
  19. Alucard380 Messages postés 19 Statut Membre
     
    Effectivement, encore une fois, je te remercie ^^. (Qu'est ce que c'est chiant le php t'oublie un petit truc et paf ton script est mauvais >_<)

    Alors voila, maintenant, ca marche. Enfin, presque.

    Voila mon problème:

    Le script marche presque à merveille; il y a deux problèmes (mais qui peut être sûrement résolu en une solution). Le premier, c'est celui que je n'arrive pas a "relier" ma page html (pour rechercher un compte en particulier quoi) et ma page php. Je ne trouve pas le bon code. Le deuxième, c'est que quand je recherche un compte (qui en faites peu importe ce que j'écris ca affichera toujours le même résultat) il m'affiche beaucoup, beaucoup trop de comptes, et les informations sont fausses car quand je vois le résultat et que je vérifie dans la base de donnée ce n'est pas pareil du tout.
    Je vous donne le résultat de mon search.php:

    Nom de compte : linux57525
    Nom du personnage : Rain
    Etat du compte : OK
    Code d'effacement de perso : 1234567
    Temps de jeu : 78 minutes
    Niveau : 80
    Exp : 277
    Yang : 998673669
    IP du compte : 192.168.2.1
    Derniere connexion : 2009-09-19 00:09:53
    Cheval level : 0

    Nom de compte : Shuyin55400
    Nom du personnage : Rain
    Etat du compte : OK
    Code d'effacement de perso : 1234567
    Temps de jeu : 78 minutes
    Niveau : 80
    Exp : 277
    Yang : 998673669
    IP du compte : 192.168.2.1
    Derniere connexion : 2009-09-19 00:09:53
    Cheval level : 0

    Nom de compte : Giren57760
    Nom du personnage : Rain
    Etat du compte : OK
    Code d'effacement de perso : 1234567
    Temps de jeu : 78 minutes
    Niveau : 80
    Exp : 277
    Yang : 998673669
    IP du compte : 192.168.2.1
    Derniere connexion : 2009-09-19 00:09:53
    Cheval level : 0

    Nom de compte : Alucard380zgm
    Nom du personnage : Rain
    Etat du compte : OK
    Code d'effacement de perso : 1234567
    Temps de jeu : 78 minutes
    Niveau : 80
    Exp : 277
    Yang : 998673669
    IP du compte : 192.168.2.1
    Derniere connexion : 2009-09-19 00:09:53
    Cheval level : 0

    (et encore beaucoup d'autres comptes... comme vous pouvez le voir, il repète toujours les mêmes informations sauf le nom de compte, je sais pas pourquoi d'ailleurs).

    Je te re donne le code de mon search.php :

    <?php
    mysql_connect("localhost", "root", ""); // Connexion à MySQL
    mysql_select_db("metin2"); // Sélection de la base metin2

    $reponse = mysql_query("SELECT * FROM account, player"); // Requête SQL

    // On fait une boucle pour lister tout ce que contient la table :

    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
    <p>
    <br>Nom de compte : <?php echo $donnees['login']; ?>
    <br>Nom du personnage : <?php echo $donnees['name']; ?>
    <br>Etat du compte : <?php echo $donnees['status']; ?>
    <br>Code d'effacement de perso : <?php echo $donnees['social_id']; ?>
    <br>Temps de jeu : <?php echo $donnees['playtime']; ?> minutes
    <br>Niveau : <?php echo $donnees['level']; ?>
    <br>Exp : <?php echo $donnees['exp']; ?>
    <br>Yang : <?php echo $donnees['gold']; ?>
    <br>IP du compte : <?php echo $donnees['ip']; ?>
    <br>Derniere connexion : <?php echo $donnees['last_play']; ?>
    <br>Cheval level : <?php echo $donnees['horse_level']; ?>
    </p>
    <?php
    }
    ?>

    En espèrant que tu puisse m'aider encore une fois,

    Alucard.
    0
  20. arthezius Messages postés 3756 Statut Membre 475
     
    Je pense que le problème viens de là:
    $reponse = mysql_query("SELECT * FROM account, player"); // Requête SQL

    Tu lie deux tables mais sans vraiment faire de lien entre les deux.
    En gros, il retrouve pas ses petits.
    Je ne procède personnellement jamais ainsi, mais j'inserre une requète dans une autre.
    Par exemple (en repartant de ton exemple):
    $sql='SELECT * FROM player ORDER BY login ASC';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    while($data = mysql_fetch_array($req))
         {
         $sql='SELECT * FROM account WHERE login="'.$data['login'].'"';
         $req_mbr = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
         $data_mbr = mysql_fetch_array($req_mbr);
         
         echo'...';
         }


    Un exemple simple.
    La seconde requête sera réactualisé pour chaque membre et t'affichera les données de chaque membre au fur et à mesure que la première requête te fera ta liste de membre.
    J'espère que ça pourra t'aider.
    0
  • 1
  • 2