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

  1. #1
    Membre à l'essai
    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
    Points : 14
    Points
    14
    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 éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    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 à l'essai
    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
    Points : 14
    Points
    14
    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 expérimenté

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    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 à l'essai
    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
    Points : 14
    Points
    14
    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 à l'essai
    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
    Points : 14
    Points
    14
    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

  7. #7
    Membre à l'essai
    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
    Points : 14
    Points
    14
    Par défaut
    Fichier error.log retrouvé !!!

    voici ce qu'il me dit :

    [Tue Aug 21 10:29:53 2007] [error] [client 127.0.0.1] (20024)The given path misformatted or contained invalid characters: Cannot map POST /%3C?php%20echo%20$loginFormAction;%20?%3E HTTP/1.1 to file, referer: http://127.0.0.1/index.php?page=index
    Une idée pour m'aider ?

  8. #8
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Pour l'error_reporting, c'est dans le php.ini que cette valeur se situe.

    Mais tu peux la modifier depuis tes scripts en mettant :

    error_reporting(E_ALL | E_STRICT);

    Au tout début de ton code.

    Pour ce qui est de ton erreur, c'est à première vue un problème d'encodage de ton fichier.

  9. #9
    Membre à l'essai
    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
    Points : 14
    Points
    14
    Par défaut
    Je vais vous en raconter une bien bonne !!!

    Après avoir une nouvelle fois désinstallé puis réinstallé EasyPHP, supprimé toute trace de mon site sous Dreamweaver 8 puis l'y avoir recréé page à page...
    Et ben... ça ne marchait toujours pas !

    Alors, très énervé ("mega vénère" comme il paraît que cela se dit aujourd'hui), j'ai pris mon clavier à deux mains et j'ai écrit (ou -s, je ne sais plus) les scripts PHP/MySQL à la main !!! Avec mes deux p'tites mimines...
    Ben... ça marche le Feu de Dieu !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Donc ce sont les scripts automatiques de Dreamweaver qui buggaient.
    Hein ? Non, j'ai pas entrepris de les analyser... Si vous insistez, je vous donnerai tout ce qu'il faut pour comparer les codes. Moi, j'ai autre chose à faire : un boulot, trois gosses et bientôt la fin des vacances... je vais à l'essentiel.

    Merci à Xunil et Raideman ! @+

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

Discussions similaires

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

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