Revenir a la page précédente pour plus d'ergonomie

Revenir a la page précédente pour plus d'ergonomie - PHP - Programmation

Marsh Posté le 08-12-2007 à 15:33:19    

Bonjour, dans le cadre de mes études, je suis sur un projet de sitre d'hébergement d'images.
J'ai mis une version béta en ligne ici.
 
Je voudrais améliorer l'ergonomie de mon site: actuellement, quand on effectue un opération style
 ajouter un amis
 supprimer un amis
 noter une image
 
L'opération est effectuée par php, puis on est redirigé vers la page d'accueil, moi j'aimerais que le visiteur soit redirigé vers la page ou il était avant de cliquer, alors comment je pourrais faire ca ?
 
Merci


---------------
cours pour débuter sous 3d studio max - Photoshop pour les nuls
Reply

Marsh Posté le 08-12-2007 à 15:33:19   

Reply

Marsh Posté le 08-12-2007 à 15:35:52    

<a href="javascript:history.back()"> </a>


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 08-12-2007 à 15:46:01    

C'est une redirection php aussi, header('Refresh: 5; url=/');
J'ai trouvé ca, ce qui me donne:
header('Refresh: 5; url=/'. $_SERVER['HTTP_REFERER']);
 
Seulement, apache ma balance:
Forbidden
You don't have permission to access /http://localhost/index.php on this server.
 
Apache/1.3.33 Server at localhost Port 80
 
C'est quoi le pb?
 
EDIT:oula, y'a un slash en trop :s dsl

Message cité 1 fois
Message édité par Galdon le 08-12-2007 à 15:46:52

---------------
cours pour débuter sous 3d studio max - Photoshop pour les nuls
Reply

Marsh Posté le 08-12-2007 à 16:06:28    

WiiDS a écrit :

<a href="javascript:history.back()"> </a>


Non. Ne jamais utiliser ça.
 

Galdon a écrit :

C'est une redirection php aussi, header('Refresh: 5; url=/');
J'ai trouvé ca, ce qui me donne:
header('Refresh: 5; url=/'. $_SERVER['HTTP_REFERER']);
 
Seulement, apache ma balance:
Forbidden
You don't have permission to access /http://localhost/index.php on this server.
 
Apache/1.3.33 Server at localhost Port 80
 
C'est quoi le pb?
 
EDIT:oula, y'a un slash en trop :s dsl


 
RFC 2616 : HTTP 1.1. L'url spécifié par un header Location doit être une adresse absolue (avec http:// devant), la tienne commence par un '/'....
 
 
Sinon il faut voir si toutes ces actions partent de la même pas ou non. Par exemple, pour ajouter/supprimer un ami, j'imagine qu'après avoir réalisé une de ces actions, il faut rediriger sur la liste des amis, on fera alors :
 

Code :
  1. header('Location: http://tonsite.com/liste-amis.php', true, 303);


Si ton domaine change, on peut le retrouver via server_name :

Code :
  1. header('Location: http://' . $_SERVER['SERVER_NAME'] . '/list-amis.php', true, 303);


Le 303 est là, parce que tes actions doivent généralement être faites via la méthode POST, ce à quoi il faut rediriger par un status-code 303, prévu pour forcer l'agent utilisateur de demander la page spécifiée par l'entête Location, via la méthode GET :)

Reply

Marsh Posté le 08-12-2007 à 16:15:07    

Merci de ta réponse qui me parait trés compléte.
 
Je vais garder ma redirection sur la page précédente pour le formulaire de connexion, c'est beacoup plus pratique
 
ex:
avant:
Je ne suis pas loggé et j'arrive sur la page d'une image, et la je veux voter, ok, je me log, je suis redirigé vers la page d'accueil, et je retourne sur la page de l'image manuellement
 
maintenant:
Je me log, et hop je suis déja sur la page de l'image pour laquelle je veux voter, plus besoin de se retaper la navigation jusqu'a l'image
En plus ca induit une économie au niveau des ressources serveur.


---------------
cours pour débuter sous 3d studio max - Photoshop pour les nuls
Reply

Marsh Posté le 08-12-2007 à 16:57:34    

Pour ton header, n'utiliser pas un Refresh, mais direct un Location

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed