Page 1 sur 1

Rechargement/raffraichissement de page et header html

Posté : 04 févr. 2013, 11:39
par Bulot
Bonjour la communauté du pep

Aujourd'hui j'ai un soucis avec la ligne de code suivante:
// Execute un "refresh" de la page en PHP
	$delai=1; 
	$url='admin.php';
	header("Refresh: $delai;url=$url");
En local avec Wamp rien à signaler :) mais par contre une fois en ligne :x cela me donne un magnifique message d'erreur que voici:
Warning: Cannot modify header information - headers already sent by (output started at /blabla/config.php:18) in /blablabla/contact/admin.php on line 80
Existe t'il un moyen de recharger la page sans que cela crée une erreur?

Re: Rechargement/raffraichissement de page et header html

Posté : 04 févr. 2013, 12:09
par Yakoso
Bonjour,

le header doit être écrit avant tout code html. Je suppose que dans ta page tu conserves le commentaire (execute un "refresh" ...) ? Si c'est le cas, supprimes cette ligne et tout devrait fonctionner correctement ;)

Re: Rechargement/raffraichissement de page et header html

Posté : 04 févr. 2013, 12:17
par Bulot
Salut Yakoso,

Le header avec les balises <head> le doctype et tout le reste ont été renseignés en début de page.

La ligne de commentaire même supprimée ne change rien au problème qui survient uniquement une fois le site sur leserveur de free.fr

Re: Rechargement/raffraichissement de page et header html

Posté : 04 févr. 2013, 12:31
par Toumitoun
(j'avais oublié mes identifiants mais c'est chose rectifiée, donc je continue la conversation avec ce profil ;)).

Quand je parle de header, je parle de l'instruction php "header" qui envoi les informations au serveur. Celle-ci doit dont être avant tout comme html, soit avant la déclaration du doctype, des balises metas etc. Comme ceci :
<?php 
$delai=1;
$url='admin.php';
header('Refresh ......'); 
?>

<doctype>
<html>

     <head>
         <link rel="stylesheet" type="text/css" href="toncss.css" />
     </head>

     <body>
          ton code html
     </body>

</html>

Re: Rechargement/raffraichissement de page et header html

Posté : 04 févr. 2013, 13:26
par Bulot
Dans ce cas je n'en fais pas la bonne utilisation.

Cette ligne s’exécute après que l'utilisateur ait renseigné le bon identifiant et mot de passe. Faut il que j'utilise du javascript plutôt?

Re: Rechargement/raffraichissement de page et header html

Posté : 04 févr. 2013, 13:32
par Toumitoun
Je pense qu'il faut que ton formulaire pointe vers une page de traitement contenant uniquement du php, et qui en fonction du login et du mot de passe entrés, effectue une redirection vers la bonne page. Par exemple tu as ta page de connexion que nous allons appeler connexion.php avec dedans un formulaire comme ci-dessous.
<form action="traitement-login.php" method="post">
<input type="text" name="login" />
<input type="password" name="pwd" />
<input type="submit" value="connexion" name="btnConnexion" />
</form>
et dans traitement-login.php tu peux avoir par exemple :
if (isset($_POST['btnConnexion'])) {
$login = mysql_real_escape_string($_POST['login']);
$pwd = mysql_real_escape_string($_POST['pwd']);

// ta vérification de login et mot de passe

if ($verifOk == true) {
// initialisation des sessions
// redirection vers ta page
} else {
// redirection vers ta page avec affichage d'erreur
}

Tu dois pouvoir utiliser une redirection javascript, mais ça ne fonctionnera pas si l'utilisateur désactive son utilisation dans son navigateur ;) Je propose une telle solution mais peut être que quelqu'un de plus expérimenté pourra te conseiller une méthode en Ajax qui pourrait effectuer ce traitement ;)

Re: Rechargement/raffraichissement de page et header html

Posté : 04 févr. 2013, 16:00
par Bulot
Merci encore Toumitoun mais ce que tu proposes ne peut m'aider

Le code impose un rafraichissement de la page une fois le bon mot de passe et identifiant validés. :|

Le tout c'est de savoir pourquoi il refuse de le faire une fois sur le serveur alors qu'en local la ligne de code que j'ai donné dans mon premier message fonctionne très bien

Re: Rechargement/raffraichissement de page et header html

Posté : 04 févr. 2013, 16:45
par Bulot
J'ai opté pour du javascrip :
?>
<script type="text/javascript">
window.location = "admin.php";
</script>
<?php
Ou avec un délai de 5 secondes
echo'<p>Raffraichissement de la page dans 5 secondes.</p>';
// Execute un "refresh" de la page en javascript
?>
<script type="text/javascript">
function raffraichir() {
	window.location = "admin.php";
}
/* 1 minute = 60000 ms */
	window.setInterval("raffraichir()",5000);
</script>
<?php
Est ce correct comme utilisation?

Re: Rechargement/raffraichissement de page et header html

Posté : 04 févr. 2013, 17:07
par Toumitoun
Oui je pense que cela devrait fonctionner mais il faut bien garder à l'esprit que certaines personnes n'activent pas js et donc ne seront pas redirigées ;) après libre à toi de passer outre ces utilisateurs ;) mais sinon la fonction devrait marcher.

Re: Rechargement/raffraichissement de page et header html

Posté : 04 févr. 2013, 17:09
par sam12
Et il se passe quoi si le membre n'a pas le JS activé? :D
Non sérieusement mais ta page en tampon via ob_start(); par exemple ;)

Re: Rechargement/raffraichissement de page et header html

Posté : 05 févr. 2013, 09:12
par Bulot
Un membre sans Js c'est même pas 1% des visiteurs de ton site et la cession administration ne sera géré que par un seul membre : moi donc c'est parfait si il n'existe pas d'autre moyen de rafraichir une page. Merci pour tout :wink: