Page 1 sur 2

ouvrir un fichier index.html

Posté : 16 sept. 2014, 23:36
par carmodelisme
Bonjour à tous
Je suis un petit nouveau sur votre forum mais j'ai quelques notions de PHP et HTML. Je programme depuis des années sur Mac, mais j'ai envie de passer à quelque chose de plus universel.
Voilà mon problème : j'ai créé un formulaire ou l'utilisateur doit entrer une date quelconque, ex: 16092014.
Il me faut récupérer cette date (je pense avoir trouvé). En parallèle, j'ai créé des flipping book correspondant depuis 2007 à des archives de journal.
Un flipping book = une parution. Ce que je veux faire c'est que lorsqu'un utilisateur lance le programme, on lui demande quelle date l'intéresse, il tape cette date dans le formulaire et en l'envoyant, celui-ci ouvre le flipping book correspondant.
Chaque flipping book comprend un fichier index.html, qui lui, ouvre un fichier écrit en java. Et c'est ce fichier index.html que veux ouvrir...
Je récapitule:
1 - j'ai créé un serveur sur un PC qui est en réseau dans une entreprise. Ce serveur contient des parutions journalières, sous forme d'un dossier qui contient lui-même un fichier Index.html, qui lui lance un flipping book composé des différentes pages du journal.
2 - j'ai créé un formulaire demandant à l'utilisateur (sur un pc distant) de taper la date recherchée. Une fois la date validée, je veux pouvoir accéder au dossier contenant le fichier index.html et le lancer de façon à lancer le flipping book correspondant.
Voilà, je m'excuse d'avoir été un peu long dans mes explications...
Merci pour votre aide à venir.
Marc

Re: ouvrir un fichier

Posté : 16 sept. 2014, 23:45
par Nestecha
Alors en gros ça devrait être simple si c'est fait de façon organisée.

1° Tu choppes la date dans un $_POST (ou $_GET), donc ta date peut être inscrite dans une variable (disons $dDate).

2° Tu veux trouver le dossier qui correspond à $dDate. Pour que ce soit le plus simple possible, il faut que tu trouves un pattern récurrent dans les nom des dossiers, il y en a forcément un s'il y en a autant.

Exemple si un dossier s'appelle : "archive_01_06_2008" et qu'ils ont tous ce format d'écriture, avec de simples tests, tu auras l'URL que tu veux en fonction de la date entrée. Il te restera plus qu'à faire un header(); pour envoyer l'utilisateur vers cette page :)

Re: ouvrir un fichier index.html

Posté : 16 sept. 2014, 23:58
par carmodelisme
merci Nestecha.
Effectivement tous les dossiers se nomment de la même façon. ex: Aout_2013, qui lui contient toutes les dates du mois, sous la forme 01082013, 02082013 etc...
Sur les postes clients, j'ai monté un lecteur réseau, toujours L, qui pointe sur l'adresse IP du serveur ainsi que son nom.
J'ai effectivement regardé ce qu'il y avait dans la barre de navigation du navigateur, pour avoir une idée de ce que je devais mettre, et c'est ce que je ne sais pas faire. Quelle fonction utiliser pour ouvrir l'url dans le navigateur, du genre: file \\\L:\le nom du dossier principal\le nom du dossier concerné\fichier index.html
je n'ai pas en tête le code exact car je suis chez moi et mon programme et au boulot...

Merci d'avance
Marc

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 00:20
par Nestecha
Tu peux utiliser header('Location: L:\le nom du dossier principal\le nom du dossier concerné\fichier index.html'); dans ton cas !

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 00:55
par carmodelisme
encore merci Nestecha.

J'essaie tout cela demain matin...

Donc la date rentrée est par exemple le 01082013
le fichier index.html est situé dans le dossier 01082013, lui même situé dans un dossier nommé aout_2013.
Que pensez-vous de ce code pour obtenir les bons noms :

