Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/09/2014, à 14:26

Hada de la Luna

Php : affichage page blanche + absence de code généré

Bonjour à tous,

mon système est Ubuntu 14.04 LTS et pour suivre mes cours et faire mes exercices, j'ai installé : Apache/2.4.7 (Ubuntu) , PHP version 5.5.9-1ubuntu4.4 et PhpMyAdmin version 4.2.3deb1.trusty~ppa.1 avec libmysql 5.5.38 et l'extension PHP mysqli.

J'ai d'abord installé LAMP et réinstallé PhpMyAdmin car il ne s'affichait pas...

Php fonctionne puisque cette page phpinfo.php fonctionne et s'affiche normalement :

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

?>

Mais lorsque je navigue sur mes pages PHP (installées dans /var/www/html/TPPaterie_2014_09_15/) j'obtiens des pages totalement blanches et lorsque je fais afficher le code source depuis le navigateur les fichiers sont également blancs (donc vides et pas de code de généré).

Cependant qu'avec le terminal j'obtiens (en navigant sur le corrigé du prof, corrigé qui fonctionne parfaitement chez les autres élèves) :

$ tail -f /var/log/apache2/error.log
[Thu Sep 18 10:12:38.317129 2014] [:error] [pid 23103] [client 127.0.0.1:52474] PHP Warning:  include(user\\vues\\accueil.php): failed to open stream: No such file or directory in /var/www/html/TPPaterie_2014_09_15/index.php on line 27
[Thu Sep 18 10:12:38.317142 2014] [:error] [pid 23103] [client 127.0.0.1:52474] PHP Warning:  include(): Failed opening 'user\\vues\\accueil.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/TPPaterie_2014_09_15/index.php on line 27
[Thu Sep 18 10:27:49.321627 2014] [:error] [pid 23102] [client 127.0.0.1:52517] PHP Warning:  include(user\\modeles\\user.php): failed to open stream: No such file or directory in /var/www/html/TPPaterie_2014_09_15/index.php on line 24
[Thu Sep 18 10:27:49.321661 2014] [:error] [pid 23102] [client 127.0.0.1:52517] PHP Warning:  include(): Failed opening 'user\\modeles\\user.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/TPPaterie_2014_09_15/index.php on line 24
[Thu Sep 18 10:27:49.321693 2014] [:error] [pid 23102] [client 127.0.0.1:52517] PHP Warning:  include(user\\vues\\accueil.php): failed to open stream: No such file or directory in /var/www/html/TPPaterie_2014_09_15/index.php on line 27
[Thu Sep 18 10:27:49.321705 2014] [:error] [pid 23102] [client 127.0.0.1:52517] PHP Warning:  include(): Failed opening 'user\\vues\\accueil.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/TPPaterie_2014_09_15/index.php on line 27
[Thu Sep 18 10:28:04.688776 2014] [:error] [pid 27854] [client 127.0.0.1:52528] PHP Warning:  include(user\\modeles\\user.php): failed to open stream: No such file or directory in /var/www/html/TPPaterie_2014_09_15/index.php on line 24
[Thu Sep 18 10:28:04.688807 2014] [:error] [pid 27854] [client 127.0.0.1:52528] PHP Warning:  include(): Failed opening 'user\\modeles\\user.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/TPPaterie_2014_09_15/index.php on line 24
[Thu Sep 18 10:28:04.688836 2014] [:error] [pid 27854] [client 127.0.0.1:52528] PHP Warning:  include(user\\vues\\accueil.php): failed to open stream: No such file or directory in /var/www/html/TPPaterie_2014_09_15/index.php on line 27
[Thu Sep 18 10:28:04.688846 2014] [:error] [pid 27854] [client 127.0.0.1:52528] PHP Warning:  include(): Failed opening 'user\\vues\\accueil.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/TPPaterie_2014_09_15/index.php on line 27

Avez vous des pistes pour résoudre ce problème ?
Qui est probablement du à la configuration sur mon PC... Mais je ne trouve pas où, pourquoi, dans quel état j'erre, etc. wink (je suis totalement débutante)

Ce n'est pas pratique du tout pour suivre le cours et faire les exos : je ne sais ce si que je fais fonctionnerai sur une configuration serveur correcte

Merci d'avance de vos réponses  smile


Hada de la Luna :o)

Hors ligne

#2 Le 18/09/2014, à 14:36

gl38

Re : Php : affichage page blanche + absence de code généré

Dans le message d'erreur que tu montres, je vois /usr/share/pear. As-tu installé le paquet php-pear ?

