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 :

Actualiser la page et exécuter un script php externe


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut Actualiser la page et exécuter un script php externe
    Bonjour,

    J’ai un fichier php, qui récupère via une requête des données et les affiche dans un tableau, pour la dernière colonne il y a une autre requête pour la remplir, et pour insérer ces données avant ça dans la base de données, il y a un autre fichier PHP qui doit s’exécuter.
    Donc ce que je voudrai faire c’est de rendre cette colonne « cachée » et de rajouter un lien ou un bouton qui va en même temps exécuter le fichier PHP pour mettre à jour les données, et afficher les lignes cachées avec les données récupérées.sinon juste exécuter le script et rafraîchir la page.
    Pour l’instant je ne sais pas exactement si c’est faisable, donc j’attends vos idées et conseils pour choisir la meilleure façon de le faire.
    J'ai entendu parler de CGI en php,mais j'ai jamais utilisé je ne sais pas comment s'utilise est ce que quelqu'un peut m'aider là-dessus
    merci d'avance

  2. #2
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    J'ai pourtant eu mon café ce matin et tout mais la j'ai rien compris.

    Tu a plusieurs fichiers PHP que tu dois utiliser dans une page c'est sa?
    Tu les importe simplement avec require_once()?
    Ou est le soucis exactement?

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    je m'explique, j'ai ma page où j'affiche les données sous format tableau, je veux ajouter un lien qui à la fois exécute un deuxième fichier php( pour fournir à la BDD les infos pour la dernière colonne) et actualise la page courante. Voilà
    j’ai entendu parler du CGI en PHP mais je ne sais pas c’est quoi exactement

  4. #4
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Tu peux pas simplement importer ta page php et te servir des infos quand tu en a besoin?

    Dans l’idée créer ton tableau puis importer la page que s’exécutera comme sa au bon moment.

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    en fait,le script php est compliqué,il exécute une commande windows via le protocole zabbix puis il enregistre le résultat dans la base de données mysql,et c'est ce résultat que j'affiche dans la colonne de mon tableau avec actualisation,à ton avis c'est possible cela sans passer par CGI? merci

  6. #6
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Comme dit tu l'importe dans ta page a l'endroit (moment du deroulement de ton script ou tu en a besoin) qui va bien.

    Pense simplement a donner un return a la fin de ta fonction php pour recuperer facilement le resultat a afficher.

    Tout ton traitement est dans ta fonction php et tu l'appele comme sa:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mon_resultat_a_afficher=mafonction();
    Ensuite tu aura plus qu'a afficher $mon_resultat_a_afficher dans ton tableau.

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    merci,mais je n'ai pas une fonction, c'est un script php avec des commandes et des boucles donc je vois pas comment insérer un return,et le truc d'importer le fichier dans un endroit précis je l'ai pas compris!

  8. #8
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    tu mets don script PHP dans une fonction dans ta page.

    Ensuite je suppose que le script doit être exécuté a un moment T du déroulement de tes traitements (après un insertt particulier par exemple).
    Il te suffit alors
    1 de faire un required once de ta page PHP ou se trouve ton script mis dans une fonction avec return.
    2 d'appeler la dite fonction avec un $mon_resultat_a_afficher=mafonction();

    La valeur retourné sera stoqué dans ta variable $mon_resultat_a_afficher et il te suffira de le display dans ton tableau.

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    j'ai essayé de mettre tout le code dans une fonction mais ça marche pas,et en plus je n'ai pas de valeur de retour,puisque à la fin de mon script il enregistre des lignes dans une table,y a pas une autre méthode à faire

  10. #10
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    sinon tu peux le faire en redirigeant vers ta page de traitement avec un header en y transférant les données que tu dois récupérer a la fin et après le traitement tu redirige vers un page ou tu affiche ton tableau.

    Les infos peuvent être transmis par le lien
    (<a href='http://monsite.com/index.php?variable=".$variable." '>libelle</a>)
    ou par un formulaire caché.

  11. #11
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    mais l'include me parait quand même plus simple.

    Même sans fonction. quand tu inclus une page c'est comme si le traitement ecrit dedans étaient directement écrit dans ta page dans la quelle tu inclus.
    De plus tu a directement accès a ses variables (pour ton tableau).

  12. #12
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    voilà mon script que je veux exécuter sur click sur un lien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo '<td bgcolor="#A2B5BF"><center><b><u><a href = "script2.php"> Liste des utilisateurs </a></u></b></center></td>';
    le script :
    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
     
    $req = "SELECT id_pc_spooler,IP FROM dtinv_pc_spoolers WHERE scan_process='1' ";
     
    	//$dataset = mysql_query($req);
    	$result = mysql_query($req) or die($req."<br />\n".mysql_error());
    	$total  = mysql_num_rows($result);
    if($total) 
    { 		
    		$rqt = "SELECT id_pc_spooler, PID FROM `dtinv_liste_taches` ";
    		$rslt = mysql_query($rqt,$conn) or die ('Erreur : '.mysql_error() );
    		if(mysql_num_rows($rslt) > 0)
    		{
    			$del = "DELETE FROM dtinv_liste_taches";			
    			$dataset = mysql_query($del) or die($del.mysql_error());
    		}	
    	while($row = mysql_fetch_array($result)) 
    	{
    		$ip = $row['IP'];
    		$id_pc = $row['id_pc_spooler'];
     
    		$cmd = 'zabbix_get -s '.$ip.' -k "tasklist" >task.csv';			
    		$output='';
    		exec($cmd, $output, $return_var);
     
     
     
    //manipulation de la chaine reçue sous format CSV
    	    $ligne = 1;       // compteur de ligne
    		$file = fopen("task.csv", "a+");
    		while($tab=fgetcsv($file,1024,','))
     
    		{
    			$champs = count($tab);		//nombre de champ dans la ligne en question 
    			//echo "Les " . $champs . " champs de la ligne " . $ligne . " sont :\n";
    			$ligne ++;
    //affichage de chaque champ de la ligne en question
    			for($i=0; $i<$champs; $i ++)
    			{
    				echo $tab[$i] . "\n";
    			}
     //Si le processus n'est pas lancé, on empêche le programme de continuer à exécuter la requête, sinon il retournera une erreur			
    			if(substr(implode($tab),0,1)!='S') 
    			{
    				echo "Aucun processus StreamXpress n'est lancé \n";
    			}
    			else 
    			{	
    				$col1 = $tab[1];
    				$col2 = $tab[6];
    				//$col3 = $tab[8];
    				$user = substr($col2,9,8);
    				$nom = ad_search_user($ds, $user, $ad_basedn);
     
    				$req_d = "INSERT INTO dtinv_liste_taches VALUES (DEFAULT,".$id_pc.",NOW(),".$col1.",'".mysql_escape_string($nom)."','".mysql_escape_string($col2)."')";			
    				$dataset = mysql_query($req_d) or die($req_d.mysql_error());
    				if($dataset)
    				{
    					echo("Données Insérées avec succès\n") ;
    				}
    				else
    				{
    					echo("L'opération a échouée") ;
    				}
    			}
     
     
    		}
     
    	}	
    }
    je veux quand je click sur le lien ci-dessus exécuter le script2 et actualiser la page courante où se trouve le tableau et le lien

  13. #13
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    donc ton lien plus tôt comme sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td bgcolor="#A2B5BF"><center><b><u><a href = "script2.php?mesvar='.$mavariable.'"> Liste des utilisateurs </a></u></b></center></td>';
    dans $mavariable tu stoque ce que tu a besoin pour l'affichage de ton tableau.
    tu recupere avec un get sur la page ou il y a ton script.

    A la fin de ton script tu fais une redirection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<script>document.location.href=\"mapage.php?mavariable=".$mavariable&mavariable2=".$mavariable2."."\"</script>";
    dans $mavariable2 tu stocke le résultat de ton script que tu veux afficher dans ton tableau en plus des premiers résultats transmis pas le premier lien ($mavariable)

  14. #14
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    Le deuxième code il faut l'écrire dans le script appelé ou dans la page d'affichage?

  15. #15
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    le premier dans la page qui appel et le deuxième dans le script appelé.

  16. #16
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    en fait il renvoit erreur au niveau du deuxième

  17. #17
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    tu dois évidement remplacer $mavariable2 par ta vrai variable et ça se mets tout a la fin de ton script.

  18. #18
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    offfffffff,c'est compliqué parce que comme je t'ai dit je n'ai pas une valeur retournée à la fin de mon script,c'est un insert into uneTable que je fais tout à la fin du script.fin laisse tomber je pense pas que cette méthode va aboutir à quelque chose merci en tout cas

  19. #19
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Tu m'a dit que ton script enregistre quelque chose dans la base de données et que c'est ça que tu veux mettre dans ton tableau.
    Et bin voila ta variable a transmettre dans le lien est tout trouvé

  20. #20
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    c'est dans une boucle et c'est plusieurs variables et plusieurs lignes(une ligne à chaque itération) et voilà la fin du mon script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    while(......)
    {
    .............................
    $req_d = "INSERT INTO dtinv_liste_taches VALUES (DEFAULT,".$id_pc.",NOW(),".$col1.",'".mysql_escape_string($nom)."','".mysql_escape_string($col2)."')";			
    				$dataset = mysql_query($req_d) or die($req_d.mysql_error());
    				if($dataset)
    				{
    					echo("Données Insérées avec succès\n") ;
    				}
    				else
    				{
    					echo("L'opération a échouée") ;
    				}

Discussions similaires

  1. Exécuter un script PHP sur la même page
    Par merex dans le forum Langage
    Réponses: 2
    Dernier message: 05/08/2011, 06h48
  2. [AJAX] XMLHTTPRequest => impossible d'exécuter tout script php
    Par AzertyH dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/11/2006, 20h01
  3. Réponses: 1
    Dernier message: 01/03/2006, 12h27
  4. Lire le contenu d'une page web grâce à un script PHP
    Par BloodyImp dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2005, 23h29
  5. [FLASH MX2004] Exécution de script PHP
    Par dleu dans le forum Flash
    Réponses: 2
    Dernier message: 30/03/2005, 20h10

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