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

SGBD Perl Discussion :

Script Perl avec AGI


Sujet :

SGBD Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Par défaut Script Perl avec AGI
    Bon voilà j'ai un grand problème avec mon script perl dont voici:
    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
    #!/usr/bin/perl
    use strict;
    use DBI;
    use Asterisk::AGI;
    $AGI = new Asterisk::AGI;
    my %input = $AGI->ReadParse();
     
     
    $port="3306";
    my $login="root";
    my $pass="passer";
     
    my $dsn = "dbi:mysql:database=note;host=localhost";
    my $dbh = DBI->connect($dsn,$login,$pass);
    #Pour récupérer le choix effectué par l’appelant
    my $code = $AGI->get_data("/var/lib/asterisk/sounds/fr/beep",100000000000,4);
     
     
    #Pour exécuter une requête SQL
    my $requete=" SELECT codeclasse FROM etudiant where codeserver='$code'";
    $st1 = $dbh->prepare($requete);
    $st1->execute();
    my $codeclasse=$st1->fetchrow_array;
    $st1->finish;
    Le problème c'est qu'il génère une erreur. comme s'il ne se connectais pas à la base de données. Je ne sais quoi faire j'ai crée une base de données note.sql toujours rien aidez moi je vous prie
    ça fait plus d'une semaine que je galère
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Par défaut
    Bonjour,

    Citation Envoyé par Halmir
    Le problème c'est qu'il génère une erreur. comme s'il ne se connectais pas à la base de données.
    Ce n'est pas très informatif si tu ne connais pas le message d'erreur.
    Pour cela utilise dans ton script les messages d'erreurs quand tu interagis avec ta base de données ($DBI::errstr, dbh->errstr(), sth->errstr() ;
    Exemple sur ton code:
    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
     
    #!/usr/bin/perl
    use strict;
    use DBI;
    use Asterisk::AGI;
    $AGI = new Asterisk::AGI;
    my %input = $AGI->ReadParse();
     
     
    $port="3306";
    my $login="root";
    my $pass="passer";
     
    my $dsn = "dbi:mysql:database=note;host=localhost";
    my $dbh = DBI->connect($dsn,$login,$pass) or die "$DBI::errstr\n" ;
    #Pour récupérer le choix effectué par l’appelant
    my $code = $AGI->get_data("/var/lib/asterisk/sounds/fr/beep",100000000000,4);
     
     
    #Pour exécuter une requête SQL
    my $requete=" SELECT codeclasse FROM etudiant where codeserver='$code'";
    my $st1 = $dbh->prepare($requete) or die "$dbh->errstr()\n";
    $st1->execute() or die "$st1->errstr()\n" ;
    my $codeclasse=$st1->fetchrow_array or die "$st1->errstr()\n";
    $st1->finish;
    Tu verras mieux si quelque chose se passe mal.

  3. #3
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Par défaut Merci
    Merci beaucoup pour la reponse je vais le tester. C'est vraiment gentil.
    J'ai une seconde question à poser existe t-il une fonction en perl comme "strlen" en php car je voulais vérifier si ce dont l'appelant saisie est bel et bien 4 chiffres

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    l'équivalent perl est length.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $chaine = "Halmir";
    my $longueur = length $chaine;
    print $longueur;
    Il retourne 6.

  5. #5
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Par défaut
    Merci beaucoup Djibril, donc je crois que si je fais un truc de ce genre
    //Vérifie si la taille de la chaine saisie est bel et bien quatre (comme ce qui figure dans la base de données)
    if (length($code)==4)
    {
    .....
    }
    else
    {
    print "Erreur";
    }

    Es ce que cela pourrais marcher?

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    oui

Discussions similaires

  1. tester un script PERL avec IIS 6.0
    Par zalalus dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 13/08/2009, 14h43
  2. Problème script perl avec STDIN
    Par deimosfr dans le forum Langage
    Réponses: 2
    Dernier message: 23/07/2009, 10h22
  3. Appel script Perl avec arguments
    Par metalcoyote dans le forum Général Java
    Réponses: 5
    Dernier message: 12/06/2008, 16h33
  4. [Système] Lancer un script perl avec PHP
    Par pepite dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2006, 12h30
  5. Réponses: 6
    Dernier message: 23/05/2005, 08h33

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