Peux-tu nous montrer le fichier-corrigé ?
Cordialement,
Guy

Hors ligne

#3 Le 18/09/2014, à 14:40

bruno

Re : Php : affichage page blanche + absence de code généré

Et cela ne te semble pas bizarre ?

include(user\\vues\\accueil.php): failed to open stream:

Déjà il faudrait vérifier la présence de ces fichiers dans ton dossier racine, et ensuite comprendre pourquoi les chemins de fichiers sont avec des barres obliques inverses \ et non des barres obliques /

Dernière modification par bruno (Le 18/09/2014, à 14:41)

Hors ligne

#4 Le 18/09/2014, à 15:05

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré

Merci de ton aide smile

En effet  php-pear n'était pas installé et je l'ai donc installé mais malgré cela le problème demeure et :

$ tail -f /var/log/apache2/error.log
[Thu Sep 18 14:46:17.509421 2014] [:error] [pid 27854] [client 127.0.0.1:53160] PHP Warning:  include(user\\vues\\accueil.php): failed to open stream: No such file or directory in /var/www/html/TPPaterie_2014_09_15/index.php on line 27
[Thu Sep 18 14:46:17.509436 2014] [:error] [pid 27854] [client 127.0.0.1:53160] PHP Warning:  include(): Failed opening 'user\\vues\\accueil.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/TPPaterie_2014_09_15/index.php on line 27
[Thu Sep 18 14:46:21.994186 2014] [:error] [pid 27854] [client 127.0.0.1:53160] PHP Warning:  include(user\\modeles\\user.php): failed to open stream: No such file or directory in /var/www/html/TPPaterie_2014_09_15/index.php on line 24
[Thu Sep 18 14:46:21.994235 2014] [:error] [pid 27854] [client 127.0.0.1:53160] PHP Warning:  include(): Failed opening 'user\\modeles\\user.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/TPPaterie_2014_09_15/index.php on line 24
[Thu Sep 18 14:46:21.994285 2014] [:error] [pid 27854] [client 127.0.0.1:53160] PHP Warning:  include(user\\vues\\accueil.php): failed to open stream: No such file or directory in /var/www/html/TPPaterie_2014_09_15/index.php on line 27
[Thu Sep 18 14:46:21.994304 2014] [:error] [pid 27854] [client 127.0.0.1:53160] PHP Warning:  include(): Failed opening 'user\\vues\\accueil.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/TPPaterie_2014_09_15/index.php on line 27
[Thu Sep 18 14:46:32.007334 2014] [:error] [pid 27857] [client 127.0.0.1:53169] PHP Warning:  include(user\\modeles\\user.php): failed to open stream: No such file or directory in /var/www/html/TPPaterie_2014_09_15/index.php on line 24
[Thu Sep 18 14:46:32.007375 2014] [:error] [pid 27857] [client 127.0.0.1:53169] PHP Warning:  include(): Failed opening 'user\\modeles\\user.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/TPPaterie_2014_09_15/index.php on line 24
[Thu Sep 18 14:46:32.007410 2014] [:error] [pid 27857] [client 127.0.0.1:53169] PHP Warning:  include(user\\vues\\accueil.php): failed to open stream: No such file or directory in /var/www/html/TPPaterie_2014_09_15/index.php on line 27
[Thu Sep 18 14:46:32.007422 2014] [:error] [pid 27857] [client 127.0.0.1:53169] PHP Warning:  include(): Failed opening 'user\\vues\\accueil.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/TPPaterie_2014_09_15/index.php on line 27

Ce qui veut probablement dire qu'il faudrait activer php-pear "quelque part"... mais je ne sais pas comment...

Pour le corrigé :

<?php
/**********************************************************************
  Nom du projet  :  Pateterie_MVC
  Nom du fichier :  index.php
  Création       :  09 sept. 2014
  Utilisation    :  Controleur principal
 **********************************************************************/
session_start();
if (!isset($_SESSION['caddie'])) {
    $_SESSION['caddie'] = array();
}

if (!isset($_GET['modele'])) {
    $modele = 'user';
    $action = 'accueil';
} else {
    $modele = $_GET['modele'];
    $action = $_GET['action'];
}

