RobIII: Ik probeer als ik wil stoppen met mijn auto ook altijd de sigarettenaansteker, de airco, 3 radioknoppen en de binnenverlichting en dan de rem :P
Anyone who gets in between me and my morning coffee should be insecure.
Heb nu onder andere 2 variables geset die betrekking hebben tot die functie die ik gebruik {include_php}, noemend $trusted_dir en $security,
Als ik bij die include_php de dingen die ik include wel een / voor zet, dan krijg ik errors als deze:
1
2
3
4
5
| Warning: Smarty error: file:/menu_register.php is not readable in /var/www/vhosts/xanland.nl/subdomains/cms/httpdocs/template/engine/Smarty.class.php on line 1092 Notice: Undefined index: php_resource in /var/www/vhosts/xanland.nl/subdomains/cms/httpdocs/template/engine/internals/core.smarty_include_php.php on line 27 Warning: _include(): Failed opening '' for inclusion (include_path='.:') in /var/www/vhosts/xanland.nl/subdomains/cms/httpdocs/template/engine/Smarty.class.php on line 1922 |
Dat per {include_php}.
Maar als ik die / weglaat, dan laat hij helemaal niks zien, een 404: http://cms.xanland.nl/foto-album/ (alleen om laten zien wat er gebeurd (hier in Chrome iig))!
Kan mijn .htaccess misschien roet in het eten gooien....?
[ Voor 3% gewijzigd door Xanland op 31-03-2009 22:07 ]
RobIII: Ik probeer als ik wil stoppen met mijn auto ook altijd de sigarettenaansteker, de airco, 3 radioknoppen en de binnenverlichting en dan de rem :P
Die laatste _include() (waar is die functie van?) krijgt blijkbaar een lege string. Het is me allemaal niet erg duidelijk.
Ampera-e (60kWh) -> (66kWh)
En die laatste _include()-error, die komt door die error op regel 1 van dat code-blok - want die kan niet geïnclude worden.
Stukje uit foto-album/index.php ->
1
2
3
4
5
| $smarty->assign('pagina', $pagina); $smarty->assign('pagina2', $pagina2); //$smarty->assign('inhoud', ''); $smarty->display('index.tpl'); //overhevelen van de variablen dus, inhoud doe ik later aangezien ik eerst die errors wil fixen |
En een vb-include uit index.tpl ->
1
2
| {include_php file="menu_register.php"}
// geeft ie dus die error op in mijn vorige post |
Hoop het zo iets duidelijker gemaakt te kunnen hebben!
[ Voor 0% gewijzigd door Xanland op 31-03-2009 22:21 . Reden: foutje in code-blok ]
RobIII: Ik probeer als ik wil stoppen met mijn auto ook altijd de sigarettenaansteker, de airco, 3 radioknoppen en de binnenverlichting en dan de rem :P
Anyone who gets in between me and my morning coffee should be insecure.
Die variabelen $security staat op TRUE, om $trusted_dir te kunnen gebruiken. $trusted_dir is het pad naar waar include_php kijkt voor de in te cluden bestanden.Xanland schreef op dinsdag 31 maart 2009 @ 22:06:
...
Heb nu onder andere 2 variables geset die betrekking hebben tot die functie die ik gebruik {include_php}, noemend $trusted_dir en $security,
...
Zo zou het in principe, en volgens mij, dus moeten werken!
Voor info over die variablen, $security, $trusted_dir en {include_php} in verband met meer duidelijkheid (hoop ik).
RobIII: Ik probeer als ik wil stoppen met mijn auto ook altijd de sigarettenaansteker, de airco, 3 radioknoppen en de binnenverlichting en dan de rem :P
Als je zo gaat includen met Smarty, dan kan je eigenlijk net zo goed PHP gebruiken (als template).Xanland schreef op dinsdag 31 maart 2009 @ 22:20:
[..]
En een vb-include uit index.tpl ->code:
1 2{include_php file="menu_register.php"} // geeft ie dus die error op in mijn vorige post
Hoop het zo iets duidelijker gemaakt te kunnen hebben!
Koop of verkoop je webshop: ecquisition.com
Verwijderd
Ben je bekend met MVC?
Je probeert dus in de View een PHP-pagina te includen? Ik ben ook niet heel ervaren (sterker nog, ik ken Smarty alleen van een medestudent
- Authenticatie bepalen
- Bepalen welke gegevens je uit de Model haalt.
- Deze variabelen parsen in een smarty-object
- de .tpl parsen in dat zelfde smarty object
de variabele geef je dus in principe mee door $smarty->assign('naam', $naam), zoals je al doet met die pagina´s
variabele 'naam' wordt indien goed doorgegeven in de .tpl weegegeven door {naam} op de plek te zetten waar je de waarde wilt zien.
Wat ik ook gek vind is dat je een hele pagina wilt assignen. Het uiterste wat ik zou willen assignen aan "View-materiaal" (dus statische HTML) is eventueel bij een dynamisch menu, waarvan je in de Controller moet bepalen welk menu-items je ziet.
Om kort te zijn:
ik raad het ten strengste af om in de .tpl nog php te gebruiken. De PHP-zaken moeten allemaal vóor het parsen van de .tpl al gedaan zijn.
Verwijderd
Ik persoonlijk ga er altijd van uit dat de persoon die de View maakt (=toch meestal een designer die weinig met programeren te maken heeft), helemaal niks van serverside-scripten of programmeren snapt. Die moet dus alleen zeggen van eh: ok in dit divje of celletje wil ik de naam van de ingelogde user kunnen zien, dan plaats ik daar {name}.
In mijn ogen: de Controller bepaalt wát er weergegeven wordt en geeft dit in strings of arrays door. De View bepaalt wáar de doorgezonden strings en arrays worden weergegeven, door middel van de {variabele} tags. Ik ga er altijd van uit dat de Controller de logica bevat. Zo houd je duidelijk gescheiden welk deel van de applicatie wat doet, namelijk: data ophalen en bruikbaar maken (Model), weergeven (View), beslissingen nemen(Controller).
Maar zoals ik al zei: dat kan persoonlijk zijn. Ik wil dus ook absoluut niet zeggen dat dat van mij per se beter is dan dat van jou
Waar het mij vooral om gaat is dat hij in die View nog PHP include terwijl je met Smarty die eventuele dynamische opmaak ook wel kunt regelen. Dat vind ik heel slordig.
Maargoed.... offtopic
Voor template-makers zijn het nu gewoon duidelijke variablen geworden en nu wordt er GEEN PHP meer geparsed in de templates. Dat is dus nu voor de template-bestanden (dus in de PHP-bestanden) gebeurd.
Maar om de één of andere reden heb ik dit probleem nu nog steeds, en ik heb nu zo'n vermoeden dat het aan mijn .htaccess ligt! Mijn .htaccess is als volgd: (aardig rommelig ja en onnodige zooi - nog geen tijd gehad om op te ruimen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
RewriteCond %{SCRIPT_FILENAME} -f [OR]
RewriteCond %{SCRIPT_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^register/$ register.php [QSA,L]
RewriteRule ^nieuws/$ modules/nieuws/index.php [QSA,L]
RewriteRule ^foto-album/$ modules/foto-album/index.php [QSA,L]
RewriteRule ^gastenboek/$ modules/gastenboek/index.php [QSA,L]
RewriteRule ^inschrijven/$ modules/inschrijven/index.php [QSA,L]
#RewriteRule ^nieuws/([^-]+)/([^&]+)\.html$ modules/nieuws/index.php?id=$1&titel=$2 [L]
#RewriteRule ^foto-album/$ modules/foto-album/ [L]
#RewriteRule ^foto-album/([^&]+)\.html$ modules/foto-album/index.php?album=$1 [L]
RewriteRule ^(.*)/$ index.php?pagina=$1 [QSA,L]
#RewriteRule ^(.*)$ index.php?pagina=index [QSA,L]
# show php errors
php_flag display_startup_errors on
php_flag display_errors on |
Hij heeft gewoon goed gewerkt, dus daar twijfel ik niet aan. Het ging fout toen ik het template-systeem ging implementeren.
Maar om nog even terug te komen: De pagina waar ik al een paar posts eerder een link naar gaf, geeft dus nog steeds een 404 - en heb dus zo'n vermoeden (omdat template-systeem nu goed werkt), dat het dus aan die .htaccess ligt.
Wat doe ik nu (finaal) fout...?
RobIII: Ik probeer als ik wil stoppen met mijn auto ook altijd de sigarettenaansteker, de airco, 3 radioknoppen en de binnenverlichting en dan de rem :P
RobIII: Ik probeer als ik wil stoppen met mijn auto ook altijd de sigarettenaansteker, de airco, 3 radioknoppen en de binnenverlichting en dan de rem :P
Laat je rewrites even weg en roep je php file in de url aan. Zorg dat error reporting aanstaat, ook voor Smarty.Xanland schreef op vrijdag 03 april 2009 @ 21:14:
Echt niemand die dit weet!?
Als ik nu smarty.php (staat een class die de smarty class extend in) include in mijn file, krijg ik dus een 404 op die index.php van die 'module'. Maar ik kan niet achterhalen waarom, omdat die pagina dus herlaad, maar als ik die include comment, dan werkt het dus wel. Dat is dus het vreemde!
Wat kan het nou zijn, want op de hoofdsite gaat het gewoon goed.
RobIII: Ik probeer als ik wil stoppen met mijn auto ook altijd de sigarettenaansteker, de airco, 3 radioknoppen en de binnenverlichting en dan de rem :P
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <?php // *nix style (note capital 'S') define('SMARTY_DIR', '/var/www/vhosts/xanland.nl/subdomains/cms/httpdocs/template/engine/'); require_once(SMARTY_DIR . 'Smarty.class.php'); class Smarty_xanlandCMS extends Smarty { function Smarty_xanlandCMS() { $this->Smarty(); $this->template_dir = '/var/www/vhosts/xanland.nl/subdomains/cms/httpdocs/template/templates/'; $this->compile_dir = '/var/www/vhosts/xanland.nl/subdomains/cms/httpdocs/template/templates_c/'; $this->config_dir = '/var/www/vhosts/xanland.nl/subdomains/cms/httpdocs/template/configs/'; $this->cache_dir = '/var/www/vhosts/xanland.nl/subdomains/cms/httpdocs/template/cache/'; // $this->trusted_dir = array('/var/www/vhosts/xanland.nl/subdomains/cms/httpdocs/template/standard/'); $this->debugging = TRUE; // $this->security = TRUE; } } ?> |
Dat is smarty.php
Die wordt vanaf modules/foto-album/index.php op de volgende manier geïnclude:
1
2
3
| <?php include('../../template/smarty.php'); ?> |
Want hij staat in hoofddir/template
Code heb ik hier op gebaseerd: http://smarty.net/manual/en/installing.smarty.extended.php
[ Voor 4% gewijzigd door Xanland op 05-04-2009 22:21 ]
RobIII: Ik probeer als ik wil stoppen met mijn auto ook altijd de sigarettenaansteker, de airco, 3 radioknoppen en de binnenverlichting en dan de rem :P
1
2
3
4
| RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L] |
Als dat al je eerste, en [L]aatste rewriterule is, wat denk je dan dat er gebeurt...
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...