executer un script php et recharger la page

Le
Hugolino
Salut,

J'ai besoin qu'un lien (fabriqué par un include('script_A.php') d'une
page html exécute un autre script php (appelons-le 'script_B.php) puis
qu'il recharge la page qui contenait le lien.
Comment faire ça en PHP seulement ?

S'il faut un bout de javascript, merci d'être assez didactique, je n'y
connais rien.

Merci à vous


--
Concours de bit entre linuxiens : hcgvzr
Hugo (né il y a 1 371 842 820 secondes)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Carbo
Le #22090241
Hugolino wrote:
Salut,

J'ai besoin qu'un lien (fabriqué par un include('script_A.php') d'une
page html exécute un autre script php (appelons-le 'script_B.php) puis
qu'il recharge la page qui contenait le lien.
Comment faire ça en PHP seulement ?

S'il faut un bout de javascript, merci d'être assez didactique, je n'y
connais rien.

Merci à vous






il faut une redirection à la fin de script_B.php vers la page concernée:
voir les fonctions header("Localisation: url_de_la_page");
attention, ceci implique que le serveur n'a rien envoyé précédemment.
pour cela, la balise <?php *doit* être la première chose rencontrée sur
script_B.php (aucun caractère avant!)

--
Olivier Miakinen
Le #22090221
Le 15/10/2007 10:33, Carbo a écrit :

J'ai besoin qu'un lien (fabriqué par un include('script_A.php') d'une
page html exécute un autre script php (appelons-le 'script_B.php) puis
qu'il recharge la page qui contenait le lien.
Comment faire ça en PHP seulement ?



il faut une redirection à la fin de script_B.php vers la page concernée:
voir les fonctions header("Localisation: url_de_la_page");



C'est une possibilité. Attention, le nom de l'entête est « Location » et
il faut que l'URL soit absolue ("http://serveur/chemin/page") et non
relative ("./page").

attention, ceci implique que le serveur n'a rien envoyé précédemment.
pour cela, la balise <?php *doit* être la première chose rencontrée sur
script_B.php (aucun caractère avant!)



Oui. Il faut aussi, si la page est en UTF-8, qu'elle soit enregistrée
sans « BOM ».

Mais si script_B.php n'affiche rien (ce qui est obligatoire pour que le
header() fonctionne), tu peux très bien te contenter d'inclure script_A,
le principal inconvénient (si c'en est un) étant que l'URL est celle de
script_B. Inversement, si script_B affiche des choses, tu peux mettre un
élément META dans les entêtes pour déclencher une redirection au bout de
X secondes.
Olivier Miakinen
Le #22090211
Le 15/10/2007 12:00, je répondais à Carbo :

[...] tu peux [...]



Bien entendu, ces derniers conseils s'adressaient non pas à Carbo, mais
à l'auteur initial, Hugolino.
Hugolino
Le #22090201
Le Mon, 15 Oct 2007 10:33:27 +0200, Carbo a écrit:
Hugolino wrote:
> Salut,
>
> J'ai besoin qu'un lien (fabriqué par un include('script_A.php') d'une
> page html exécute un autre script php (appelons-le 'script_B.php) puis
> qu'il recharge la page qui contenait le lien.
> Comment faire ça en PHP seulement ?

il faut une redirection à la fin de script_B.php vers la page concernée:
voir les fonctions header("Localisation: url_de_la_page");



J'ai pataugé pendant une heure, car j'avais une erreur avec
http_redirect() et google n'a pas été copain avec moi:

Si je clique sur le lien fabriqué par script_A et affiché par
l'index.php du dossier /moto (index.php que je voudrais voir recharger),
ma commande_bash_pour_tester est bien exécutée, mais une page d'erreur
est affichée:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
+++http://deb/moto/+++
Fatal error: Call to undefined function http_redirect() in
/var/www/some_path/script_B.php on line 5
8<-----------8<---------8<----------8<----------8<----------8<----------8<

Pourquoi cette erreur ? un problème de config php ?

attention, ceci implique que le serveur n'a rien envoyé précédemment.
pour cela, la balise <?php *doit* être la première chose rencontrée sur
script_B.php (aucun caractère avant!)



Quand j'ai essayé header("Location: $Page_Origine");, j'ai compris ce
que tu voulais dire, car j'ai un beau "warning: Cannot modify header
information" - headers already sent by...
J'avais bêtement laissé un echo de debug dans la sortie de mon script_B.


Merci de ton aide.

--
A woman, without her man, is nothing.
A woman: without her, man is nothing.
Hugo (né il y a 1 371 855 712 secondes)
Olivier Miakinen
Le #22090191
Le 15/10/2007 14:05, Hugolino a écrit :

8<-----------8<---------8<----------8<----------8<----------8<----------8<
+++http://deb/moto/+++
Fatal error: Call to undefined function http_redirect() in
/var/www/some_path/script_B.php on line 5
8<-----------8<---------8<----------8<----------8<----------8<----------8<

Pourquoi cette erreur ? un problème de config php ?



Un problème de version de PHP ?

La classe HttpResponse nécessite au moins PHP 5.1. Toutes les autres
classes sont disponibles depuis PHP 5.0.

Note que tes questions seraient plus en charte dans fr.comp.lang.php.
Hugolino
Le #22090181
Le Mon, 15 Oct 2007 15:53:25 +0200, Olivier Miakinen a écrit:
Le 15/10/2007 14:05, Hugolino a écrit :
>
> 8<-----------8<---------8<----------8<----------8<----------8<----------8<
> +++http://deb/moto/+++
> Fatal error: Call to undefined function http_redirect() in
> /var/www/some_path/script_B.php on line 5
> 8<-----------8<---------8<----------8<----------8<----------8<----------8<
>
> Pourquoi cette erreur ? un problème de config php ?

Un problème de version de PHP ?



J'utilise PHP5 sur une Ubuntu Edgy Eft 6.10 avec apache2:

~ $ apt-cache policy php5
php5:
Installé : 5.1.6-1ubuntu2.6
Candidat : 5.1.6-1ubuntu2.6

~ $ php5 -v
PHP 5.1.6 (cli) (built: Jul 17 2007 17:52:03)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

~ $ apt-cache policy apache2
apache2:
Installé : 2.0.55-4ubuntu4.1
Candidat : 2.0.55-4ubuntu4.1

~ $ apache2 -v
Server version: Apache/2.0.55
Server built: Aug 16 2007 22:41:15

Plus d'info : Sur la machine Cassis sous Debian Etch qui répondra peut-être, les
versions utilisées sont encore plus récentes, mais l'erreur est la même.

La classe HttpResponse nécessite au moins PHP 5.1. Toutes les autres
classes sont disponibles depuis PHP 5.0.

Note que tes questions seraient plus en charte dans fr.comp.lang.php.



Oui, mes excuses, j'ai d'ailleurs fouillé les archives du groupe, pas
très longtemps le mot même 'http_redirect()' est introuvable.

x-post et fu2 sur fclp

--
Pas de panique ! Stabiliser le proto-moulinotron trans-parabolique ne nous
empêche pas de micro-inverser le signal binaire ni même de néo-diminuer
l'extra-multiplexeur nucléo-adaptatif.
Hugo (né il y a 1 371 902 722 secondes)
Publicité
Poster une réponse
Anonyme