switch ($modele) {
    case 'user':
        include 'user\modeles\user.php';
        switch ($action) {
            case 'accueil':
                include 'user\vues\accueil.php';
                break;
            case 'connexion':
                include 'user\vues\connexion.php';
                break;
            case 'verif':
                $nom = $_POST['nom'];
                $psw = $_POST['psw'];
                $exist = verifUser($nom, $psw);
                if ($exist) {
                    $_SESSION['user'] = $nom;
                    include 'user\vues\accueil.php';
                } else {
                    header('location: index.php?modele=user&action=connexion');
                }
                break;
            case 'deconnexion':
                deconnexion();
                header('location: index.php?modele=user&action=accueil');
                break;
            default:
                break;
        }

        break;
    case 'catalogue':
        include 'catalogue\modeles\catalogue.php';
        switch ($action) {
            case 'liste':
                $categ = '%';
                if (isset($_GET['categ'])) {
                    $categ = $_GET['categ'];
                }
                $_SESSION['categEnCour'] = $categ;
                $catalogue = listeCatalogue($categ);
                include 'categorie\modeles\categorie.php';
                $categories = listeCategorie();
                include 'catalogue\vues\affCatalogue.php';
                break;

            default:
                break;
        }        
        break;
    case 'caddie':
        include 'caddie\modeles\caddie.php';
        switch ($action) {
            case 'liste':
                $vueCaddie = listeCaddie();
                $prixTotal = calculPrix($vueCaddie);
                include 'caddie\vues\affCaddie.php';
                break;
            case 'ajout':
                $refArt = $_GET['refArt'];
                ajoutCaddie($refArt);
                var_dump($_SESSION['caddie']);
                header('location: index.php?modele=catalogue&action=liste&categ='.$_SESSION['categEnCour']);
                break;
            case 'supp':
                $refArt = $_GET['refArt'];
                suppCaddie($refArt);
                var_dump($_SESSION['caddie']);
                header('location: index.php?modele=caddie&action=liste');
                break;
            case 'vider':
                viderCaddie();
                header('location: index.php?modele=catalogue&action=liste');
                break;

            default:
                break;
        }        
        
        break;

    default:
        break;
}

Des idées ? smile


Hada de la Luna :o)

Hors ligne

#5 Le 18/09/2014, à 15:10

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré

bruno a écrit :

Et cela ne te semble pas bizarre ?

include(user\\vues\\accueil.php): failed to open stream:

Déjà il faudrait vérifier la présence de ces fichiers dans ton dossier racine, et ensuite comprendre pourquoi les chemins de fichiers sont avec des barres obliques inverses \ et non des barres obliques /

Ils sont dans le dossier puisque je travaille directement dessus avec Netbeans...

Pour les chemins, peut être le corrigé est il conçu pour des WAMP ? car tous les autres sont sur Windows...


Hada de la Luna :o)

Hors ligne

#6 Le 18/09/2014, à 15:20

ssdg

Re : Php : affichage page blanche + absence de code généré

C'est sans doute ça. puisque user\\vues\\accueil.php est un fichier avec un nom long dans le répertoire courant.


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#7 Le 18/09/2014, à 15:26

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré

donc il faut que de réécrive toutes les adresses de fichiers ? où il y a un moyen de faire que ce soit compatible sans réécriture ?


Hada de la Luna :o)

Hors ligne

#8 Le 18/09/2014, à 15:41

bruno

Re : Php : affichage page blanche + absence de code généré

Donnes-nous le contenu du fichier index.php (au moins les lignes 24 à 27 qui contiennent des directives include).

Hors ligne

#9 Le 18/09/2014, à 15:45

ssdg

Re : Php : affichage page blanche + absence de code généré

bruno > regarde #4


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#10 Le 18/09/2014, à 15:47

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré


Hada de la Luna :o)

Hors ligne

#11 Le 18/09/2014, à 15:47

bruno

Re : Php : affichage page blanche + absence de code généré

Au temps pour moi, je n'avais pas vu big_smile

Bon, il faut remplacer tous les \ par des / dans les chemins de fichiers présents dans index.php

Hors ligne

#12 Le 18/09/2014, à 15:54

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré

Ok, merci, il y a t'il un moyen de changer la configuration du serveur pour que ce soit compatible avec les \ ? smile

En effet, si non, ça va être super pénible de tout changer dans tous les fichiers sans arrêt...


Hada de la Luna :o)

Hors ligne

#13 Le 18/09/2014, à 16:11

bruno

Re : Php : affichage page blanche + absence de code généré

Je n'en sais rien…
Par contre je peux dire que c'est une aberration de coder avec des \ dans les chemins de fichiers car cela fonctionne uniquement avec Windows, alors que les chemins avec / fonctionnent partout.

