IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] inexécution de script PHP ?!


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Expert Banque en ligne
    Inscrit en
    Septembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert Banque en ligne
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2005
    Messages : 17
    Par défaut [Système] inexécution de script PHP ?!
    Bonjour,

    Malgré des recherches approfondies, je ne trouve pas de réponse à mon problème...

    Mon site est conçu sur une base de "Template" avec:

    - une page index.php
    - une page modele.dwt.php
    - un moteur.php (qui sera plus léger dès que ma base de données sera ok !)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
     
    <?php
     
    function puzzlesolve($page)
    	{
    //Traitement du modèle : Mise en variable, ouverture puis lecture et stockage du contenu en variable.
    	$modele = '.\Templates\Accueil.dwt.php';
    	$ouvrir = fopen($modele,'rb');
    	$resultat = fread($ouvrir,filesize($modele));
    	fclose($ouvrir);
     
    //Traitement des contenus
     
    	// paveID
    	if(isset($loginUsername)){
    		$logged = '.\Pages\logged.inc.php';
    		$logged_ouvrir = fopen($logged,'rb');
    		$pave_id = fread($logged_ouvrir,filesize($logged));
    		fclose($logged_ouvrir);}
    		else
    			$login = '.\Pages\login.inc.php';
    			$login_ouvrir = fopen($login,'rb');
    			$pave_id = fread($login_ouvrir,filesize($login));
    			fclose($login_ouvrir);
     
    	// paveTITRE & paveCONTENU
    	switch($page)
    		{
    		case 'index' : $paveTITRE = 'Bienvenue sur notre site'; $paveCONTENU = '.\Pages\Accueil.inc.php';
    				$pave_ouvrir = fopen($paveCONTENU,'rb');
    				$pave_contenu = fread($pave_ouvrir,filesize($paveCONTENU));
    				fclose($pave_ouvrir);
    				break;
    		case 'inscription' : $paveTITRE = 'S\'inscrire...'; $paveCONTENU = '.\Pages\Inscription.inc.php';
    				$pave_ouvrir = fopen($paveCONTENU,'rb');
    				$pave_contenu = fread($pave_ouvrir,filesize($paveCONTENU));
    				fclose($pave_ouvrir);
    				break;
    		case 'email' : $paveTITRE = 'Nous écrire'; $paveCONTENU = '.\Pages\Email.inc.php';
    				$pave_ouvrir = fopen($paveCONTENU,'rb');
    				$pave_contenu = fread($pave_ouvrir,filesize($paveCONTENU));
    				fclose($pave_ouvrir);
    				break;
    		case 'contrepeteries' : $paveTITRE = 'Les contrep&egrave;teries'; $paveCONTENU = '.\Pages\Contrepe.inc.php';
    				$pave_ouvrir = fopen($paveCONTENU,'rb');
    				$pave_contenu = fread($pave_ouvrir,filesize($paveCONTENU));
    				fclose($pave_ouvrir);
    				break;
    		case 'blondes' : $paveTITRE = 'Les blondes'; $paveCONTENU = '.\Pages\Blondes.inc.php';
    				$pave_ouvrir = fopen($paveCONTENU,'rb');
    				$pave_contenu = fread($pave_ouvrir,filesize($paveCONTENU));
    				fclose($pave_ouvrir);
    				break;
     
    		case 'Livredor' : $paveTITRE = ''; $paveCONTENU = '';
    				$pave_ouvrir = fopen($paveCONTENU,'rb');
    				$pave_contenu = fread($pave_ouvrir,filesize($paveCONTENU));
    				fclose($pave_ouvrir);
    				break;
    		case 'Liens' : $paveTITRE = ''; $paveCONTENU = '';
    				$pave_ouvrir = fopen($paveCONTENU,'rb');
    				$pave_contenu = fread($pave_ouvrir,filesize($paveCONTENU));
    				fclose($pave_ouvrir);
    				break;*/
    		default : $paveTITRE = 'Bienvenue sur notre site'; $paveCONTENU = '.\Pages\Accueil.inc.php';
    				$pave_ouvrir = fopen($paveCONTENU,'rb');
    				$pave_contenu = fread($pave_ouvrir,filesize($paveCONTENU));
    				fclose($pave_ouvrir);
    		}
     
    $resultat = ereg_replace('\[ID\]',$pave_id,$resultat);
    $resultat = ereg_replace('\[CONTENU\]',$pave_contenu,$resultat);
    $resultat = ereg_replace('\[TITRE\]',$paveTITRE,$resultat);
     
    return $resultat;
    }
    ?>
    Chaque lien du site est donc du style <a href="index.php?page=***"></a>
    Et jusqu'ici tout fonctionne à merveille...

    MAIS, il y a toujours un "mais", je souhaite afficher des scripts php dans mes pages *.inc.php.

    Exemple 1 :
    Voici le code dans la page *.inc.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div style="float:right; margin:20px; text-align:center; font-weight:bold;">
    	<?php include('.\scripts\horodatage.php'); ?>
    </div>
    Et voici le code de la page horodatage.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <?php
     
    $jour = date('l');
    $date = date('d');
    $mois = date('m');
    $annee = date('Y');
    $heure = date('G');
    $minutes = date('i');
     
    switch($jour)
    	{
    	case 'Monday' : $affichjour = 'Lundi';break;
    	case 'Tuesday' : $affichjour = 'Mardi';break;
    	case 'Wednesday' : $affichjour = 'Mercredi';break;
    	case 'Thursday' : $affichjour = 'Jeudi';break;
    	case 'Friday' : $affichjour = 'Vendredi';break;
    	case 'Saturday' : $affichjour = 'Samedi';break;
    	case 'Sunday' : $affichjour = 'Dimanche';break;
    	break;
    	}
     
    switch($mois)
    	{
    	case '01' : $affichmois = 'Janvier';break;
    	case '02' : $affichmois = 'F&eacute;vrier';break;
    	case '03' : $affichmois = 'Mars';break;
    	case '04' : $affichmois = 'Avril';break;
    	case '05' : $affichmois = 'Mai';break;
    	case '06' : $affichmois = 'Juin';break;
    	case '07' : $affichmois = 'Juillet';break;
    	case '08' : $affichmois = 'Ao&ucirc;t';break;
    	case '09' : $affichmois = 'Septembre';break;
    	case '10' : $affichmois = 'Octobre';break;
    	case '11' : $affichmois = 'Novembre';break;
    	case '12' : $affichmois = 'D&eacute;cembre';break;
    	break;
    	}
     
    print ($affichjour.' '.$date.' '.$affichmois.' '.$annee.'<br>Il est '.$heure.' h '.$minutes);
     
    ?>
    Et ma page index.php n'affiche rien (pas de message d'erreur mais rien à l'écran non plus).

    Dernier indice, quand je mets le script horodatage directement dans ma page *.inc.php (pour éviter l'include inutile), j'obtiens l'affichage bizzare suivant :

    Il est '.$heure.' h '.$minutes); ?>

    Ma question : Est-ce possible d'obtenir une telle imbrication ? Y a-t-il un problème de temporisation et d'ordre d'exécution des requêtes sur le serveur ?
    A quoi n'ai-je pas pensé ?

    Merci de votre concours.

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Salut,

    Citation Envoyé par franz.moraine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div style="float:right; margin:20px; text-align:center; font-weight:bold;">
    	<?php include('.\scripts\horodatage.php'); ?>
    </div>
    Les anti-slashs, c'est pour windows uniquement.

    Je sais pas sur quel os tu travailles, mais il a de forte chance que ton problème vienne de là .

    As tu mis ton error_reporting à E_ALL pour que php te signale tous les avertissements rencontrés ?

  3. #3
    Membre averti
    Homme Profil pro
    Expert Banque en ligne
    Inscrit en
    Septembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert Banque en ligne
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2005
    Messages : 17
    Par défaut
    Après avoir été confronté à quelques problèmes et fait plusieurs essais, j'en suis arrivé à la conclusion suivante :
    _ dans mon code HTML, mes chemins relatifs doivent être stipulés "../repertoire/fichier.extension"
    _ dans mon code PHP, cela ne fonctionne pas et je suis obligé de stipuler avec un seul point et des anti-slash => ".\repertoire\fichier.extension"

    Allez comprendre !!! ...sachant que je travaille sous XP Familial SP2, Dreamweaver 8, EasyPHP-2.01b et Firefox.

    As tu mis ton error_reporting à E_ALL pour que php te signale tous les avertissements rencontrés ?
    Quant à ça... je ne sais même pas ce que cela veut dire
    Désolé

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    La directive error_reporting est présente dans le httpd.conf d'apache il me semble, et permet de spécifier les types d'erreurs ou d'avertissement à afficher lors de l'execution de tes scripts.
    Cela permet par exemple, de ne jamais afficher d'erreurs sur ta page meme si il y en a dans ton code (attention, très mauvais habitude à ne jamais prendre )

  5. #5
    Membre averti
    Homme Profil pro
    Expert Banque en ligne
    Inscrit en
    Septembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert Banque en ligne
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2005
    Messages : 17
    Par défaut
    Je dois bien avouer que EasyPHP fait tellement bien les choses que je suis un ignare total dans ce domaine. Après un CTRL-F dans le httpd.conf je n'ai rien trouvé de qui se rapproche du error_reporting...

    Est-il possible de trouver sur le net une config "toute faite" de ce fichier ?
    Ouais je sais j'en demande beaucoup mais je ne me sens pas du tout capable de trifouiller dans le moteur...

    En plus, je crois que cela pourrait résoudre mon autre problème (posté dans une autre discussion)... celui de l'erreur 403 qui m'empêche tout travail sur ma base de données...

  6. #6
    Membre averti
    Homme Profil pro
    Expert Banque en ligne
    Inscrit en
    Septembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert Banque en ligne
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2005
    Messages : 17
    Par défaut
    En ce qui concerne l'imbrication des scripts PHP, n'ayant pas trouvé de solution, j'ai trouvé un semblant d'alternative (solution palliative dirons-nous!) : je passe mon include dans une balise "Object" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <object data="/scripts/horodatage.php" type="text/html" style="float:right; background-color:A4E19B; margin:0 20px 0 0;"></object>
    Pour ceux que cela dépannera...

    En revanche, je n'ai toujours pas solutionné mon souci d'accès au serveur : l'erreur Forbidden 403 continue de m'empêcher toute interaction avec le serveur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 22/12/2006, 15h02
  2. Réponses: 1
    Dernier message: 01/03/2006, 11h27
  3. Réponses: 2
    Dernier message: 06/02/2006, 16h41
  4. [Système] Execution de script php
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 24/12/2005, 15h01
  5. Réponses: 6
    Dernier message: 23/12/2005, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo