IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Problème lors de l'exécution de mon script


Sujet :

Windows

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juin 2005
    Messages : 74
    Points : 52
    Points
    52
    Par défaut Problème lors de l'exécution de mon script
    Bonjour,

    Tout d'abord, désolé si ce n'est pas la bonne section, mais cela concerne php/batch/windows/pdo...Donc j'ai dû faire un choix que j'espère être le bon.

    J'utilise wamp afin de faire tourner plusieurs sites, et, afin de satisfaire les besoin de ma guilde, j'ai créé un petit script qui met à jour leur profil automatiquement à partir des information d'un jeu en ligne.
    J'avais donc automatiser l'exécution de ce script php et tout allait pour le mieux.
    Le problème, c'est que pour une raison que j'ignore, le script ne s'exécute plus lorsque je le lance avec le bat créé à cet effet.
    Le batch contient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    @echo ---------------------------------------------------------------------
    @echo Maj des artisans en fonction du ladder
    @echo ---------------------------------------------------------------------
    @echo.
    @echo.
    D:\wamp\bin\php\php5.2.14\php.exe d:\wamp\apps\majladder\ladder.php >> d:\wamp\logs\majladder.log
    @echo.
    @echo.
    et le script cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <?php
    
    @set_time_limit(0);
    $db_host = '127.0.0.1';
    $db_name = 'nomdelabase';
    $port = '3306';
    $db_username = 'nomdelutilisateur';
    $db_password = 'motdepasse';
    $db_prefix = '';
    
    // Connexion à la base de données
    try
    {
        $bdd = new PDO('mysql:host='.$db_host.';port='.$port.';dbname='.$db_name, $db_username, $db_password);
    }
    catch(Exception $e)
    {
            echo 'Erreur : '.$e->getMessage().'<br />';
            echo 'N° : '.$e->getCode();
    }
    
    /***********************************************************************\
     Fonctions ladder
    \***********************************************************************/
    
    function getniveau($lvl)
    {
        $xp = array(0,0,50,140,271,441,653,905,1199,1543,1911,2330,2792,3840,4439,5078,5762,6493,7280,8097,8980,9898,10875,11903,12985,14122,15315,16564,17873,19242,20672,22166,23726,25353,27048,28815,30656,32572,34566,36641,38800,41044,43378,45804,48325,50946,53669,56498,59437,62491,65664,68960,72385,75385,79640,83482,87475,91624,95937,100421,105082,109930,114971,120215,125215,131348,137256,143407,149811,156481,163429,170669,178214,186080,194283,202839,211765,221082,230808,240964,251574,262660,274248,286364,299037,312297,326175,340705,355924,371870,388582,406106,424486,443772,464016,485274,507604,531071,555741,581687);
        if ($lvl >= 581687)
        {
            return 100;
            break;
        }
        foreach($xp as $cle => $valeur)
        {
            if ($lvl < $valeur)
            {
                return $cle;
                break;
            }
        }
    }
    
    function getfromladder($name)
    {
        $serveur = 17; // Hyrkul
        $data = array('na' => $name, 'hs' => $serveur);
        $context = stream_context_create(array(
            'http' => array(
                'method' => 'POST',
                'header' => "Content-type: application/x-www-form-urlencoded",
                'content' => http_build_query($data),
                'timeout' => 5
                )
            ));
        $persos = json_decode(@file_get_contents('http://www.dofus.com/requests/ladder_versus', false, $context));
        if ($persos == false)
        {
            return false;
            break;
        }
        foreach($persos as $perso)
        {
            $serveurId = $perso->hs; 
            if($serveurId == $serveur)
            {
                return $perso;
                break;
            }
        }
    };
    
    function convert($tab)
    {
        $jobs = array('28'=>'paysan','25'=>'boulanger','2'=>'bucheron','24'=>'mineur','41'=>'chasseur','56'=>'boucher','36'=>'pecheur','58'=>'poissonnier','26'=>'alchimiste','65'=>'bricoleur','16'=>'bijoutier','63'=>'joaillomage','15'=>'cordonnier','62'=>'cordomage','27'=>'tailleur','64'=>'costumage','18'=>'sculpteur de batons','50'=>'sculptemage de baton','13'=>'sculpteur d'arc','48'=>'sculptemage d'arc','19'=>'sculpteur de baguettes','49'=>'sculptemage de baguettes','11'=>'forgeur d'epee','44'=>'forgemage d'&eacute;p&eacute;e','14'=>'forgeur de marteau','45'=>'forgemage de marteau','17'=>'forgeur de dague','43'=>'forgemage de dague','20'=>'forgeur de pelle','46'=>'forgemage de pelle','31'=>'forgeur de hache','47'=>'forgemage de hache','60'=>'forgeur de bouclier');
        $tableau = array();
        for ($i = 1; $i <=6; $i++)
        {
            $metier = $tab->{j.$i.i};
            $niveau = $tab->{j.$i.l};
            if (empty($jobs[$metier]))
            {
                break;
            }
            else
            {
                $tableau[$jobs[$metier]] = getniveau($niveau);
            }
        }
        return $tableau;
    }
    
    $today = date("d-m-Y H:i:s");
    echo "Mise à jour des artisans à partir du ladder ($today) :\n";
    
    // Mise à jour de la liste des artisans par le ladder
    $requete = "SELECT sid,n_perso,metier,lvl_metier FROM ".$db->prefix."craft ";
    $reponse = $bdd->query($requete);
    while ($donnees = $reponse->fetch())
    {
        $tab = convert(getfromladder($donnees['n_perso']));
        if (!empty($tab[$donnees['metier']]) AND $tab[$donnees['metier']] > $donnees['lvl_metier'] AND !empty($tab))
        {
            $req = $bdd->prepare("UPDATE ".$db->prefix."craft SET lvl_metier=:lvl_metier WHERE sid=:sid");
            $req->execute(array('lvl_metier' => $tab[$donnees['metier']],'sid' => $donnees['sid']));
            $req->closeCursor();
            echo "  -Mise à jour de ".$donnees['n_perso'].", ".$donnees['metier']." : ".$donnees['lvl_metier']." > ".$tab[$donnees['metier']]."\n";
        }
    }
    $reponse->closeCursor();
    echo "\n";
    ?>
    Lorsque je lance le batch, il me mets uniquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mise à jour des artisans à partir du ladder (26-09-2010 09:00:00) :
    Alors que si j'exécute le même script via un navigateur web, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Mise à jour des artisans à partir du ladder (26-09-2010 09:00:00) :
      -Mise à jour de zabidoche, tailleur : 98 > 100
    J'avoue ne pas comprendre pourquoi.
    Pourriez-vous m'éclairer ?

  2. #2
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juin 2005
    Messages : 74
    Points : 52
    Points
    52
    Par défaut
    Avec l'aide d'un ami chez qui tout marchait nickel, nous avons trouvé que c'était l'absence de libmysql.dll dans le répertoire php qui était la cause du problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème lors de l'exécution de mon programme
    Par salma1990 dans le forum C++
    Réponses: 4
    Dernier message: 23/04/2013, 19h16
  2. Problème lors de l'exécution de mon script en PL SQL
    Par peregna2007 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 21/06/2010, 22h48
  3. [MySQL] problème lors de l'exécution de mon script php concernat la création d'un forum
    Par safadkhi dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/06/2009, 13h44
  4. problème lors de l'exécution de mon .jar
    Par Bruninhoo dans le forum Général Java
    Réponses: 15
    Dernier message: 07/01/2009, 13h02
  5. Problème lors de la transformation de mon "algorithm&qu
    Par prunodagen dans le forum Langage SQL
    Réponses: 8
    Dernier message: 27/04/2005, 21h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo