Page 1 sur 1

header ne fonctionne pas !!!

Posté : 15 sept. 2024, 14:29
par nestor94
Bonjour,
J'ai un script php de mise à jour qui tourne en tache cron chez mon hébergeur à une heure définie.
A la fin, il y a un header qui est censé rediriger vers une page html ("confirmation des sauvegardes").
La sauvegarde s'execute bien mais pas le header.
<?php
script de sauvegardes.
bla bla bla....................
bla bla bla....................
?>
header('Location:www.civilizaworld.eu/save_14_serveur_end.html');
exit;
?>
Pourquoi ce header ne fonctionne pas????

Re: header ne fonctionne pas !!!

Posté : 15 sept. 2024, 17:12
par or 1
pas de http dans l'adresse, peut-être du texte écrit avant.
mais surtout, si c'est lancé par un cron, à quoi cela sert ?

Re: header ne fonctionne pas !!!

Posté : 16 sept. 2024, 12:32
par @rthur
En complément des 2 remarques pertinentes d'or1,
header() étant une fonction PHP c'est curieux que tu aies une balise fermante ?> avant ton header()

Re: header ne fonctionne pas !!!

Posté : 18 sept. 2024, 20:56
par nestor94
<?php
session_start();
require_once 'config_sauvegardes.php';
$sql = "UPDATE membres SET jeton = '/images/jeton_vert.gif', info='', PA=PA+7 ";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
bla bla bla
bla bla bla
etc etc etc
header('Location:save_14_serveur_end.html');
exit;
?>
la balise fermante était une erreur de transcription !
Il n'y a aucun texte html avant le header, seulement des update.
Cette redirection est prévue pour alerter et prévenir l'utilisateur que la sauvegarde a été exécutée...

Re: header ne fonctionne pas !!!

Posté : 20 sept. 2024, 10:40
par @rthur
Si c'est une tâche cron, elle est exécutée automatiquement par ton serveur donc il n'y a rien qui s'affiche.
Que fait donc ta page "save_14_serveur_end.html" tu as du code PHP qui s'exécute dedans (mais avec une extension de page .html c'est possible mais rare) ?
Et du coup si c'est un code PHP qui envoie un mail aux utilisateurs pourquoi faire une redirection plutôt qu'un include/require ?


A noter que si ton cron utilise Curl pour executer ton script, par défaut Curl ne suit pas les redirections donc ça peut être la raison de ton souci.

Re: header ne fonctionne pas !!!

Posté : 21 sept. 2024, 15:19
par nestor94
"Curl" est bien présent sur les serveurs de mon hébergeur...

Re: header ne fonctionne pas !!!

Posté : 23 sept. 2024, 10:18
par @rthur
"Curl" est bien présent sur les serveurs de mon hébergeur...
Oui mais c'est surtout les autres questions qui sont intéressantes pour tenter de résoudre ton souci :-D

Re: header ne fonctionne pas !!!

Posté : 24 sept. 2024, 01:01
par nestor94
Les updates de sauvegarde sont exécutées par la tache CRON et à la fin, je voudrais que cela ouvre la page "save_14_serveur_end.html" (qui prévient le joueur qui est en ligne que les sauvegardes sont Ok). Cette page ne contient que du HTML. Dans l'absolu, c'est surement pas vital mais cela me tient à coeur :oops:
Un include ou un require pourrait il remplacer le header?

Re: header ne fonctionne pas !!!

Posté : 24 sept. 2024, 01:48
par or 1
cela ne va en rien avertir le joueur. ce n'est pas le navigateur du joueur qui appelle le script, c'est le cron.

pour prévenir le joueur, il faut que le script appelé par le cron mettre à jour une variable, et que le navigateur du joueur appelle par ajax toutes les X secondes un script php qui va tester si la variable a été mise à jour, si c'est le cas, le script php renvoit quelque chose à l'ajax, et du javascript va informer le joueur qu'il y a eu une mise à jour.

voir le dernier exemple de https://api.jquery.com/jQuery.get/

Re: header ne fonctionne pas !!!

Posté : 27 sept. 2024, 01:16
par nestor94
Trop ardu pour moi Ajax et Javascript....
J'ai finalement bidouillé ce petit bout de script:
$heure = date('H:i:s');
$heure_start = '11:30:06';
$heure_end = '11:30:10';
if($heure >$heure_start && $heure <$heure_end)
{
	header('Location:save_14_serveur_end.html');
	exit;
}
"save14_serveur_end.html" se lance ainsi juste après ma tache Cron.