8796 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai remarqué, en lisant les sources des autres, que le PHP ne leur servait (le plus souvent) que ponctuellement, juste lorsqu'il y avait à utiliser des variables par exemple. Avec comme script quelque chose comme ça : bla bla html <?php $maVar ?> bla bla.

Moi, pour ne pas oublier de fermer mes balises mais aussi parce que cela interdit l'erreur, je mets <?PHP en début de page et ?> à la fin, et tout est développé en PHP.

Alors je me demandais : les moteurs (google par exemple) lisent-ils le script en PHP ou bien ne lisent-ils que le HTML ? Dans le premier cas, cela voudrait dire que mon site ne serait jamais référencé, non ?

D'autre part, comme beaucoup, j'ai une entête (header.inc) et un pied de page (footer.inc) qui reviennent à chaque page. Mais les METAs sont dans le header. Si le moteur ne lit pas le PHP (puisqu'il reste sur le serveur et n'est pas visible lorsqu'on demande la source) il ne pourra donc pas lire ni intégrer mes META.

Mais je mélange tout, peut-être...

Quelqu'un a un avis sur ces 2 questions, qui n'en font qu'une en fait ?

Merci de la réponse.
Modifié par whombat (28 Jul 2010 - 05:47)
Salut,

whombat a écrit :
les moteurs (google par exemple) lisent-ils le script en PHP ou bien ne lisent-ils que le HTML ?
Tu réponds toi-même à la question plus loin :
whombat a écrit :
le moteur ne lit pas le PHP (puisqu'il reste sur le serveur et n'est pas visible lorsqu'on demande la source)
En résumé, quand on visite une page PHP, le serveur, au lieu de renvoyer simplement la page comme il le fait avec les fichiers *.html, inteprète le code PHP et renvoit le résultat de cette interprétation. Le code PHP n'est donc JAMAIS renvoyé, et donc jamais visible (et c'est d'ailleurs heureux vu que pas mal de mots de passe y sont souvent écrits en clair, à commencer par celui de ton accès SQL).

whombat a écrit :
D'autre part, comme beaucoup, j'ai une entête (header.inc) et un pied de page (footer.inc) qui reviennent à chaque page. Mais les METAs sont dans le header. Si le moteur ne lit pas le PHP (puisqu'il reste sur le serveur et n'est pas visible lorsqu'on demande la source) il ne pourra donc pas lire ni intégrer mes META.
J'ai pas vraiment compris. La seule chose dont tu as à te préoccuper pour Google et consors, c'est le code HTML généré par ton code PHP, car c'est ça qui sera lu. Ce qui se passe sur le serveur avant la génération du code HTML ( = traitement PHP, avec éventuelles inclusions de header ou footer) n'a aucune répercussion sur la suite.
Modifié par marcv (26 Jul 2010 - 16:29)
whombat a écrit :

Moi, pour ne pas oublier de fermer mes balises mais aussi parce que cela interdit l'erreur, je mets <?PHP en début de page et ?> à la fin, et tout est développé en PHP.


Cela n'empêche en rien l'erreur ni le fait d'oublier de fermer les balises. Tout comme le client n'a rien à faire des programmes interprétés par le serveur, le serveur lui ne pige rien au langage html.

<?php ?> ne sert qu'a dire au serveur d'interpréter cette partie de ton programme comme du php.
Salut,

euh mais tu l'écris comment ton code html ? avec plein de echo ?

Un des intérêts du php ( a mes yeux ^^ ) c'est de pouvoir faire des includes .. comme ca au lieu de faire une entête pour toutes tes pages html .. tu a juste a faire un include de ton entête , et hop ta le même sur toutes tes pages ^^ comme ca si tu veux changé ton fichier css par exemple , hop en un coup tu le change sur toutes les pages .. le php reste du coté de ton serveur , il est interprété par le serveur , et le serveur ne renvoie que du code html .. , que se soit a toi a ton moteur de référencement ou a n'importe qui d'autre ^^ du coup ca change rien ..
Bon, et bien j'ai compris... Il ne faut me servir du code en PHP uniquement en cas de besoin (variables, includes, etc...) mais le reste du temps, et pour être vu et interprété par les moteurs de recherche, tout ce qui est important doit être en HTML.

J'ai pas à tout réecrire mais je vais le faire. J'ai bien fait de poser la question.

Merci à tous pour ces excellentes réponses.

Cordialement.
Modérateur
Bonjour,

whombat a écrit :
mais le reste du temps, et pour être vu et interprété par les moteurs de recherche, tout ce qui est important doit être en HTML.


En lisant cette phrase, je ne suis pas encore tout à fait convaincu que tu as bien compris le fonctionnement.

Le serveur où est hébergé ton site interprète le code PHP de ta page et ce qu'il envoi au navigateur est toujours du HTML. En résumé, le navigateur ne voit que le HTML généré, et n'a aucune idée si la page a été générée entièrement ou partiellement à la main, en PHP, en Coldfusion, en ASP, etc...

Pour t'assurer de bien comprendre, tu peux construire une page en PHP avec des includes, des boucles, des variables, des concaténations de texte. Ensuite, consulte cette page avec ton navigateur Web et vas dans le menu Affichage > Voir le code source de la page. Tu devrais y retrouver le code HTML qui a été généré. C'est ce code, et rien d'autres, que l'utilisateur ou le moteur de recherche voit.


* À noter que je n'ai parlé que du HTML généré afin d'alléger l'explication, mais le PHP peut générer du CSS, du Javascript, des images, des PDF, etc...
Modifié par Tony Monast (26 Jul 2010 - 13:20)
Hello,

Au final, que tu écrives :
<?php
	$foo = "Mon titre";
	echo '<h1>'.$foo.'</h1>';
?>

<?php
	echo '<h1>Mon titre</h1>";
?>

<?php
	$foo = "Mon titre";
?>
<h1><?php echo $foo; ?></h1>

<h1>Mon titre</h1>


C'est exactement pareil, pour les trois premiers ton serveur va interpréter le PHP, et renvoyer du HTML au client. Pour le dernier, il n'y a pas de PHP a executer, juste du HTML. Au final, le résultat est le même.

Ce que voient les moteurs de recherche et les navigateurs, c'est le code une fois retourné par ton serveur, donc ici du HTML. Tout ce qui est entre <?php ?> n'est pas retourné, il est executé.
Modifié par Tymlis (26 Jul 2010 - 22:56)
Ouf, je souffle...

Pas pour l'histoire de supprimer le PHP lorsqu'il n'est pas RIGOUREUSEMENT indispensable, comme je croyais l'avoir compris, mais parce qu'il m'arrive un truc bizare : lorsque ma page est en PHP, (echo "<HTML> <HEAD> etc...) tout sous PHP, elle commence au pixel 0, au top.

Mais en supprimant le PHP, en inscrivant le classique : <HTML> <HEAD>, ma page commence au pixel 6 ou 7... J'ai une bande noire au haut de mon site...

Il est vrai que j'ai des déclarations PHP avant le HTML (dans les 2 cas) mais je ne comprends pas l'écart.

Je remets le PHP, cela fonctionne parfaitement, je l'enlève et j'ai un écart... Je peux refaire la manip dix fois, à chaque coup je gagne.

Je n'y comprends rien. J'ai beau fouiller, essayer des trucs, rien n'y fait. Vous auriez rencontré ce type de problème ?
Modérateur
Tu dois comparer le code HTML généré avec et sans le PHP, tu y verras peut-être le souci. Tel qu'expliqué plus haut, consulte la page avec ton navigateur Web et fais Affichage > Code source de la page (ou clic droit > Afficher le code source de la page).
Pas bête du tout.

L'oeuf de Colomb mais, même sous les yeux, je n'y avais pas pensé.

Je vais faire comme ça. Maintenant, si je suis rassuré par mon histoire de PHP / Google, je reste sur ma faim sur ce dernier pb. Il me perturbe... (si j'ose dire). Je n'aime pas avancer sans comprendre.

Merci de l'astuce.
alors ?
ça peut être dû aux headers qui sont différents si ton affichage commence directement en html ou par une phase php. C'est d'ailleurs super relou comme truc, mais ça s'esquive en mettant un doctype (ce que tu devrais faire de toute façon)
Mea culpa. C'est de ma très grande faute.

En effet, j'ai laissé, lors de la passation PHP -> HTML et vice et versa un "; qui, en PHP, collait impec mais en HTML...

RE-merci pour le tuyau.

Cordialement.

Whombat
Corrigez moi si je me trompe mais il est préférable de ne jamais fermer ses balises php (?>) en fin de page. Le serveur la ferme automatiquement, cela évite pleins de petits soucis ! Smiley smile
Cocci_uk a écrit :
Corrigez moi si je me trompe mais il est préférable de ne jamais fermer ses balises php (?>) en fin de page. Le serveur la ferme automatiquement, cela évite pleins de petits soucis ! Smiley smile


J'avais lu ça un jour dans la doc.
Ça évite quoi comme soucis ? J'arrive pas à m'en souvenir et en y réfléchissant un peu j'en sais rien Smiley lol .
Ne pas fermer la dernière balise PHP (celle qui est juste avant la fin du fichier) ça évite de se retrouver avec du contenu envoyé au navigateur qui vous empeche alors de définir des header() ou des cookies (le fameux "Warning: Cannot modify header information - headers already sent")