begin process at 2012 05 28 19:22:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

autoload et smarty


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

autoload et smarty

jeudi 29 septembre 2011 à 22:15:51 | autoload et smarty

zzzzzz

Membre Club
Bonjour,

J'ai une question de débutant concernant autoload, j'ai installé smarty et la classe se situe dans le repertoire smarty et non dans mon repertoire class.

J'utilise donc le code :

require_once 'smarty/Smarty.class.php';
function __autoload($class_name) {
require_once './class/'.$class_name.'.php';
}

Seulement quand j'appelle une class autre que smarty dans le rep class j'ai
:
Fatal error: Class 'Secure' not found in /home/site/public_html/site/register.php on line 12


J'ai trouvé un topic intéressent sur SMARTY et autoload mais je ne comprends RIEN :

http://www.smarty.net/forums/viewtopic.php?p=60667

Comment faire?

Merci d'avance pour votre aide.
jeudi 29 septembre 2011 à 23:01:35 | Re : autoload et smarty

Zut13

Tu peux mettre les 12 premières lignes de ton fichier register.php ?

@('(°)_(°) )@
vendredi 30 septembre 2011 à 00:34:52 | Re : autoload et smarty

phpAnonyme

Smarty utilise déjà la fonction _autoload(), la solution est d'utiliser spl_autoload_register() à la place.

Voir un exemple de mon tuto :
http://www.phpcs.com/tutoriaux/GENERER-PDF-GRACE-HTMLTOPDF-SMARTY_1218.aspx
OU
[ Lien ]



______________________________________________________________________
vendredi 30 septembre 2011 à 20:03:04 | Re : autoload et smarty

zzzzzz

Membre Club
Salut, merci pour ta réponse.. Je ne pige pas vraiment, il faut que je supprime l'autoload que j'ai pas celui de smarty? Si oui, je dois autoload le rep class.. qui est different de celui de smarty. Concrètement je dois faire comment?

Merci d'avance
vendredi 30 septembre 2011 à 20:36:16 | Re : autoload et smarty

phpAnonyme

-Tu touches pas à Smarty.
-Au niveau de ton application, au lieu d'utiliser __autoload(), tu dois utiliser spl_autoload_register().

function AutoloadClass($classname)
if(!class_exists($classname, false))
require($classname);

spl_autoload_register('AutoloadClass');



______________________________________________________________________
vendredi 30 septembre 2011 à 21:05:16 | Re : autoload et smarty

zzzzzz

Membre Club
Merci infiniment pour ton aide... Je débute avec smarty et la POO et c'est la misère.

En fait mes classes y comprit smarty (qui est dans un repertoire different) semblent bien se charger avec ton code mais je ne comprends pas. Comment cette fonction fait? Elle parcours toute l'arborescence / ou bien? Ne faut-il pas utiliser plutôt require_once aussi?

Deuxième point (désolé ^^)

Toi qui utilises smarty, arrives tu à intégrer un CAPTCHA et surtout à le POSITIONNER. ? J'essaye d'intégrer captcha.fr à smarty, il s'affiche mais tout en haut à gauche de la page (début de code). Impossible de le mettre à sa place {$CAPTCHA}. Une idée ou une suggestion de CAPTCHA?

Merci d'avance pour ton aide.
vendredi 30 septembre 2011 à 23:57:24 | Re : autoload et smarty

phpAnonyme

Réponse acceptée !

Comment cette fonction fait?


Je ne peux pas être plus claire que la doc (lien que je t'ai donné plus haut d'ailleurs) :

Si vous devez utiliser plusieurs fonctions d'autochargement, la fonction spl_autoload_register() est faîte pour cela. Elle crée une file d'attente de fonctions d'autochargement, et les exécute les unes après les autres, dans l'ordre qu'elles ont été définies. A contrario, la fonction __autoload() ne peut être définie qu'une seule fois.


Dit simplement, spl_autoload_register() = __autoload() multiples
spl_autoload_register enregistre toutes les fonctions __autoload() en les empilants --> quand une classe est appelé il va utiliser spl_autolad_call pour exécuté les fonctions __autoload() définies.
Ca s'apparente effectivement, au parcours d'une arborescence.

Require_once() ou le combo class_exists()+require(), c'est au choix, pourvu que le require_once() soit bien utilisé.
En effet, le combo fait directement référence à la classe(ce qui nous intéresse) et non au fichier. Si dans un fichier du définie deux classes, il est probable que la classe à laquelle tu souhaites accéder ne soit pas accessible justement, puisque __autoload() appelle la classe nommé au fichier avec les paramètres prédéfinies('/Dossierclasses/CLASSNAME.php' ou pour d'autres : '/CLASSNAME.inc.php', etc etc), sauf si tu la définie implicitement bien sûre.


Comme je te l'ai dit dans l'autre post, ça semble être un problème HTML/CSS ou de formatage plutôt qu'un problème avec smarty.
Donc regarde ce que la fonction "decrypt" de ton captcha renvoi : éventuellement code html, etc...qui ferait "interférence", avec le code de ton template.



______________________________________________________________________
samedi 1 octobre 2011 à 12:07:17 | Re : autoload et smarty

zzzzzz

Membre Club
Merci encore pour ton aide, j'ai déja bien avancé. Pour cette histoire de CAPTCHA, je laisse tombé j'ai bien regardé le code mais rien de spéciale, pas de css particulier juste :

function dsp_crypt($cfg=0,$reload=1) {
// Affiche le cryptogramme
echo "<table><tr><td><img id='cryptogram' src='".$_SESSION['cryptdir']."/cryptographp.php?cfg=".$cfg."&".SID."'></td>";
if ($reload) echo "<td><a title='".($reload==1?'':$reload)."' style=\"cursor:pointer\" onclick=\"javascript:document.images.cryptogram.src='".$_SESSION['cryptdir']."/cryptographp.php?cfg=".$cfg."&".SID."&'+Math.round(Math.random(0)*1000)+1\"><img src=\"".$_SESSION['cryptdir']."/images/reload.png\"></a></td>";
echo "</tr></table>";
}

Bref, je crois que je vais oublié smarty juste pour ma page de register et que je verrai ca plus tard quand je serai un peu plus avancé avce tout ca.

Bref encore merci !


Cette discussion est classée dans : php, class, repertoire, smarty, autoload


Répondre à ce message

Sujets en rapport avec ce message

recopie totale d'un repertoire php [ par slhuilli ] bjr,je cherche a recopier l'ensemble d'un répertoire et de ses sous répertoire ailleurs, via un code php. (pour en fait dupliquer un site en guise de Upload de repertoire via php [ par aquacurious ] Bonjour, je voudrais savoir si c'est possible via php d'uploader un repertoire entier (par FTP ou autre ...)merci d'avance PB MKDIR ! [ par MATHIS49 ] Bonjour ! Voila j'aimerais créer grace a PHP un repertoire 'test' avec tout les droit, j'ai donc fait un : mkdir ("/root/test", 0777) or die(" probleme avec des class php [ par destiny ] hello all :)le code : error_reporting(E_ALL);//// mcdb.class.php3 - Classe d'acces aux bases de donnees.// in popup javascript php [ par jennet ] salut a tous !! est-ce qu'il y a moyen par javascript d'ouvrir un pop up d'une image listé d'un repertoire avec php .... avec ce code la la page donne Problème de mise en cache de pages PHP [ par seabird ] Salut à tous,Je voudrais mettre en cache pendant 1 journée  mes pages PHP pour accélérer l'affichage. Je voudrais utiliser jpcache qui me semble pas m Visibilité des membres d'une classe avec autoload ? [ par petitelarve ] Bonjour, ca m'énérve !!! J'ai une classe que je veut instancier dans un autre script avec autoload. L'objectif étant de récupérer des variables tablea Empecher l'execution de scripts dans un repertoire sous Apache [ par hvb ] Salut tout le monde,encore une fois je viens avec un problème, non pas de php, mais de configuration serveur.En effet, je me demandais si il etait pos Probleme avec un include [ par kgadhi ] Bonjour tout le monde, J'ai un petit soucis avec la fonction include()index.phpidentification.phpmetier      Personnes.class.phpintegration      DAOPe Retouches sur un scripts [ par apz ] salut,ce script php, un guestbook, est le livre d'or que je cherchais.mais voila il se base sur les Class, que je ne connais pas desormais.alors je vo


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,215 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales