Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: ?
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.8.1
#~ Installed Modules:
#~ CMSMailer: 2.0
#~ FileManager: 1.0.2
#~ MenuManager: 1.6.5
#~ ModuleManager: 1.4
#~ News: 2.10.6
#~ nuSOAP: 1.0.1
#~ Printing: 1.1.0
#~ Search: 1.6.5
#~ ThemeManager: 1.1.1
#~ TinyMCE: 2.7.2
#~ CGExtensions: 1.21.5
#~ CGEcommerceBase: 1.2.2
#~ CGPaymentGatewayBase: 1.0.9
#~ PaypalGateway: 2.2
#~ TruetypeText: 2.1.1
#~ JQueryTools: 1.0.10
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ output_compression: false
#~ max_upload_size: 10000000
#~ default_upload_permission: 664
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.3-7+squeeze1
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 8192
#~ memory_limit: 64M
#~ max_execution_time: 60
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 12M
#~ upload_max_filesize: 10M
#~ session_save_path: /users/user115723/tmp (0755)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.0.32
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour à l'équipe
Voilà longtemps que je n'étais pas venu ici...et longtemps que je n'avais pas fait un peu de programmation
Mais voilà, j'ai un probleme de transmission des variables PHP avec CMSMadeSimple
Malgré mes paramètres :
- register_globals = on
- use_smarty_php_tags sur true
- l'utilisation des tags {php} {/php} pour encadrer les codes PHP
la transmission des variables d'une page HTML/PHP à une autre :
- fonctionne BIEN sur mes propres pages (uploadées via ftp dans un dossier hors des dossiers CMSMS)
- NE fonctionne PAS quand intégrées dans les templates de CMSMS
(Dans les 2 cas, il s'agit naturellement des memes scripts écrits avec Notepad++)
Avec CMSMS, les pages ne récupèrent plus les données transmises par le FORM de la page précédente (méthode <INPUT> -> $_POST[]) !
Le débugeur indique "indéfini" pour les variables et constantes.
Bien entendu, tests réalisés chez le meme hébergeur.
Malgré des recherches sur le net, je ne trouve pas d'informations à ce sujet.
Si quelqu'un avait la gentillesse de bien vouloir m'éclairer. D'autant que d'autres ont, sans doute, rencontré ce soucis.
Peut-etre s'agit-il s'un simple paramètre.
Merci
En ce qui concerne les CMS ou les systèmes informatiques, les différentes versions ne semblent pas généralement pas avoir d'incidence sur le traitement de variables HTML/PHP aussi basiques que :
Code :
PAGE_1.php
<form action=".../PAGE_2.php" method="POST">
<input name="prenom" size="20" type="text" value="votre Prénom" ><br>
<input name="nom" size="20" type="text" value=""><br>
etc...
PAGE_2.php
<?php
if (isset($_POST[’prenom’])) $prenom=utf8_decode($_POST[’prenom’]) ;
if (isset($_POST[’nom’])) $nom=utf8_decode($_POST[’nom’]) ;
echo 'bonjour '.$prenom.'<br>';
etc...
?>
En fait ces 2 pages en php fonctionnent tres bien chez le meme hébergeur,
Mais ne fonctionnent plus dès qu'elles sont incluses dans les pages Made Simple :
Code :
CMSMS/index.php?page=PAGE_1
<form action=".../CMSMS/index.php?page=PAGE_2" method="POST">
<input name="prenom" size="20" type="text" value="votre Prénom" ><br>
<input name="nom" size="20" type="text" value=""><br>
CMSMS/index.php?page=PAGE_2
{php}
if (isset($_POST[’prenom’])) $prenom=utf8_decode($_POST[’prenom’]) ;
if (isset($_POST[’nom’])) $nom=utf8_decode($_POST[’nom’]) ;
echo 'bonjour '.$prenom.'<br>';
{/php}
les variables ne passent plus rien par le POST
Ne s'agirait-il plutot pas d'un défaut de paramétrage ?
qu'en pensez-vous ?
merci
Bonjour,
il suffit pour cela que tu crées une nouvelle balise utilisateur, exemple : get_prenom
dans laquelle tu écris :
Code :
[== PHP ==]
echo utf8_decode($_POST['prenom']);
Dans ta page cible, un simple appel de cette balise : {get_prenom} te renverra l'information.
Bonsoir Bess
J'ai un souvenir sympa de toi
, il y a peut etre 1 année (le temps passe si vite) ; nous avions parlé au tél alors que tu te lançais dans une activité d'entreprise. J'espere que cette société tourne bien aujourd'hui et t'apporte toutes satisfactions.
Pour revenir aux variables html/php,
il y a des personnes, qui comme moi, en raisons d'activités remplies, ne disposent que de peu de temps pour programmer
Or l'utilisation des balises smarty avec lesquelles l'on doit parsemer ses pages, est chronovore. Alors que le php/html est facile et rapide.
N'y a-t-il pas un moyen d'activer le passage de ces variables html/php dans un fichier de paramétrage de CMSMS, quitte à perdre un peu en terme de sécurité ?
Dans la négative, il me faudra utiliser les balises utilisateurs
Bonne soirée à toi et tes collègues
Citation :J'ai un souvenir sympa de toi
Haa au moins un
Je n'ai pas lancé de société, mon employeur n'est pas d'accord avec ce principe et mon contrat implique une clause d'exclusivité, on verra cela pour plus tard
Concernant ta réflexion
Citation :Or l'utilisation des balises smarty avec lesquelles l'on doit parsemer ses pages, est chronovore. Alors que le php/html est facile et rapide.
Je ne suis pas d'accord et j’irais même à l'inverse :
- l'utilisation d'une balise smarty est ultra rapide : {mabalise}
- l'utilisation d'un code php dans une page cmsms est synonyme de mauvaise manip assurée proportionnelle au nombre de fois ou tu interviens sur la page (WYSIWYG & mauvaises manip)
- l'utilisation d'un code php à l’extérieur d'une page cmsms rend indépendant les mauvaises manip sur tes pages et l'incidence sur ton code php. Il n'y a aucun WYISYWG ce qui évite les mauvaises surprises
- L'utilisation d'un UDT permet également de restreindre les accès à ce code de manière rapide et sécurisée pour éviter qu'un utilisateur y foute la grouille.
- L'utilisation d'un UDT permet d'utiliser simplement l'API de cmsmadesimple afin par exemple de s'affranchir des codes SQL en dur qui sont une brèche de sécurité béante
- L'utilisation d'un UDT permet de factoriser du code et de le réutiliser dans différentes pages là ou un code dans chaque pages doit être reproduit à chaque fois. La maintenance du code suit le même principe : moins d'endroit = moins de temps perdu
- un code PHP est toujours compatible une fois dans un UDT, pas de perte de temps
- une udt peut être placé dans un gabarit sans en pourrir le contenu ce qui permet d'avoir un code php actif partout sur le site en quelques lettres seulement
et je pourrais continuer longuement sur le sujet. {php} est une balise déconseillée, déconseillée c'est le terme pour pas dire "interdit et supprimée de cmsmadesimple" simplement parce que son introduction a été mise en place avant les UDT et que c'est justement le désolant constat de {php} qui a affiché le besoin d'introduire les UDT pour remplacer {php}
bref passe à l'UDT
et si tu dois mixer les sorties HTML et les codes php il existe une solution dans php même : l'écriture
heredoc
ça t'affranchit des ouvertures/fermeture de <php incessant et des besoins de mettre des guillemets/apostrophes tout en devant les échapper non stop.
du très bon en somme.
Bonsoir Bess
Je rentre chez moi et lis ton message.
Les projets ne vont pas toujours dans le sens que l'on imagine
Par ailleurs, moi qui fût pendant quelques années conseiller en rapprochement/creation/liquidation d'entreprises; globalement, je peux te dire que se lancer dans une telle aventure n'est pas forcément la panacée sur le long terme : j'ai vu trop de gars enthousiastes dans leur projet...se retrouver, quelques années après, dans de grandes difficultés économiques puis financières, de santé, sociales... enfin familiales... Meme qlq clients qui ne sont plus de ce monde aujourd'hui...
En connaissance de cause, j'ai souvent explicité à des copains, amis qui sont venus me présenter leur projet, les difficultés qui les attendaient, afin de leur éviter un avenir difficile.
Bien entendu, chaque dossier d'entreprise est un cas à part.
Enfin, l'essentiel est d'aimer ce que l'on fait
!
Bonne soirée
Bonjour
Concernant les balises udt, j'en avais déjà modestement essayé dans le cadre d'intégration de calculs.
Mais hier soir, j'ai rencontré le meme pb qu'antérieurement (sans l'utilisation de l'UDT),
dans le cadre du (double) passage (PG1 -> balise -> pg2) de variables (indiquées plus haut ds le post), c'est à dire :
PAGE 1 : .../CMSMS/index.php?page=PAGE_1
contenant son formulaire HTML :
<form action=".../CMSMS/index.php?page=PAGE_2" method="POST">
<input name="prenom" value="votre Prénom" >
<input name="btn" value="envoyer" type="submit" >
</form>
balise utilisateur {calcul_1}:
/* récuperation des variables du formulaire */
if(isset($_POST[’prenom’])) $prenom=utf8_decode($_POST[’prenom’]);
/* export des variables pour la page 2 */
echo 'la variable $prenom contient la valeur : ' .$prenom. '<br />';
PAGE 2 : .../CMSMS/index.php?page=PAGE_2
<!-- appel de la balise smarty calcul_1 en php -->
{
calcul_1
}
<!-- reste du code html de la page -->
Probleme du, bien entendu, à ma profonde méconnaissance de smarty :
La PAGE 2 : CMSMS/index.php?page=PAGE_2 affiche
la variable $prenom contient la valeur :
au lieu de :
la variable $prenom contient la valeur : votre Prénom
aucune variable n'est récupérée par la balise. Meme si la seconde page affiche bien le contenu de cette balise.
quelques questions me viennent à l'esprit :
- Faut-il utiliser aussi une balise pour envoyer le formulaire de la page 1 ?
- L'URL passée dans action=".../CMSMS/index.php?page=PAGE_2" (où page=PAGE_2 est l'alias de la page) doit-elle faire référence à un tpl ?
Je ne sais plus dans quelle direction chercher :/
page1 :
Code :
{mon_udt1 destination='page2'}
page2 :
voilà pour le contenu de tes pages. Maintenant les udts
udt1 : se contente de générer un formulaire
Code :
$gCms = $cmsms();
$config = $gCms->getConfig();
$destination = $params['destination'];
$root_url = $config['root_url'];
echo <<<MYHTML
<form action="$root_url/index.php?page=$destination" method="post">
<input name="prenom" value="votre Prénom" >
<input name="btn" value="envoyer" type="submit" >
</form>
MYHTML;
UDT2 : récupère les données
Code :
$prenom = '-Aucune valeur-';
if(!empty($_POST['prenom']))
$prenom=$_POST['prenom'];
echo 'la variable $prenom contient la valeur : ' .$prenom. '<br />';
Dans ton cas : tu as fait l'erreur d'écrire $_POST[’prenom’] et non $_POST['prenom']. Comprendre l'utilisation du symbole = ’ = au lieu de = ' =
du coup _POST ne te retournera pas... ça m'a pris un moment avant de mettre le doigt dessus d'ailleurs ... :/
regarde le résultat :
http://www.furie.be/index.php ?page=asmar1
merci bess
Je passe rapidement ici, et essaierais de suivre tes conseils, quand je trouverais du temps ce WE