Discussion:
[newbie] PHP 5
(trop ancien pour répondre)
SAM
2008-01-29 16:52:37 UTC
Permalink
Salutatous,

encore et toujours newby (newbie ?) en PHP
je suis tout fier de faire fonctionner 3, 4 pages en php 4
sur mon Mac.

Voulant jouer avec les fonctions domesques de php ...
grosse déception ...
la plus simple ne fonctionne pas ... :-(

J'installe donc un PHP5 et là ... aucune de mes si jolies pages ne
fonctionne plus :-(

Ké passa ?
Moult changements dans le httpd.conf d'Apache ... rien n'y fait.

Bon, finalement, je mofifie tous mes
<?
par des
<?php
ça va mieux, merci.

Il m'a fallu aussi changer mes <?= $mavar ?>
par des <?php echo $mavar ?>

Questions :
- il y a t-il qque chose à bricoler dans le php.ini
afin de refaire fonctionner ces raccourcis ?
- c'est bien dans le PHP 5.2.4 que j'aurai les fonctions DOM ?
J'ai ça comme info :
OM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.6.16

et puis si on peut me rappeler une url d'un site pas trop compliqué et
en Fr pour le PHP5 ce serait super.
J'ai déjà celle-là : <http://fr.php.net/manual/fr/index.php>
(ils n'ont pas tt le truc en téléchargement ? leur feuille de style est
peu lisible sur mon Mac)
--
sm
Paul
2008-01-29 22:37:10 UTC
Permalink
Post by SAM
Salutatous,
...
Post by SAM
J'ai déjà celle-là : <http://fr.php.net/manual/fr/index.php>
(ils n'ont pas tt le truc en téléchargement ? leur feuille de style est
peu lisible sur mon Mac)
SI FAIT : http://fr.php.net/download-docs.php
Jacques-A
2008-01-29 22:37:10 UTC
Permalink
Post by SAM
Salutatous,
encore et toujours newby (newbie ?) en PHP
je suis tout fier de faire fonctionner 3, 4 pages en php 4
sur mon Mac.
Voulant jouer avec les fonctions domesques de php ...
grosse déception ...
la plus simple ne fonctionne pas ... :-(
J'installe donc un PHP5 et là ... aucune de mes si jolies pages ne
fonctionne plus :-(
Ké passa ?
Moult changements dans le httpd.conf d'Apache ... rien n'y fait.
Bon, finalement, je mofifie tous mes
<?
par des
<?php
ça va mieux, merci.
Il m'a fallu aussi changer mes <?= $mavar ?>
par des <?php echo $mavar ?>
- il y a t-il qque chose à bricoler dans le php.ini
afin de refaire fonctionner ces raccourcis ?
Il y a la directive "short_open_tag " (précédée de consignes déconseillant
de la mettre à On si on désire un codage portable)
Post by SAM
- c'est bien dans le PHP 5.2.4 que j'aurai les fonctions DOM ?
OM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.6.16
et puis si on peut me rappeler une url d'un site pas trop compliqué et en
Fr pour le PHP5 ce serait super.
J'ai déjà celle-là : <http://fr.php.net/manual/fr/index.php>
(ils n'ont pas tt le truc en téléchargement ? leur feuille de style est
peu lisible sur mon Mac)
Question de gout, choisir dans les nombreues réponses trouvées ici :
http://www.google.com/search?hl=fr&rls=com.microsoft%3Aen-US&q=manuel+php&btnG=Rechercher&lr=lang_fr>> --> sm
SAM
2008-01-30 08:10:19 UTC
Permalink
Post by Jacques-A
Post by SAM
Il m'a fallu aussi changer mes <?= $mavar ?>
par des <?php echo $mavar ?>
- il y a t-il qque chose à bricoler dans le php.ini
afin de refaire fonctionner ces raccourcis ?
Il y a la directive "short_open_tag " (précédée de consignes
déconseillant de la mettre à On si on désire un codage portable)
Ha! c'est vrai qu'il est possible que tt le monde ne veuille pas ces
racourcis.

Et un htacces (ou un php.ini perso) pourrait-il régler la chose chez
l'hébergeur ?
Post by Jacques-A
http://www.google.com/search?hl=fr&rls=com.microsoft%3Aen-US&q=manuel+php&btnG=Rechercher&lr=lang_fr>>
Oui, bon, j'ai sans doute déjà dû faire que chose d'approchant ;-)
(devait pas y avoir microsoft au milieu)
--
sm
BertrandB
2008-02-01 22:45:00 UTC
Permalink
Post by SAM
Et un htacces (ou un php.ini perso) pourrait-il régler la chose chez
l'hébergeur ?
Et bien ça dépend mais dans les hébergements mutalisés (du moins tout
ceux que je connais) PHP est en mode cgi et donc ne peut être réglé par
.htaccess (qui est uniquement utilisé par mod-php).

pas php.ini personnel non plus il reste les fonction ini_set mais
semblerait il pas pour short_open_tag

http://fr2.php.net/manual/fr/ini.php#ini.list

Quel hébergeur et quel hébergement ? la lecture du phpinfo est toujours
pleine d'enseignement.

Je laisserai parler/troller d'autres sur l'intérêt des short open-tag
mais <?php est je crois plus conforme avec xml (processing instruction)
Antoine
2008-02-02 21:25:47 UTC
Permalink
Post by SAM
Ha! c'est vrai qu'il est possible que tt le monde ne veuille pas ces
racourcis.
En fait cela peut interférer avec certains autres balises qui utilisent
la même syntaxe ou une approchant (exemple : <?xml version="1.0"
encoding="ISO-8859-1"?>).

Beaucoup de pages expliquent cela très bien, en voici une au hasard
http://blog.wampserver.com/index.php/2005/11/14/les-short-open-tags/

Antoine
SAM
2008-02-04 00:39:23 UTC
Permalink
Post by Antoine
Post by SAM
Ha! c'est vrai qu'il est possible que tt le monde ne veuille pas ces
racourcis.
En fait cela peut interférer avec certains autres balises qui utilisent
la même syntaxe ou une approchant (exemple : <?xml version="1.0"
encoding="ISO-8859-1"?>).
Ha ! ? certes.
Post by Antoine
Beaucoup de pages expliquent cela très bien, en voici une au hasard
http://blog.wampserver.com/index.php/2005/11/14/les-short-open-tags/
Bon, je m'habitue petit à petit, mais pas sans qques oublis...

Merci.

Prochaine étape :
se souvenir de ce qu'il faut faire pour que le truc-bazar rapporte les
erreurs (une sorte de console à la Firefox pour le javascript).
C'est un peu casse pied de voir arriver une page vide à cause d'une ) ou
un ; manquant à la 1265ème ligne :-(
--
sm
Mickael Wolff
2008-02-04 09:11:15 UTC
Permalink
Post by SAM
se souvenir de ce qu'il faut faire pour que le truc-bazar rapporte les
erreurs (une sorte de console à la Firefox pour le javascript).
C'est un peu casse pied de voir arriver une page vide à cause d'une ) ou
un ; manquant à la 1265ème ligne :-(
C'est error_reporting. Mais très franchement, le fichier error_log est
beaucoup plus pratique. En production.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
SAM
2008-02-04 13:30:20 UTC
Permalink
Post by Mickael Wolff
Post by SAM
se souvenir de ce qu'il faut faire pour que le truc-bazar rapporte les
erreurs (une sorte de console à la Firefox pour le javascript).
C'est un peu casse pied de voir arriver une page vide à cause d'une ) ou
un ; manquant à la 1265ème ligne :-(
C'est error_reporting. Mais très franchement, le fichier error_log est
beaucoup plus pratique. En production.
N'y a t'il pas moyen à moyenner qu'au moins les premières lignes sans
erreur soient envoyées et affichées par le navigateur (Firefox) ?
Quand ça s'arrête, on peut imaginer que c'est là que le bât blesse, non?

(je n'en suis pas encore à faire des scripts de 1265 lignes ;-)
mais déjà avec une dizaine, trouver qu'un ; manque ...
et s'arracher les cheveux à trouver une fonction php voisine pour
contrer le pb qui n'existe en fait pas avec celle choisie, pas glop! )

Les erreurs-log ça doit surtout être très utile quand on s'attaque aux
BdD, j'imagine.

Pour le moment je n'en suis qu'à la découverte des fonctions simples de
PHP.
Déjà que les arrays me semblent essstrémement compliqués ! :-)
y a encore du chemin à faire.

Pour en revenir à mes moutons, je suis allé voir :
<http://fr.php.net/manual/fr/ref.errorfunc.php#ini.display-errors>
Bon, comment fais-je pour que le PHP me dise et m'affiche :
erreur manque ')' ici : [extrait de code]
Il y a qque chose à bricoler dans l'ini ?
(il semblerait ... et que ce n'est pas une bonne idée)
Ou dois-je avoir une de ces fonctions d'erreur glissée dans mon script
en test ?
Ça ne m'est pas clair du tout.

Je vais tenter (en début de fichier) :
ini_set('error_reporting', E_STRICT);
mais je crains que ça ne modifie le php.ini ?


Où est planqué ce fichier de rapport d'erreurs ?
--
sm
Mickael Wolff
2008-02-04 15:30:39 UTC
Permalink
Post by SAM
N'y a t'il pas moyen à moyenner qu'au moins les premières lignes sans
erreur soient envoyées et affichées par le navigateur (Firefox) ?
Quand ça s'arrête, on peut imaginer que c'est là que le bât blesse, non?
Dans ce cas-là, il peut être utile d'utiliser xdebug, sur le serveur
de développement (j'insiste).
<http://www.nexen.net/actualites/php/17990-tout_sur_xdebug_:_dossier_complet.php>
Ça retourne la pile d'appel, ce qui est bien plus utile que les
dernières lignes du script ;) Et surtout le contexte local où l'erreur
est levée.
Post by SAM
(je n'en suis pas encore à faire des scripts de 1265 lignes ;-)
mais déjà avec une dizaine, trouver qu'un ; manque ...
Je peux lancer le troll sur « taka user d'un vrai ed txt n00b ! » ;)
Post by SAM
et s'arracher les cheveux à trouver une fonction php voisine pour
contrer le pb qui n'existe en fait pas avec celle choisie, pas glop! )
xdebug répond exactement à ce que tu cherches. Et comme tu le verras à
l'usage, xdebug améliore la sortie de var_dump.
Post by SAM
Les erreurs-log ça doit surtout être très utile quand on s'attaque aux
BdD, j'imagine.
Non, je parles des Logs du serveur Web. Lorsque error_reporting est à
Off, c'est là que les erreurs sont crachées. Mais attention, il faut
aussi que log_errors soit à Off !
Post by SAM
Ça ne m'est pas clair du tout.
Comme dit, regardes la ressource sur xdebug que je t'ai lancé.
Post by SAM
ini_set('error_reporting', E_STRICT);
mais je crains que ça ne modifie le php.ini ?
Non, c'est à la volé. Mais il faut que PHP soit configuré pour
autoriser la modification de l'option.

error_reporting = E_ALL & ~E_NOTICE
display_errors = On
Post by SAM
Où est planqué ce fichier de rapport d'erreurs ?
Ça dépend de la configuration du serveur Web et de la configuration de
PHP. Dans Apache, c'est la directive ErrorLog (attention, elle peut être
définie spécifiquement pour le Host et le VirtualHost). Dans PHP, tu
peux définir le fichier de log spécifique nativement.

log_errors = On
error_log = '/var/log/php/hell'

Mais sinon, le php.ini est bien documenté, il apporte beaucoup de
conseils.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
SAM
2008-02-04 17:03:42 UTC
Permalink
Post by Mickael Wolff
Post by SAM
N'y a t'il pas moyen à moyenner qu'au moins les premières lignes sans
erreur soient envoyées et affichées par le navigateur (Firefox) ?
Quand ça s'arrête, on peut imaginer que c'est là que le bât blesse, non?
Dans ce cas-là, il peut être utile d'utiliser xdebug, sur le serveur
de développement (j'insiste).
Si je pouvais éviter de tripoter mon serveur ça m'éviterai de faire des
c...ies.
Post by Mickael Wolff
<http://www.nexen.net/actualites/php/17990-tout_sur_xdebug_:_dossier_complet.php>
Ça retourne la pile d'appel, ce qui est bien plus utile que les
dernières lignes du script ;) Et surtout le contexte local où l'erreur
est levée.
Houla!
Ce n'est pas un peu un rouleau compresseur pour écraser des mouches ?
(à mon niveau là qui est bien bas)
Post by Mickael Wolff
Post by SAM
(je n'en suis pas encore à faire des scripts de 1265 lignes ;-)
mais déjà avec une dizaine, trouver qu'un ; manque ...
Je peux lancer le troll sur « taka user d'un vrai ed txt n00b ! » ;)
ça ne suffit pas,
il faut aussi des lunettes propres et bien se rapprocher de l'écran
2 conditions qui ne sont jamais réunies ! :-)

Bien qu'une 3ième soit souvent absente : relire ce qui est écrit.
(très mauvaise habitude de confier son JS à la sagacité de Fx et sa console)
Post by Mickael Wolff
Post by SAM
Ça ne m'est pas clair du tout.
Comme dit, regardes la ressource sur xdebug que je t'ai lancé.
Pour le moment vaguement survolé (ma lecture en diagonale en anglais est
encore à parfaire) mais comme tu insistes j'y retournerai.
Post by Mickael Wolff
Non, c'est à la volé. Mais il faut que PHP soit configuré pour
autoriser la modification de l'option.
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
Dans PHP, tu peux définir le fichier de log spécifique nativement.
log_errors = On
error_log = '/var/log/php/hell'
Mais sinon, le php.ini est bien documenté, il apporte beaucoup de
conseils.
Je crois que je vais commencer par ça.
Je m'en fais une copie dès que je l'ai retrouvé...
(j'espère que j'ai une version en fr)

Merci de ta patience
--
sm
Jean-Francois Ortolo
2008-02-04 15:38:52 UTC
Permalink
Post by SAM
(je n'en suis pas encore à faire des scripts de 1265 lignes ;-)
mais déjà avec une dizaine, trouver qu'un ; manque ...
et s'arracher les cheveux à trouver une fonction php voisine pour
contrer le pb qui n'existe en fait pas avec celle choisie, pas glop! )
Bonjour Monsieur

Je sais pas pour Windows, mais sous Linux, vous pouvez vérifier qu'un
script PHP compile ( a une syntaxe correcte ), en faisant:

php -l <nom_du_script>

Cette commande donne les erreurs de syntaxe avec les numéros de ligne
où elles se produisent.

Cependant, cette commande ne détecte pas les noms de fonction non
existantes, les constantes non déclarées, plus quelques autres babioles,
que seul une exécution réelle peut vous montrer. Mais pour dégrossir la
mise au point, c'est très utile.

En tout cas, votre navigateur doit vous montrer les erreurs et les
numéros de lignes où elles se produisent.

Bien à vous.

Amicalement.

Jean-Francois Ortolo
--
Visitez mon site gratuit donnant des Statistiques
et des Historiques Graphiques sur les Courses de Chevaux
http://www.ortolojf-courses.com
SAM
2008-02-04 17:03:42 UTC
Permalink
Post by Jean-Francois Ortolo
Post by SAM
(je n'en suis pas encore à faire des scripts de 1265 lignes ;-)
mais déjà avec une dizaine, trouver qu'un ; manque ...
et s'arracher les cheveux à trouver une fonction php voisine pour
contrer le pb qui n'existe en fait pas avec celle choisie, pas glop! )
Bonjour Monsieur
Bonjour Maître turfiste,
Post by Jean-Francois Ortolo
Je sais pas pour Windows, mais sous Linux, vous pouvez vérifier qu'un
Le blème est que je ne connais ni l'un ni l'autre ;-)
Post by Jean-Francois Ortolo
php -l <nom_du_script>
Boudiou!
mes malheureux scripts php sont noyés dans mon html là présentement.
Ils ne pètent pas bien haut, ce qui ne les empêchent pas d'être mal
codés parfois.
Post by Jean-Francois Ortolo
En tout cas, votre navigateur doit vous montrer les erreurs et les
numéros de lignes où elles se produisent.
C'est bien ce que j'aurais imaginé, mais ...
non ...
rien ... page blanche, sacrédiou !

Je subodore que mon PHP est réglé par défaut sur quiet ?!
(ce n'est pas moi qui l'ai compilé et je n'ai pas touché à son ini)
Post by Jean-Francois Ortolo
Bien à vous.
Amicalement.
De même,
Stéphane Moriaux.
--
sm
BertrandB
2008-02-05 10:18:24 UTC
Permalink
Post by SAM
Boudiou!
mes malheureux scripts php sont noyés dans mon html là présentement.
Ils ne pètent pas bien haut, ce qui ne les empêchent pas d'être mal
codés parfois.
Post by Jean-Francois Ortolo
En tout cas, votre navigateur doit vous montrer les erreurs et les
numéros de lignes où elles se produisent.
Et bien voilà une forte piste d'amélioration ;)
Rendre le code plus modulaire. Et éventuelement mettre "Tout" le PHP
dans un fichier à part et ne garder dans le "html" que des <?php echo
$var ou des <?php fonction

Les bonnes habtudes en javascript restent des bonnes habitudes en php.
SAM
2008-02-05 23:43:02 UTC
Permalink
Post by BertrandB
Post by SAM
Boudiou!
mes malheureux scripts php sont noyés dans mon html là présentement.
Ils ne pètent pas bien haut, ce qui ne les empêchent pas d'être mal
codés parfois.
Post by Jean-Francois Ortolo
En tout cas, votre navigateur doit vous montrer les erreurs et les
numéros de lignes où elles se produisent.
ça y est, j'ai mis dans les pages-test :
ini_set( 'display_errors' , true );
j'ai maintenant les fatales erreurs :-)
C'est un mieux et parfois un ; manquant arrive à fataliser et le php à
me renvoyer le N° de ligne.
Post by BertrandB
Et bien voilà une forte piste d'amélioration ;)
Rendre le code plus modulaire. Et éventuelement mettre "Tout" le PHP
dans un fichier à part et ne garder dans le "html" que des <?php echo
$var ou des <?php fonction
Les bonnes habtudes en javascript restent des bonnes habitudes en php.
Ha! là je pratique pas le php comme ça dans mes 'tits trucs d'écriture
d'html via php de mes 'tites pages que je tente de réaliser

C'est plutôt du genre :

<?php
if($truc) {
?>
<p>mon code kivabien</p>
<?php
} else {
?>
<p>code de secours</p>
<?php
}
?>


Bon ... j'avoue utiliser l'include d'une fonction qque part ;-)
--
sm
BertrandB
2008-02-06 20:49:02 UTC
Permalink
Post by SAM
Ha! là je pratique pas le php comme ça dans mes 'tits trucs d'écriture
d'html via php de mes 'tites pages que je tente de réaliser
<?php
if($truc) {
?>
<p>mon code kivabien</p>
<?php
} else {
?>
<p>code de secours</p>
<?php
}
?>
Quand à mixer je préfère la syntaxe alternative

<?php if($truc): ?>
<p>Ton code Qui va Bien</p>
<?php else: ?>
<p>Le code de secours</p>
<?php endif; ?>

Et il est encore mieux de faire une fonction php en début de fichier qui
te permet d'écrire dans ton html
<p><?php le_code_qui_va_bien($truc) ?></p>
SAM
2008-02-07 12:23:19 UTC
Permalink
Post by BertrandB
Post by SAM
Ha! là je pratique pas le php comme ça
<?php
if($truc) {
?>
<p>mon code kivabien</p>
<?php
} else {
(...)
Post by BertrandB
Quand à mixer je préfère la syntaxe alternative
<?php if($truc): ?>
<p>Ton code Qui va Bien</p>
Oui, certes :-)
Post by BertrandB
Et il est encore mieux de faire une fonction php en début de fichier qui
te permet d'écrire dans ton html
<p><?php le_code_qui_va_bien($truc) ?></p>
J'utilise surtout ça pour écrire des variables définies par ailleurs
(c'était d'ailleurs exposé en post initial)
En tous cas (sauf appel à une Bdd ou à une routine genre boucle par
exemple) je préfère ne pas faire écrire le html par le php, c'est trop
difficile à arriver à ce que le code final soit vraiment propre
(problèmes d'indentation en particulier).

Enfin ... pour le moment j'en suis là.
Ça évoluera certainement.
--
sm
Continuer la lecture sur narkive:
Loading...