$ma_date="01082013" (la date entrée par l'utilisateur)

$jour = substr($ma_date,-8,2); =====> 01
$mois= substr($ma_date,-6,2);=====> 08
$annee=substr($ma_date,-4,4);=====>2013

if ($mois="01") {
$ms="Janvier";
}elseif ($mois="02"){
$ms="Fevrier";
}elseif ($mois="03") {
$ms="Mars";
}
etc.. avec les autres mois, ce qui me permet de convertir les chiffres en mois.
$a="_";
$date_dossier=$ms.$a.$annee=====>Aout_2013 (donc le dossier contenant le bon jour)
$date_jour=$jour.$mois.$annee=====>01082013 (qui est le dossier contenant le fichier index.html
En concatenant
$fichier="L:\Flipping\".$date_dossier."\".$date_jour."\index.html"===> L:\flipping\Aout_2013\01082013\index.html
Voilà, qu'en pensez-vous?

Encore merci pour tout

marc

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 05:56
par Nestecha
Oui voilà, en gros c'est ça.

Par contre pour la concaténation, t'es pas obligé d'utiliser :
$a="_";
$date_dossier=$ms.$a.$annee=====>Aout_2013 (donc le dossier contenant le bon jour)
Tu peux faire ainsi :
$date_dossier=$ms.'_'.$annee=====>Aout_2013 (donc le dossier contenant le bon jour)
Vu que '_' est une simple chaîne de caractère.

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 11:28
par Invité
Bonjour Nestecha

D'abord merci pour tout.
J'ai quelques problèmes avec la commande Header
Voilà la fin de mon code :

$date_dossier=$ms."_".$annee;
$date_jour=$jour.$mois.$annee;
$fichier="L:\\".$date_dossier."\\".$date_jour."\\"."Index.html";
$Nom_fichier="('Location: ".$fichier."')";
header ($nom_fichier);
avec la commande Echo voilà ce que cela donne : ('Location: L:\Janvier_2014\12012014\Index.html')

et voilà le message d'erreur de retour:
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\action.php:6) in C:\wamp\www\action.php on line 44

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 11:30
par arnaud69
La ligne 6 est incompatible avec la ligne 44.
tu as un echo qui traîne.

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 11:36
par carmodelisme
bonjour

J'ai supprimé la ligne Echo mais j'ai toujours la même erreur... sur la ligne 44 qui correspond à la commande HEADER...

marc

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 14:24
par arnaud69
Tu peux mettre tout le code entre balises code, et le message d'erreur ?

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 14:42
par carmodelisme
bonjour, pas de probleme

Fichier action.php
<?php
$date = $_POST['date'];
$jour=substr($date,-8,2);
$mois=substr($date,-6,2);
$annee=substr($date,-4,4);
if ($mois="01") {
$ms="Janvier";
}elseif ($mois="02") {
$ms="Fevrier";
}elseif ($mois="03") {
$ms="Mars";
}elseif ($mois="04") {
$ms="Avril";
}elseif ($mois="05") {
$ms="Mai";
}elseif ($mois="06") {
$ms="Juin";
}elseif ($mois="07") {
$ms="Juillet";
}elseif ($mois="08") {
$ms="Aout";
}elseif ($mois="09") {
$ms="Septembre";
}elseif ($mois="10") {
$ms="Octobre";
}elseif ($mois="11") {
$ms="Novembre";
}elseif ($mois="12") {
$ms="Decembre";
}
$date_dossier=$ms."_".$annee;
$date_jour=$jour.$mois.$annee;
$fichier="L:\\".$date_dossier."\\".$date_jour."\\"."Index.html";
$Nom_fichier="('Location: ".$fichier."')";
header ($nom_fichier);
pause;
?>

Il n'y a pas de code d'erreur
C'est juste que action.php essaye de se connecter à l'adresse réseau de mon serveur, dans le navigateur s'affiche l'adresse IP de serveur et cela tourne en rond...

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 15:07
par Nestecha
Coquilles à la fin du code :
$Nom_fichier="('Location: ".$fichier."')";
header ($nom_fichier);
pause;
$Nom_fichier, puis $nom_fichier (les deux doivent être égales).
"pause;" qui ne signifie rien.
Mauvais concaténation dans $Nom_fichier.
Voilà le code, fonctionnant avec $fichier = 'http://google.fr', reste plus qu'à le faire fonctionner avec ton chemin de fichier ;)
$fichier="http://google.fr";
$Nom_fichier="Location: ".$fichier;
header ($Nom_fichier);

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 16:38
par carmodelisme
bonjour et merci

J'ai rectifié mes erreurs et j'ai fait un test avec header et Google, cela fonctionne.

Mais avec mon code pour ouvrir le fichier html, toujours rien...

$fichier="L:\\".$date_dossier."\\".$date_jour."\\"."Index.html";
$Nom_fichier="('Location: ".$fichier."')";
header ($Nom_fichier);

Pas d'erreur, il ne se passe rien...

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 16:59
par arnaud69
Ton fichier, il est dans la racine du serveur ?
Parce que L:\\ ...
En windows, je pense au raccourci, sous linux je t'aurais dit de faire un lien symbolique de la racine vers L (ou /home/.... pour ceux qui me comprennent)

Re: ouvrir un fichier index.html

Posté : 17 sept. 2014, 17:37
par carmodelisme
non, les fichiers sont sur un disque dur externe, relié au serveur et partagé...