D'autant que \ est utilisé comme caractère d'échappement, cela peut donc engendrer d'autres problèmes…

Dernière modification par bruno (Le 18/09/2014, à 16:29)

Hors ligne

#14 Le 18/09/2014, à 16:22

gl38

Re : Php : affichage page blanche + absence de code généré

Avec la commande sed on peut.
Fais un fichier back2slash.sed qui contient la ligne

s/\\/\//g

Oui, c'est pas beau, car / est déjà délimiteur de la commande, il faut donc mettre un backslash devant...
Puis

mv index.php index-ori.pho
sed -f back2slash.sed < index-ori.php > index.php

Le fichier index.php devrait mieux fonctionner.
S'il y a beaucoup de fichiers à modifier, il va falloir faire une boucle et s'il faut aller dans des sous-dossiers, il faut aussi les parcourir. Mais c'était peut-être le sujet de ton cours précédent !
Cordialement,
Guy

Hors ligne

#15 Le 19/09/2014, à 11:17

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré

Bonjour et merci, smile

j'ai discuté avec le prof et, effectivement, tout l'établissement est équipé en Windows même pour les serveur, sauf moi.

Il a convenu qu'il fallait qu'on soient au courant que les \ ne fonctionnent que sur Windows alors que les / fonctionnent partout. Mais d'un autre coté il a son paquet de corrigés qui sont conçus comme ça.

Pour ce qui est de remplacer chacun des \ par un / non je n'ai pas eu de cours sur les commandes et le script à faire. En fait ce serait plus au programme d'une autre formation : comme nous avons peu de temps ils ont coupé tout ce qui n'est pas 100% essentiel pour faire du développement logiciel. Les commandes que j'ai utilisées : je les aient trouvées sur le forum et copiées collées sans comprendre.

Et je pense qu'un script serait sûrement mieux pour le lancer lorsque je récupère un corrigé du prof et qu'il faudrait aller chercher dans les sous répertoires du coup.

Par contre, je n'ai aucune compétence pour le faire... Du coup, si quelqu'un pouvait m'indiquer quoi copier coller ce serait super sympa wink


Hada de la Luna :o)

Hors ligne

#16 Le 25/09/2014, à 07:49

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré

Bonjour smile

je me permet de faire un "up" : quelqu'un peut il me proposer un script pour remplacer les \ par les / récursivement dans tous les fichiers y compris dans les sous répertoires ?

Merci d'avance car je ne maîtrise pas du tout et ce n'est pas à mon programme... wink


Hada de la Luna :o)

Hors ligne

#17 Le 25/09/2014, à 11:03

ssdg

Re : Php : affichage page blanche + absence de code généré

On doit pouvoir y arriver avec un awk ou un sed. Le truc c'est que j'ai peur que ce type de modifications "à la volée" par un outil "bête" peut arriver à des résultats douteux si tu n'a pas testé tout les cas.

Voilà une commande qui pourra t'aider à recenser les includes dans ton code PHP:

grep -Hrn include

Si je peux te donner un conseil, avant de faire quoi que ce soit, trouve toi un moyen de trouver les modifcations et d'anuler ce que tu t'apprête à faire (parceque, oui, tu peux mettre la grouille dans ton code et ça sera plus long de retrouver la ou les erreurs que de faire tes corrections à la main). Pour ma part, j'utilise git pour mes projets, mais si tu n'a jamais utilisé d'outil de gestion de source avant et que tu es très préssé, une copie de ton dossier et l'utilisation de meld (dans la logithèque je crois) peuvent suffire.


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#18 Le 25/09/2014, à 14:11

gl38

Re : Php : affichage page blanche + absence de code généré

Si tu as un dossier bin, je propose de mettre les 3 fichiers suivants. Si bin n'existe pas tu le crées et tu t'assures qu'il est bien dans la variable PATH (tu tapes echo $PATH).
D'abord un fichier recur :

#!/bin/bash
find . -name "*.php" -exec /home/xxx/bin/slash {} \;

puis slash

#!/bin/bash
mv $1 $1-1
sed -f /home/xxx/bin/back2front.sed < $1-1 >$1

et enfin back2front.sed :

/include/ s/\\/\//g

Il faut remplacer les xxx par ton identité et rendre exécutable les fichiers recur et slash.

find est récursif et va explorer le dossier courant et y chercher les fichiers php et leur faire subir slash
slash fait subir sed qui va dans les lignes qui contiennent le mot include remplacer \ par /.

