ouvrir un fichier index.html

Eléphant du PHP | 151 Messages

17 sept. 2014, 17:45

Et ben voilà peut être une des raisons du pourquoi ça ne marche pas...
On ne fait pas tout ce que l'on veut avec les fichiers...
Place en 1 à la racine de ton serveur et essaie, je suis sur que ça marchera
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphanteau du PHP | 11 Messages

17 sept. 2014, 18:18

j'ai mis le fichier sur la racine du serveur, c'est à dire sur D qui est partagé, à l'intérieur d'un dossier se nommant Aout_2012 . Nom du partage D$

Sur le pc client, j'ai monté un lecteur L qui pointe sur le serveur.
J'ai directement mis en tête de mon programme et en dur:

<?php
header ('L:\\Aout_2012\\01082012\\index.html');

suite du programme....



Mais rien à faire aucun résultat....

Eléphant du PHP | 151 Messages

17 sept. 2014, 20:42

A la racine, ça veut dire dans le répertoire htdocs de ton apache, et après essaie de faire un header sur ce fichier.
Fais un test avec un toto.doc ou autre.
Sinon, tu dis que tu le mets sur D et ton header pointe sur L.
Ensuite tu écris :

Code : Tout sélectionner

header ('L:\\Aout_2012\\01082012\\index.html');
Ce serait pas plutôt :

Code : Tout sélectionner

header ('L:\Aout_2012\01082012\index.html');
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

ViPHP
xTG
ViPHP | 7331 Messages

17 sept. 2014, 20:53

Sa façon d'écrire est correcte car si tu ne mets qu'un antislash tu interprètes la lettre suivante comme un caractère spécial.
\r par exemple est un retour charriot pour impression.

Le souci est principalement qu'un header ne peut fonctionner qu'avec une url.
Il faut donc monter un vhost pour pointer sur ton autre disque dur (jamais essayé mais je pense que ça peut fonctionner) ou bien mettre les fichiers dans le dossier htdocs ou www de ton serveur.

Dans tous les cas il est impossible pour des raisons de sécurité d'accéder à une ressource en dehors de l'espace serveur.
Même avec du javascript tu ne pourras pas accéder à un fichier du disque dur si le nom de domaine n'est pas le même. (accéder à un protocole file:// depuis un protocole http pointant sur localhost par exemple)
Sur le pc client, j'ai monté un lecteur L qui pointe sur le serveur.
Pourquoi ne pas pointer sur l'adresse du serveur plutôt qu'un lecteur ? Cela te solutionnerai tout. ;)

Eléphanteau du PHP | 11 Messages

17 sept. 2014, 21:28

merci à vous tous pour votre intérêt

Effectivement, je peux pointer sur l'adresse ip de mon serveur, mais là, il faut que je cherche encore car je ne sais pas comment faire en PHP.

Si vous avez les connaissances, vous êtes les bienvenus...

marc

Eléphant du PHP | 151 Messages

17 sept. 2014, 21:45

Je me demande s'il n'est pas possible de faire ceci :

Code : Tout sélectionner

header('file:///L:/Aout_2012/01082012/index.html');
Mais je dis ça en toute improvisation et vraiment par hasard... :?: :?: :lol:
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Nestecha
Invité n'ayant pas de compte PHPfrance

17 sept. 2014, 22:31

Du coup, plutôt que d'utiliser header(), pourquoi tu n'utilises pas fopen ? Qui est conçue pour lire des fichiers justement ?

ViPHP
xTG
ViPHP | 7331 Messages

18 sept. 2014, 08:06

merci à vous tous pour votre intérêt

Effectivement, je peux pointer sur l'adresse ip de mon serveur, mais là, il faut que je cherche encore car je ne sais pas comment faire en PHP.

Si vous avez les connaissances, vous êtes les bienvenus...

marc
header('Location:http://127.0.0.1/tonDossier/taPage.html');
Avec dans cet exemple 127.0.0.1 l'ip du serveur.

Eléphanteau du PHP | 11 Messages

