Symbole non interprété par PHP5

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Symbole non interprété par PHP5

par Calimero » 26 nov. 2008, 12:24

A ton service :) à bientôt si tu as d'autres soucis.

par seacko » 26 nov. 2008, 11:00

Merci beaucoup pour ces précieuses informations, il est vrai que dans mon bouquin qui date un peu, il n'y a pas cette subtilité (c'est un guide PHP4 :oops: )

Encore merci.

Seacko

par Calimero » 25 nov. 2008, 17:37

Ton problème est situé dans la première ligne du code que tu as posté : tu utilises les tags d'ouverture PHP courts ( <? ), et c'est une fonctionnalité qui a été désactivée par défaut dans PHP5.

Il suffit de remplacer par le tag long équivalent ( <?php ) et tout devrait rentrer dans l'ordre.

Je voulais que tu fasses la démarche d'aller regarder la source HTML pour que tu voies bien le problème dans son ensemble : l'accesseur d'objet ( -> ) n'est pas responsable de ce qui t'arrive (En fait il paye juste sa ressemblance avec une fin de balise HTML, ce qui induit en erreur ton navigateur). Il faut que tu retiennes les points suivants :

- Le vrai résultat de l'éxécution de php sur le serveur est la source HTML de la page, que tu sais maintenant visualiser et examiner. L'affichage dans le navigateur n'est qu'une interprétation de cette dernière (si à la base PHP ne s'éxécute pas correctement, la représentation finale ne peut bien sûr pas être correcte, mais n'est pas le meilleur moyen de diagnostiquer l'origine).

- Comme PHP s'éxécute sur le serveur, il est complètement anormal d'avoir la moindre trace de code PHP au niveau du navigateur ou bien de la source HTML (et dans la grande majorité des cas, les short tags sont coupables...).

Est-ce que c'est mieux maintenant ?

par seacko » 25 nov. 2008, 17:20

D'abord merci pour le réponse.

En fait dans le script que je prend en exemple je n'ai même pas de HTML.
Je le met en intégralité, ca sera sans doute plus parlant :

Code : Tout sélectionner

<? session_start(); $LoginPasswordDansIni = isset($_GET["ini"]) ? $_GET["ini"] : 0; include("privee/objetBCB.php"); include("privee/bd_config.inc.php"); include("privee/bdges_config.inc.php"); include("privee/nopassword.inc.php"); $objUser = new BCBUtilisateur(); $result = $objUser->InitConnexion($objDatabase->LinkDB, $TypeDatabase); if ($result < 0) { // On affiche le message d'erreur print "Erreur $phpResult<br>" . $objUser->GetLastError(); exit(); } $result = $objUser->InitConnexionGestion($objDatabaseGestion->LinkDB, $TypeDatabaseGestion); if ($result < 0) { // On affiche le message d'erreur print "Erreur $phpResult<br>" . $objUser->GetLastError(); exit(); } if ($LoginPasswordDansIni != 1) { $login = isset($_GET["login"]) ? $_GET["login"] : ""; $password = isset($_GET["password"]) ? $_GET["password"] : ""; if (($login == "") and ($password == "")) { $login = isset($_POST["login"]) ? $_POST["login"] : ""; $password = isset($_POST["password"]) ? $_POST["password"] : ""; $url = isset($_POST["url"]) ? $_POST["url"] : ""; } } $phpResult = $objUser->Check($login, $password); if ($phpResult < 0) { // On affiche le message d'erreur print "Erreur $phpResult<br>" . $objUser->GetLastError(); exit(); } if ($phpResult == 1) { $_SESSION["CodeUtilisateur"] = $objUser->Code; $_SESSION["CodeEtablissement"] = $objUser->CodeEtablissement; $_SESSION["Droit1"] = $objUser->GestionEtablissement; $_SESSION["Droit2"] = $objUser->GestionLivret; $_SESSION["Droit3"] = $objUser->GestionUtilisateur; $_SESSION["Droit4"] = $objUser->GestionOutils; $_SESSION["Droit5"] = $objUser->GestionPassword; if (((strtolower($login) == "notice") and (strtolower($password) == "notice")) or ((strtolower($login) == "notices") and (strtolower($password) == "notices"))) { $_SESSION["Notice"] = 1; } else { $_SESSION["Notice"] = 2; } // Par défaut la monographie s'ouvre sur le chapitre indications $_SESSION["derniergroupechapitre"] = "4|4"; if (($objUser->GestionPassword == 1) and (strlen($password) < 5)) { $url = "account.php?i=1"; } $objDatabase->ReleaseConnexion(); $objDatabaseGestion->ReleaseConnexion(); $url = isset($_GET["url"]) ? $_GET["url"] : ""; if ($url == "") { header("location: recnom.php"); } else { $url="recnom.php"; header("location: $url"); } } else { $objDatabase->ReleaseConnexion(); $objDatabaseGestion->ReleaseConnexion(); header("location: index.php?incorrect=1"); } ?>
Et le résultat est une page avec tout ce qui suit le premier "->" qui apparait comme un texte tout simple.

par Calimero » 25 nov. 2008, 17:06

Bonjour,

tu as donc des traces de code php qui apparaissent au milieu du html, ce qui est anormal. As-tu regardé le code source HTML de la page qui pose problème ? (Menu affichage / Code source de la page dans firefox)

Symbole non interprété par PHP5

par seacko » 25 nov. 2008, 17:01

Bonjour tout le monde,

Tout nouveau de le monde féérique du PHP, j'aurais besoin de vos lumières.
Tout d'abord l'environnement : PHP 5.2.6 et Apache 2.2 tourne correctement.
J'ai un script PHP qui me permet d'initialiser la connexion à une base mysql pour vérifier login/mdp mais dès que le symbole "->" apparait dans le PHP arrête de "traduire" le code et l'affiche comme si c'était du texte...

Par exemple :

Code : Tout sélectionner

$result = $objUser->InitConnexion($objDatabase->LinkDB, $TypeDatabase); if ($result < 0) { // On affiche le message d'erreur print "Erreur $phpResult<br>" . $objUser->GetLastError(); exit(); }
j'ai à l'écran tout ce qui suit $objUser->, sans message d'erreur, comme un simple texte...

Merci de m'aiguiller.

Seacko