Il me semble que ça marche chez moi.
Avant de faire passer recur, il faut faire une sauvegarde, des fois que je me sois gouré !
Dis-moi ce que tu en penses.

Cordialement,
Guy

Hors ligne

#19 Le 25/09/2014, à 14:53

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré

Merci Guy.

En fait, je ne comprend pas ce que tu proposes...

J'ai, par ailleurs, changé les \ en / dans les include à la main et cela a progressé sans pour autant fonctionner.

Le code source de la page devient

<div id="nav">
    </div>

<div id="contenu">
    <h2>Bienvenu sur le site de la Papeterie du centre</h2>
</div><br />

Ce qui est très limité par rapport au projet total... Pratiquement aucun des include n'a fonctionné...


Hada de la Luna :o)

Hors ligne

#20 Le 25/09/2014, à 15:08

gl38

Re : Php : affichage page blanche + absence de code généré

Je propose de lancer recur dans le dossier où tu as tes fichiers php à problèmes.
Il me semble que ce dossier doit contenir outre le fichier index.php des dossiers user, catalogue, caddie,
Peux-tu donner le résultat de la commande

ls -l

dans ce dossier ?
Cordialement,
Guy

Hors ligne

#21 Le 25/09/2014, à 15:38

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré

$ ls
Correct_Papeterie_mvc_2014_09_25  phpinfo.php  TPPapeterie2
index.html                        TPPapeterie  TPPaterie_2014_09_15

Si on descend dans mon TP du jour ça donne :

 ls -l
total 40
drwx---rwx 4 hada hada 4096 sept. 25 14:15 caddie
drwx---rwx 4 hada hada 4096 sept. 25 14:15 catalogue
drwx---rwx 3 hada hada 4096 sept. 25 14:15 categorie
drwx---rwx 2 hada hada 4096 sept. 25 14:15 css
drwx---rwx 2 hada hada 4096 sept. 25 14:15 images
-rw-rw-rwx 1 hada hada 3414 sept. 25 05:11 index.php
drwx---rwx 2 hada hada 4096 sept. 25 15:01 modeles
drwxrwxrwx 3 hada hada 4096 sept. 25 14:28 nbproject
drwx---rwx 4 hada hada 4096 sept. 25 14:15 user
drwx---rwx 2 hada hada 4096 sept. 25 14:15 vues

Hada de la Luna :o)

Hors ligne

#22 Le 25/09/2014, à 16:12

gl38

Re : Php : affichage page blanche + absence de code généré

Si dans le dossier dont tu viens de donner le contenu, tu lances la commande recur que je t'ai indiquée plus haut, qu'arrive-t-il ?
Cordialement,
Guy

Hors ligne

#23 Le 25/09/2014, à 16:21

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré

si tu parles de ton message #18, je crains de ne pas savoir de quoi tu parles concrètement...

dois je ouvrir un terminal ? créer un fichier ? avec quoi ? où exactement ? sont les questions qui me viennent à l'esprit sans savoir quoi faire...


Hada de la Luna :o)

Hors ligne

#24 Le 25/09/2014, à 16:30

gl38

Re : Php : affichage page blanche + absence de code généré

Pour créer les 3 fichiers, le mieux c'est d'ouvrir un terminal.
Ensuite voir s'il y a un dossier bin. S'il n'y est pas le créer :

mkdir bin

Est-il dans le PATH ?

echo $PATH

Il devrait y avoir un /home/haja/bin dans la liste.
Ensuite avec gedit par exemple, tu crées recur en copiant ce qui est plus haut:

cd bin
gedit recur
chmod +x recur

Tu fais la même chose avec slash et back2front.sed.

Enfin tu vas dans le dossier de ton TP et tu tapes recur, les \ doivent être transformés en / dans toute l'arborescence du TP.

Et alors, que fait le index.php ?????

Cordialement,
Guy

Hors ligne

#25 Le 07/10/2014, à 11:25

Hada de la Luna

Re : Php : affichage page blanche + absence de code généré

Bonjour Guy et merci.

En fait, en tentant de faire, j'aimerais savoir si tu suppose que le répertoire de mon TP est dans mon répertoire personnel ? (home/hada)

Car en fait il est dans var/www/html/ car je ne sais pas comment créer un lien entre Apache et un quelconque répertoire sur mon ordinateur...

Merci d'avance de la précision car j'imagine que soit il faut placer bin ailleurs, soit il faut réécrire le script en fonction du chemin à parcourir pour atteindre les fichiers à modifier.

Qu'en penses tu ?


Hada de la Luna :o)

Hors ligne