Utiliser le nom de compte d’un utilisateur dans un script php. (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 17)
  • Auteur
    Messages
  • #498741
    iTeush
    Membre
    Initié WordPress
    15 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.2.1
    – Version de PHP/MySQL : php: 5.1.41 mysql: 5.5.15
    – Thème utilisé : boldy
    – Extensions en place : akismet, bbpress, bbpressintegration, exec-php, hello dolly, smart youtube, wp-mail-smtp
    – Nom de l’hebergeur : myriapulse
    – Adresse du site : http://minesword.myriapulse.com/

    Problème(s) rencontré(s) : Je souhaite utiliser le nom de compte de l’utilisateur dans un script php
    J’utilise donc ce code::

    <?php
    if(isset($_GET['data']) AND $_GET['data'] == 'true'){
    //Reportage erreures php
    error_reporting(E_ALL);
    //Infos Database
    $dbhost = '****';
    $dbuser = '****';
    $dbpass = '*****';
    $dbname = '******';
    $dbtable = 'iConomy';
    //Connexion à la base
    $conn = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Error: ' . mysql_error());
    mysql_select_db($dbname) or die(mysql_error()) ;
    $query = "SELECT * FROM iConomy WHERE username='"$_SESSION['id']"'";
    $result = mysql_query($query, $conn) or die($query . " - " . mysql_error());
    $row = mysql_fetch_row($result);
    mysql_query("UPDATE iConomy SET balance=balance+500 WHERE id=".$row[0]);
    //Déconnexion
    mysql_close();
    echo '<script language="Javascript">
    <!--
    document.location.replace("http://minesword.myriapulse.com");
    // -->
    </script>‘;
    }else{
    echo « Tricheur »;
    }
    ?>

    Le problème c’est que quand je l’exécute j’obtiens ce message d’erreur « Parse error: syntax error, unexpected T_VARIABLE in /var/www/site/minesword.myriapulse.com/allopo.php on line 14« .
    Que dois-je mettre à la place de

    username=' »$_SESSION[‘id’] »‘ »;

    pour que l’username soit celui du membre du site ?
    Merci d’avance 🙂

    #788621
    Guy
    Participant
    Maître WordPress
    14817 contributions

    mettre

    $query = « SELECT * FROM iConomy WHERE username=' » . $_SESSION[‘id’] . « ‘ »;

    #788622
    natchoum
    Membre
    Chevalier WordPress
    162 contributions

    Oo je viens de voir un truc qui pourrait m’aider, les infos de connexion pour savoir si on est loggé sont donc dirrectement à la racine du $_SESSION :D

    #788620
    Guy
    Participant
    Maître WordPress
    14817 contributions

    je ne suis pas certain que WordPress mette les infos de connexion dans une variable de session, il est possible que cela ait été fait pour les besoins particuliers de ce script.

    #788623
    natchoum
    Membre
    Chevalier WordPress
    162 contributions

    Effectivement wordpress n’aime pas les session … Elle ne sont utilisable que dans les plugins. du coup je me demande dans comment wp arrive il à savoir si on est co ou non ?

    #788624
    iTeush
    Membre
    Initié WordPress
    15 contributions

    Quand je met ce que tu m’as dit Guy ça me fait:

    Notice: Undefined variable: _SESSION in /var/www/site/minesword.myriapulse.com/allopo.php on line 14

    😕

    #788625
    Guy
    Participant
    Maître WordPress
    14817 contributions

    tu as fait un session_start() en début de fichier?

    #788626
    iTeush
    Membre
    Initié WordPress
    15 contributions

    Voici mon code:

    <?php
    session_start();
    if(isset($_GET['data']) AND $_GET['data'] == 'true'){
    //Reportage erreures php
    error_reporting(E_ALL);
    //Infos Database
    $dbhost = '******';
    $dbuser = '******';
    $dbpass = '*******';
    $dbname = '*******';
    $dbtable = 'iConomy';
    //Connexion à la base
    $conn = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Error: ' . mysql_error());
    mysql_select_db($dbname) or die(mysql_error()) ;
    $query = "SELECT * FROM iConomy WHERE username='" . $_SESSION['id'] . "'";
    $result = mysql_query($query, $conn) or die($query . " – " . mysql_error());
    $row = mysql_fetch_row($result);
    mysql_query("UPDATE iConomy SET balance=balance+500 WHERE id=".$row[0]);
    //Déconnexion
    mysql_close();
    echo '
    <!--
    document.location.replace("http://minesword.myriapulse.com");
    // -->
    ‘;
    }else{
    echo « Tricheur »;
    }
    ?>

    J’avais oublié de le mettre mais maintenant ça m’affiche:

    Notice: Undefined index: id in /var/www/site/minesword.myriapulse.com/allopo.php on line 15

    #788627
    Guy
    Participant
    Maître WordPress
    14817 contributions

    ben…. c’est toi qui avait mis id 🙂

    Je ne sais pas ce qu’il y a dans $_SESSION, c’est toi qui le remplis j’ai aucun moyen de le savoir

    #788628
    iTeush
    Membre
    Initié WordPress
    15 contributions

    Comment faire donc pour que username soit le nom de compte wordpress du type qui utilise la page ? 😕

    #788629
    Guy
    Participant
    Maître WordPress
    14817 contributions

    ah, je pensais que tu l’avais déja mis dans ta variable de session

    if(is_user_logged_in())
    {
    global $current_user;
    get_currentuserinfo();

    echo ‘Username: ‘ . $current_user->user_login . « n »;
    echo ‘User email: ‘ . $current_user->user_email . « n »;
    echo ‘User first name: ‘ . $current_user->user_firstname . « n »;
    echo ‘User last name: ‘ . $current_user->user_lastname . « n »;
    echo ‘User display name: ‘ . $current_user->display_name . « n »;
    echo ‘User ID: ‘ . $current_user->ID . « n »;
    }

    #788630
    iTeush
    Membre
    Initié WordPress
    15 contributions
    Fatal error: Call to undefined function is_user_logged_in() in /var/www/site/minesword.myriapulse.com/allopo.php on line 3

    J’ai collé ce que tu m’as donné au début du script, je dois le mettre où stp ? :boulet:

    #788631
    Guy
    Participant
    Maître WordPress
    14817 contributions

    il faut inclure les fonctions php, c’est à dire inclure wp-load.php avant d’appeler les fonctions de WordPress.

    #788632
    iTeush
    Membre
    Initié WordPress
    15 contributions

    J’ai plutôt utilisé un système de formulaire pour allopass ou l’utilisateur entre son pseudo et le code allopass. Dans une page on a:

    <form name="APform" action="http://payment.allopass.com/acte/access.apu" method="post" style="text-align:center;clear:both">
    <!-- J'y ai mis mon ids -->
    <!-- J'y ai mis mon idd -->




    </form>

    Et sur la page où ça envoie (allopo.php):

    <?php
    if(isset($_GET['data']) AND $_GET['data'] == 'true'){
    //Reportage erreures php
    error_reporting(E_ALL);
    //Infos Database
    $dbhost = '****';
    $dbuser = '*******';
    $dbpass = '*****';
    $dbname = '*******';
    $dbtable = 'iConomy';
    //Connexion à la base
    $conn = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Error: ' . mysql_error());
    mysql_select_db($dbname) or die(mysql_error()) ;
    $player = $_POST['Pseudo'];
    $query = "SELECT * FROM iConomy WHERE username='".$player."'";
    $result = mysql_query($query, $conn) or die($query . " – " . mysql_error());
    $row = mysql_fetch_row($result);
    mysql_query("UPDATE iConomy SET balance=balance+500 WHERE id=".$row[0]);
    //Déconnexion
    mysql_close();
    echo '
    <!--
    document.location.replace("http://minesword.myriapulse.com");
    // -->
    ‘;
    }else{
    echo « Tricheur »;
    }
    ?>

    Le problème c’est que sur allopo.php j’obtiens:

    Notice: Undefined index: Pseudo in /var/www/site/minesword.myriapulse.com/allopo.php on line 12

    Comment corriger ça ?
    Merci d’avance . 🙂

    #788633
    Guy
    Participant
    Maître WordPress
    14817 contributions

    faut voir avec allopass ce qu’ils renvoient comme valeur (si ils en renvoient) et sous quelle forme

15 sujets de 1 à 15 (sur un total de 17)
  • Vous devez être connecté pour répondre à ce sujet.