Existe-t-il une instruction PHP pour ne pas envoyer la page

superNono
Invité n'ayant pas de compte PHPfrance

13 sept. 2006, 15:34

Bonjour
Voici ma question :
J'aimerais à la fin de mon script PHP ne pas envoyer la page au navigateur.
Je n'ai d'ailleurs aucun code HTML dans cette page, tout ce que je souhaite faire c'est executer le code PHP et arreter la.

Existe-t-il à votre connaissance une instruction PHP pour cela ?

Merci d'avance de votre réponse

Nono !

ViPHP
ViPHP | 3607 Messages

13 sept. 2006, 15:36

Tu peux rediriger vers une autre page ... :-k
C'est pourquoi faire au juste ? parceque là je ne vois pas trop ce qu'on peu faire.
Sinon tu peux utiliser php en ligne de commande

superNono
Invité n'ayant pas de compte PHPfrance

13 sept. 2006, 15:42

Ce que je veux faire par exemple c'est écrire un fichier ( un fichier log par exemple ) et terminer la transaction.
Et la subtilité c'est que cette page est appelée par un lien hypertext à partir d'un autre serveur : la page appelante n'est pas du tout écrite en PHP....

merci

Nono

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 sept. 2006, 15:49

Si c'est un navigateur qui appelle ton script php, le serveur va innévitablement renvoyer une page html (il est payé pour ça ;)), mais si tu n'écris rien dedans, ça s'arrêtera là.

Tu peux terminer le code par un exit() si tu veux, mais cela n'aura pour effet que d'arrêter le code php et renoyer une page vide de données :)

Par contre ce que tu peux faire, c'est terminer par un header() pour rediriger l'internaute vers la page qui l'a appellé et éviter qu'il ne se retrouve sur une page vide.
L'autre solution c'est d'utiliser AJAX pour faire un appel au serveur de manière transparente pour l'utilisateur :)

superNono
Invité n'ayant pas de compte PHPfrance

13 sept. 2006, 15:55

Merci pour tes éclaircissements Ryle.
Je ne connais pas AJAX : qu'est ce que c'est ?
comment ca marche ?

Nono

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 sept. 2006, 16:04

C'est un joli nom donné à une certaine utilisation de javascript que l'on (re)découvre aujourd'hui :)

En fait cela te permet avec une fonction javascript d'envoyer des données au serveur (et accessoirement d'en récupérer, même si là cela ne te sers pas dans ce cas) sans avoir à recharger la page. L'intérêt principal est d'actualiser certains morceaux de ta page sans tout recharger (tu peux ainsi par exemple alimenter une liste déroulante liée, etc.)

Y a quelques topic qui en parlent sur le forum Javascript, sinon un p'tit tour sur google devrait te permettre de trouver pas mal de tutos et d'explications sur les 2-3 fonctions à utiliser :)

superNono
Invité n'ayant pas de compte PHPfrance

13 sept. 2006, 16:12

Merci Ryle !

Oui entre temps je suis allé vite fait sur google et j'ai trouvé quelques trucs sur AJAX...Interessant.

Je vais chercher de ce coté la aussi, mais j'aimerais bien savoir si la réponse à ma question existe en PHP : éxécuter un script PHP et ne renvoyer aucun flux http vers le navigateur une fois le script terminé.

Mais peut-etre que ca n'existe pas.

En tout cas merci pour ton aide.....

Nono

Eléphant du PHP | 332 Messages

13 sept. 2006, 16:49

Ce que tu peux faire également, c'est que ton code principal ouvre la fenêtre en popup de petite taille, le code PHP est exécuté et tu termines par un windows.close qui ferme la popup

Exemple de fenêtre pop-up

Code : Tout sélectionner

<?php ton code PHP ?> <html> <body> <script> function close_refresh () { top.opener.document.location.reload(); window.close (); } close_refresh(); </script> </body> </html>
Ce code réaffiche la page appelante (pas obligatoire, mais ça permet par exemple de mettre à jour une valeur de la page d'appel, puis ferme la popup.

superNono
Invité n'ayant pas de compte PHPfrance

13 sept. 2006, 17:25

Merci pour cette réponse mais je voulais éviter un aller-retour vers le navigateur....

Je crois que je n'aurais pas de réponse à ma question. Tant pis.

Merci quand meme à tous....

Nono

Eléphant du PHP | 184 Messages

13 sept. 2006, 17:35

Comment tu lances le script? depuis le navigateur? Si oui je ne vois pas ce qui pose probleme :-k
Image

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 sept. 2006, 18:22

Ben en fait je vais rejoindre ce que disais jojo au début. Si tu fais appel à ton script php depuis un navigateur, celui-ci va nécessairement recevoir une réponse à afficher (même si celle-ci ne contient rien). C'est le principe du navigateur et le rôle du serveur http..

Pour ne pas avoir de retour vers le navigateur, il te faudrait exécuter ton code en ligne de commande (et encore, je ne suis pas sur qu'il n'y ait pas de retour pour autant, mais la ligne de commande ne le gerera pas)

La solution d'ajax me semble du coup la plus adaptée : tu appelles ton script php, tu ne lui fais rien afficher et tu laisse tomber la partie gestion de la réponse en javascript si tu n'en a pas besoin (encore que c'est toujours pratique de savoir que ca a fonctionné ;))
Du coup tu auras un aller avec tes données et un retour avec rien, le tout étant totalement transparent pour l'utilisateur...