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

Langage PHP Discussion :

[Système] Lien et fonction


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 189
    Points : 80
    Points
    80
    Par défaut [Système] Lien et fonction
    Bonjour,

    Quelqu'un serait me dire si il une methode ( en php ), pour faire pointer un lien vers une fonction ?
    du style :


    function commande() {
    if ......
    }

    <p><a href=commande target="mainFrame"><?php echo ($etat); ?></a> </p>

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Bonjour,
    Ta question n'a pas de sens.
    La notion de fonction PHP n'est comprise que par l'interpréteur PHP, en aucun cas par le protocole HTTP.

    Tu ne peux faire un lien que sur un script PHP.
    Par contre, tu peux passer un paramètre GET (avec un lien du genre "script.php?param=valeur"), le récupérer dans ton script avec $_GET, et appeler la fonction que tu veux en fonction de la valeur du paramètre.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 189
    Points : 80
    Points
    80
    Par défaut
    Arf, désolé je debut complet et j'ai un peu de mal

    En faite, voici ce que j'ai actuellement :

    - lien_1 qui pointe vers page1.php
    - lien_2 qui pointe vers page2.php

    page1.php contient simplement une commande exec ( qui allume une machine de mon réseau )
    page2.php contient simplement une commande exec ( qui éteint la même machine )

    Voila ce que je veux faire :

    Un seul lien qui me permettra d'allumer ou d'éteindre cette machine.

    Avec ci-dessous je test ci la machine est allumé ou pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ping = exec('ping 192.168.0.2 -c 1 -w 1');
    if ( $ping == "") {
    	$etat = "Slayes ON";
    	}
    else {
    	$etat = "Slayes OFF";
    	}
    ?>
    Et je cherche à mettre un lien comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><a href=XXXX target="mainFrame"><?php echo ($etat); ?></a> </p>

    Qui exécutera :
    soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec('etherwake -i eth2 00:15:f2:98:51:87');
    soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec('net -I 192.168.0.2 -U administrateur%xxxxx rpc shutdown');

    Et éventuellement pouvoir choisir avec une 3eme commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec('net -I 192.168.0.2 -U administrateur%xxxxx rpc abortshutdown');
    Mais pour celle-ci je verrais plus tard

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    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
    <?
    $ping = exec('ping 192.168.0.2 -c 1 -w 1');
     
    if($ping == ""){
       $etat = "Slayes ON";
    }
    else{
       $etat = "Slayes OFF";
    }
     
    if($_REQUEST['param'] == "1"){
       $n = 0;
       exec('net -I 192.168.0.2 -U administrateur%xxxxx rpc shutdown');
    }
    else{
       $n = 1;
       exec('etherwake -i eth2 00:15:f2:98:51:87');
    }
    ?>
     
    <a href="tapage.php?param=<?$n?>"><?=$etat?></a>
    Je pense que tu peux l'améliorer.

  5. #5
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Donc, que mettre à la place de XXX dans le lien ?
    tu as $etat qui vaut "Slayes ON" ou "Slayes OFF", c'est pas pratique parce qu'il y a un espace, autant éviter les emmerdes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($etat == "Slayes ON") {
      $paramEtat="ON";
    }
    else {
      $paramEtat="OFF";
    }
    ensuite pour le lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="page.php?etat=<?php echo $paramEtat; ?>" target="mainFrame"><?php echo ($etat); ?></a>
    ensuite dans page.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (isset($_GET["etat"]) {
      if ($_GET["etat"] == "ON") {
        // traitement qui va bien
      }
      elseif ($_GET["etat"] == "OFF") {
        // traitement qui va bien
      }
      else {
        echo "mais qu'est-ce que c'est que ce bordel ? Mauvais paramètre";
      }
    }
    Voilà... Si t'as compris le principe, tu te coucheras moins bête...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 189
    Points : 80
    Points
    80
    Par défaut
    Merci a vous 2 pour votre aide. Par contre cela me met un message d'erreur :

    Parse error: parse error, unexpected T_IF in /var/www/Slayesonoff.php on line 11

    Voici ce que j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $ping = exec('ping 192.168.0.1 -c 1 -w 1');
    if ( $ping == "") {
    	$etat = "Slayes ON";
    	$paramEtat="ON";
    	}
    else {
    	$etat = "Slayes OFF";
    	$paramEtat="OFF";
    	}
    ?>
    <p><a href="Slayesonoff.php?etat=<?php echo $paramEtat; ?>" target="mainFrame"><?php echo ($etat); ?></a>


    Et dans ma page Slayesonoff.php :

    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
    <? php
    if (isset($_GET["etat"]) {
      if ($_GET["etat"] == "ON") {
        // traitement qui va bien
    	exec('etherwake -i eth2 00:15:f2:98:51:87');
     
      }
      elseif ($_GET["etat"] == "OFF") {
        // traitement qui va bien
    	exec('net -I 192.168.0.2 -U administrateur%xxxx rpc shutdown');
      }
      else {
        echo "mais qu'est-ce que c'est que ce bordel ? Mauvais paramètre";
      }
    }
    ?>
    Ais je loupé quelque chose ?

  7. #7
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Slayes
    Ais je loupé quelque chose ?
    Pour ton erreur "unexpected T_IF", c'est ma faute, il manque une parenthèse fermante dans le premier "if".

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 189
    Points : 80
    Points
    80
    Par défaut
    Désolé de revenir à la charge, mais je rencontre toujours une erreur :
    Parse error: parse error in c:\documents and settings\administrateur\mes documents\site de test\slayesonoff.php on line 11

    J'ai fermé la parenthèse, sur google ça me dit que c'est un pb de syntaxe mais je voie pas ou.

    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
     
    <? php
    if (isset($_GET["etat"])) {
      if ($_GET["etat"] == "ON") {
        // traitement qui va bien
    	exec('etherwake -i eth2 00:15:f2:98:51:87');
     
      }
      elseif ($_GET["etat"] == "OFF") {
        // traitement qui va bien
    	exec('net -I 192.168.0.2 -U administrateur%xxx rpc shutdown');
      }
      else {
        echo "mais qu'est-ce que c'est que ce bordel ? Mauvais paramètre";
      }
    }
    ?>

  9. #9
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    C'est laquelle la ligne 11 ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 189
    Points : 80
    Points
    80
    Par défaut
    Pfff désolé j'ai du mal :

    J'avais tapé :
    <? php au lieu de <?php


    Encore merci pour votre aide

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

Discussions similaires

  1. [Système] lien entre 2 serveurs
    Par jeanfrancois dans le forum Langage
    Réponses: 5
    Dernier message: 03/04/2006, 14h20
  2. lien en fonction du mois
    Par aide03 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/03/2006, 21h44
  3. Réponses: 4
    Dernier message: 08/02/2006, 08h31
  4. [Système] Employer les fonctions systèmes ?
    Par Blo0d4x3 dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 31/12/2005, 14h32
  5. Réponses: 1
    Dernier message: 17/10/2005, 22h47

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