Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 26/11/2011 10:34:25

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

envoyer un code dans le header via une page

bonjour
dans une page j'aimerai envoyer un code php dans le header comment qu'on fait ???

Dernière modification par snypi (26/11/2011 10:34:39)


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#2 26/11/2011 11:53:39

Super_chemist
Membre
Inscription : 27/05/2011
Messages : 417

Re : envoyer un code dans le header via une page

Salut

Dans zdiaporama, j'ai utilisé la variable self::$cms->content['js'] pour le javascript, et self::$cms->content['dftcss'] pour le css.
ATTENTION, ces variables peuvent déja contenir des choses (par exemple si tu as d'autres modules sur ta page), donc il faut CONCATENER !
Et si tu veux placer dans une page php et non un module, il faut remplacer self::$cms par $this

Pour concaténer en php, il faut utiliser l'opérateur .=

// Ceci ajoute un script à la fin de la variable content['js']. Attention aux guillemets !
self::$cms->content['js'] .= '<script language="javascript" type="text/javascript"> /*TON CODE ICI*/ </script>' ;

// Tu peux aussi passer par une variable tampon
$ma_chaine_tampon = ma_fonction_qui_renvoie_un_string();
self::$cms->content['js'] .= $ma_chaine_tampon;

// Pour concatérer deux variables, c'est l'opérateur point (.)
$ma_chaine_tampon = $chaine1.$chaine2;
$ma_chaine_tampon = 'bonjour'.$user_name;

Etc, je ne te refais pas un cours !

En fouillant dans le zite.php, j'ai trouvé toutes ces variables:

$this->content['dftcss']
$this->content['localcss']
$this->content['css']
$this->content['js']

JPG, quelles sont les différences entre dftcss, localcss et css ?

Hors ligne

#3 26/11/2011 12:19:14

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : envoyer un code dans le header via une page

en fait c'est une page contact ou j'ai besoins d'envoyer un formulaire
et dans la partie head de cette page j'ai besoins de rajouter du code "php"
pour verification des champs saisis
ces solution sont pour du js et du css !!
comment je peut rajouter juste pour cette page du code php?


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#4 26/11/2011 12:27:57

Super_chemist
Membre
Inscription : 27/05/2011
Messages : 417

Re : envoyer un code dans le header via une page

Tu ne peux pas !

Le code php est par définition exécuté sur le serveur. Ca n'a aucun sens de l'intégrer dans le html renvoyé au client. Le navigateur web ne sait pas lire le php...

Pour exécuter du code chez le client, pas le choix, c'est par javascript (qui est tout à fait capable de vérifier les champs saisis à la validation du formulaire, sauf si tu dois comparer avec une base de données)


Si vraiment tu veux passer par le serveur et le php, alors il te faudra faire un module (d'où l'utilisation du module contact...), car je ne pense pas qu'il soit possible de récupérer du GET/POST dans les pages...

Sinon, tu peux aussi te faire un fichier contact.php à la racine, qui n'affiche rien, ne fait que calculer et rediriger, et l'appeler via ton formulaire.

Hors ligne

#5 26/11/2011 12:34:07

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : envoyer un code dans le header via une page

et pour le client qui à désactiver le javascript !!! on ne peut vérifier sont code !!!
et puis domage un $this->content['php'] aurais pu le faire smile

Dernière modification par snypi (26/11/2011 12:36:50)


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#6 26/11/2011 18:43:04

Super_chemist
Membre
Inscription : 27/05/2011
Messages : 417

Re : envoyer un code dans le header via une page

Mais non, un $this->content[php] n'a pas de sens ! Je crois que tu n'a pas bien compris le principe d'un site en php :

1- Le client (donc le navigateur de l'utilisateur) demande l'affichage d'une page.php, éventuellement avec des paramètres (par exemple le contenu d'un formulaire que l'utilisateur viens de valider).
2- Le serveur charge en mémoire la page.php, les paramètres, et exécute le script php. Ceci a lieu dans la mémoire du serveur, pendant ce temps là, le client patiente en attente de la réponse.
3- Le script page.php renvoie en sortie une chaine de caractères, qui est si tout est bien conçu une page HTML/javascript/flash, seule chose que le client (son navigateur) sait traiter.

Tous les $this->content ont pour but de définir ce qui va être renvoyé en(3) en HTML au client. Autrement dit, les $this->content (qui au passage sont du php!) sont exécutés en (2). Tu ne peux pas paramétrer page.php pour lui dire qu'elle doit insérer du php dans elle même !

Le script php "construit" la page HTML. C'est d'ailleurs le but d'un CMS : rendre un site cohérent et simplement paramétrable. Dans ziteplus, tu remarquera que toutes les pages sont en fait générées par index.php, qui lui même ne fait qu'un appel à template.php.


PHP côté serveur, JS côté client.
Et pour ceux qui ont désactivé le js, ben oui, ils sont couillonnés. Maintenant, si tu a bien fait ton boulot, le site doit rester navigable pour eux, et j'ajouterai que si tu ne fait pas le kikou avec du javascript qui clignote partout, ils l'activeront avec plaisir sur ton site (d'autant que tinymce ne passe pas sans le js!)...

La solution : une première validation javascript sur le formulaire (non bloquante si le js est désactivé), et une deuxième validation en entrée du script php qui reçoit les données du formulaire.
De toutes façons, il faut TOUJOURS vérifier sur le serveur (donc en php) ce que te renvoie le client. Le JS n'est pas fiable, car un petit malin peut le modifier dans son propre navigateur. En revanche il n'a pas la main sur le serveur.


Si tu nous disais précisément ce que tu veux obtenir, et comment, on pourrait avancer un peu plus, là c'est très théorique ! Qu'est ce que tu veux mettre comme php dans le header?

Dernière modification par Super_chemist (26/11/2011 18:51:50)

Hors ligne

#7 26/11/2011 19:52:35

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : envoyer un code dans le header via une page

Alors j'ai besoins de faire plusieurs contact sur un site et j'essaye d'ajouter des champs de commande de produit  et qui soit envoyé par mail
j'ai trouver plusieurs source sur le web ou l'on peut récup des scripts php pour formulaire de contact
exemple http://www.ge-net.ch/page/index.php
et dans ces scripts il te demande d'insérer dans la partie head de ta page le code php javascript de vérification

dans une page zite on peut insérer du code css et js dans le head via la page que tu construit

<?php $this->content['localcss'] .= "</style><link href='monstyle1.css' rel='stylesheet' type='text/css'/><style>";?>

te permet d'insérer dans la partie head de la page une feuille de style personnalisé pour cette page !!

de la même manière j'aurais aimé pouvoir insérer le code php-js dans le head sans avoir à passer par la construction d'un module

Dernière modification par snypi (26/11/2011 19:55:43)


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#8 26/11/2011 20:34:20

Super_chemist
Membre
Inscription : 27/05/2011
Messages : 417

Re : envoyer un code dans le header via une page

Ok je comprend.

Bon déja, ils ont pas l'air très doués en php tes gus là ! Placer leur code dans le header n'a pas vraiment d'importance, ce qui est important, c'est juste qu'il soit placé avant leur code à placer dans le body. Le code style sera bien sûr intégré par content[dftcss].

Par contre, leur code du body est complètement buggé, à vrai dire je pense qu'ils ne l'ont pas testé, car syntaxiquement, ce n'est pas du php et ça ne peux pas tourner ! J'ai mis 5 minutes à corriger leurs conneries.


Bon, comment faire :
Dans une page ziteplus en mode php, tu insères leur code "header". Pas de soucis.
Ligne du dessous, tu met <?php $this->content['dftcss'] .= '+++leur code style+++'; ?>
Tu sautes une ligne pour t'y repérer.
Ligne du dessous, tu met leur code buggé "body".

Maintenant, on va s'amuser à débugger leur code "body" (d'où l'intérêt d'avoir sauté une ligne pour s'y repérer).
En gros, à chaque fois que tu vois <? tu remplaces par <?php en t'assurant de laisser un espace entre php et ce qu'il y a APRES (tu comprendra ce que je veux dire quand tu y sera!)!!!
Et à chaque fois que tu vois ?> tu t'assures qu'il y a bien un espace AVANT le "?".
Une fois nettoyé, ça devrait mieux marcher. Je ne sais pas ce qu'on fume chez eux, mais <?echo$erreur?> c'est à la limite de l'expérience psychédélique ! J'en veux !!!


Pour info, dans ziteplus, dans l'hypothèse où tu dois exécuter un script AVANT d'envoyer quoi que ce soit (ce qui peux arriver dans de très rares cas où on veux modifier les header http de la page, si tu ne comprends pas cette phrase c'est normal, moi non plus!), tu peux le mettre n'importe où dans ta page, parce qu'en fait, le contenu de la page est exécuté AVANT que ziteplus n'affiche la page (voir le contenu du index.php, assez explicite tant il est court) et donc AVANT que les header http ne soient chargés.


Voilà, testé en local, leur script a l'air de fonctionner (pas testé la fonction mail() par contre...)

Bon courage!


EDIT : d'ailleurs, c'est du php pur, pas du php-js, hein ! Le php-js ça n'existe pas !

Dernière modification par Super_chemist (26/11/2011 20:35:48)

Hors ligne

#9 27/11/2011 00:59:57

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : envoyer un code dans le header via une page

Bonsoir,
je confirme le message de Super_chemist wink
Si tu mets tout dans une page PHP, ça marche chez Free.

a+
Jean-Paul

ps: par "ça marche", je veux juste dire que le message est bien reçu, pas que le code est bon ... j'ai pas regardé wink

Hors ligne

#10 27/11/2011 12:19:29

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : envoyer un code dans le header via une page

merci à vous j'ai pu tester des petits script de formulaire en ligne ce qui est pas mal du tout
encore un truc qui m’épate dans ziteplus que le script php d'une page soit calculer avant le chargement du html global est assez génial


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#11 28/11/2011 18:00:55

bpat85
Membre
Inscription : 18/01/2010
Messages : 77

Re : envoyer un code dans le header via une page

Je prends juste connaissance de ta question ... C'est la méthode que j'ai employée pour réaliser ce formulaire (http://vendeevaa.fr/vaa/form-inscription.html).
Effectivement il y a qques modifs à faire (et de la mise en page), mais ça fonctionne nickel.
Pour info : Tout dans la même page sauf la partie CSS que j'ai intégrée au CSS du site

Hors ligne

Pied de page des forums