18 sept. 2014, 16:40

bonjour à tous

Merci de vos réponses.

J'ai essayé fopen, rien ne se passe, pas plus toujours qu'avec header...

Je n'y comprends plus rien.
Quand je mets le chemin dans la barre du navigateur, cela fonctionne, mais par contre j'appuie sur la touche entrée.

Question peut-être idiote : ne faut-il pas simuler un appui sur la touche entrée quand c'est un fichier en HTML?

Merci encore

Marc

ViPHP
xTG
ViPHP | 7331 Messages

18 sept. 2014, 18:20

Non pas besoin d'appui touche.
Par contre comment fais-tu ton header ?
Y-a-t-il des choses avant ? Car avant un header il ne faut aucun affichage sinon cela ne fonctionnera pas.

Sinon la solution la plus barbare en javascript :
<script>
window.location.href='ton_chemin_vers_le_fichier'; // protocole http ou file
</script>
Là tu seras obligé d'avoir une redirection.
Par contre suivant l'url que tu souhaites il se peut que le navigateur te la refuse pour raison de sécurité.

Invité
Invité n'ayant pas de compte PHPfrance

19 sept. 2014, 16:29

bonjour à tous

J'ai bien vérifié, je n'ai aucune ligne de blanc dans mon programme quand je me sers de Header... mais ça ne fonctionne pas pour autant

J'ai essayé aussi la méthode du script, qui ne fonctionne pas non plus...

Je vous remet mon code en entier mais là je crois que je vais arrêter de me prendre la tête et essayer de trouver une autre solution.

---------
fichier Formulaire.html
---------
html><body>
<form method="post" action="action.php" accept-charset=utf-8>
date : <input type="text" name="date" size="12"><br>
<input type="submit" value="OK">
</form>
</body>
</html>

---------------
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;
$fichi="file:\\\Flipping\Flipping_html_reussi\\".$date_dossier."\\".$date_jour."\\"."Index.html";
//$nom_fichier="http://".$fichier."')";
//echo "fichier vaut $fichier";
//$handle = fopen("$fichier", "r");
//header (location: $fichier);
?>
<html>
<body>
<script>
function myFunction() {
window.location.href="file://Flipping/Flipping_html_reussi/aout_2012/01082012/index.html";
}
</script>
</body>
</html>

Nestecha
Invité n'ayant pas de compte PHPfrance

19 sept. 2014, 17:05

Y'a des soucis de syntaxe.

$fichi au lieu de $fichier.
header(location...) au lieu de header('location...')

Donc forcément, dès qu'il va tomber sur une erreur du genre il va s'arrêter.

Aussi à la fin, tu crées une fonction javascript, mais tu ne l'utilises pas. Donc forcément elle ne se lance pas.
Enlève ta fonction et mets le code qu'elle contient directement.

Eléphanteau du PHP | 11 Messages

19 sept. 2014, 17:31

pour le $fichi c'est un essai

---------
fichier Formulaire.html
---------
html><body>
<form method="post" action="action.php" accept-charset=utf-8>
date : <input type="text" name="date" size="12"><br>
<input type="submit" value="OK">
</form>
</body>
</html>

---------------
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;
$fichi="file:\\\Flipping\Flipping_html_reussi\\".$date_dossier."\\".$date_jour."\\"."Index.html";
//$nom_fichier="http://".$fichier."')";
//echo "fichier vaut $fichier";
//$handle = fopen("$fichier", "r");
//header (location: $fichier);
?>
<html>
<body>
<script>
window.location.href="file://Flipping/Flipping_html_reussi/aout_2012/01082012/index.html";
</script>
</body>
</html>

sur la ligne ==> window.location.href j'ai mis le chemin en dur pour tester... mais cela ne fonctionne toujours pas, il ne se passe rien...

ViPHP
xTG
ViPHP | 7331 Messages

19 sept. 2014, 18:24

Et si tu fais clic droit > afficher la source sur ton navigateur ?
Tu vois le code javascript ou non ?