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

Shell et commandes GNU Discussion :

Envoyer chaque ligne Script.cgi dans la base de donnée SQL


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Par défaut Envoyer chaque ligne Script.cgi dans la base de donnée SQL
    Bonjour,

    Voila, actuellement en 2eme année de BTS IRIS, j'ai un Projet BTS à réaliser, et je bloque sur un endroit =X

    Code cgi : 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
    #!/bin/bash
     
    # Suppression du fichier temporaire
     
    if [ -f /var/www/ProjetBTS1/recuptest.php ] 
    then sudo rm /var/www/ProjetBTS1/recuptest.php
    fi
    if [ -f /var/www/ProjetBTS1/recupfinish.php ]
    then sudo rm /var/www/ProjetBTS1/recupfinish.php
    fi
     
     
    sudo nmap -sP 192.168.0.0/24 > /var/www/ProjetBTS1/recuptest.php
    grep '^[MAC]' /var/www/ProjetBTS1/recuptest.php | cut -c 14-31 > /var/www/ProjetBTS1/recupfinish.php
     
     
    cat /var/www/ProjetBTS1/recupfinish.php | while read line
    do
    do (
    echo "INSERT INTO Info_PC_IRIS (Adresse_Mac)VALUES ('$line')" | mysql --user=root --password=****** Projet)
    done

    http://localhost/phpmyadmin/Projet/

    Au debut je recupere ca :

    Host Max-PC.iris (192.168.0.10) appears to be up.
    MAC Address: 00xxxxx (Unknown)

    Aprés je fais en sorte d'affichere que les ligne contenant 00:, ca m'affiche ca :

    MAC Address: 00xxxxx (Unknown)

    Puis je lui demande de couper les caractere et de garder seulement du 14eme au 32 eme et j'obtient ca dans le fichier recupfinish.php ou .txt si je veux, enfin qu'importe :

    00xxxxx
    00xxxxx
    etc

    Le souci, c'est que j'aimerais recuperer toute mes adresses mac dans une table .. :S

    J'avais essayé de le faire en php, mais j'arrivais a afficher dans ma table que la premiere adresse mac, la ligne 1 en faite.

    Donc je test en Shell .. mais je galere pour l'envoye vers la base de donnée, cette ligne en faite :
    (La aussi je recupere que la premiere ligne, aprés j'ai ca :

    ERROR 1062 (23000) at line 1: Duplicate entry '0' for key 1
    ERROR 1062 (23000) at line 1: Duplicate entry '0' for key 1
    ERROR 1062 (23000) at line 1: Duplicate entry '0' for key 1
    ERROR 1062 (23000) at line 1: Duplicate entry '0' for key 1

    Code cgi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    do (
    echo "INSERT INTO Info_PC_IRIS (Adresse_Mac)VALUES ('$line')" | mysql --user=root --password=****** Projet)
    done

    Comme en Shell je m'y connais pas trop, j'ai cherché sur internet sans trop de réussite, et comme ca fais 3j que je stagne et donc je ne peut pas avancer dans mon projet :s


    Voila, si vous voulez plus d'information, n'hesitez pas.

    Merci d'avoir pris la peine de lire mon post

    EDIT : Jai trouvé ce qui me faisais ****, c'était ma deuxieme table, je lui avais pas donné de valur :p

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    oublie les fichiers temporaires, et utilise donc un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MACs=($(sudo nmap -sP 192.168.0.0/24 | grep ^MAC | cut -c 14-31))
    for MAC in "${MACs[@]}"; do
    echo "INSERT INTO Info_PC_IRIS (Adresse_Mac)VALUES ('$MAC')" | mysql -u root -p****** Projet
    #ou
    #mysql -u root -p****** Projet -e "INSERT INTO Info_PC_IRIS (Adresse_Mac)VALUES('$MAC')"
    done
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Par défaut
    Merci de ta réponse N_Bah !

    Si je passais par des fichiers temporaire, c'est que lorsque je clic sur un bouton HTML, ca me lance ce script, et ca me met une page de confirmation si il voit le fichier: recupfinish.php, maiis j'avoue ta méthode est plus 'légéré' :o

    J'ai un petit souci dans le script, j'aimerais que si il y à deux fois la meme adresse_mac dans ma liste, ca me supprime l'ancienne et me rajoute la nouvelle :/

    Et un autre petit truc, je sais j'en demande beaucoup :S, c'est que la ligne 1, on lui attribue le numero 1, car dans ma table j'aimerais avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ______________________________________________
    Adresse_Mac       |   Nom_Du_PC   |   Ordre_PC
    __________________|___________ ___|____________
    00:0D:54:F7:4B:45 |  Max-PC       |   1
    etc               |   etc         |   etc
    __________________|_______________|___________
    Mais deja merci de l'aide

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Citation Envoyé par ElevedIRIS
    J'ai un petit souci dans le script, j'aimerais que si il y à deux fois la meme adresse_mac dans ma liste, ca me supprime l'ancienne et me rajoute la nouvelle :/
    UPDATE...
    ?
    Citation Envoyé par ElevedIRIS
    Et un autre petit truc, je sais j'en demande beaucoup :S, c'est que la ligne 1, on lui attribue le numero 1, car dans ma table j'aimerais avoir :
    dans la boucle for, et ta commande mysql, là où il faut, tu ajoutes un $((++n)), ce qui donnera le nombre d'itération de la boucle, donc le numéro de ligne traitée.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/06/2011, 00h23
  2. [MySQL] Vérifier si un ligne existe déjà dans la base de données avant l'insertion
    Par moukit233 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/08/2009, 12h35
  3. affichage dans div base de donnée sql infini (horizontalement) en css
    Par Overstone dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 07/08/2007, 14h03
  4. Réponses: 7
    Dernier message: 26/05/2007, 15h14
  5. rajouter des data dans une Base de donnée SQL
    Par el_pilacho dans le forum Accès aux données
    Réponses: 1
    Dernier message: 12/01/2007, 12h42

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