• twitter image
  • facebook image
  • youtube image
  • linkedin image
Language: CMS Made Simple Czech CMS Made Simple France CMS Made Simple Spain CMS Made Simple Hungary CMS Made Simple Russia CMS Made Simple Netherlands

All times are UTC




Post new topic Reply to topic  [ 12 posts ] 
Author Message
 Post subject: php in template .. een foutje ?
PostPosted: Wed Aug 31, 2011 3:07 pm 
Offline
Power Poster
Power Poster
User avatar

Joined: Tue Jan 27, 2009 11:47 am
Posts: 678
Location: Belgium - Flemish
ik ben bezig een oude CMSMS website (CMSMS 1.4.1) volledige nieuw aan het maken.
in deze website zitten wat includes naar php files die data uit een database halen en in iedere oude template zit ook helemaal bovenaan een stukje php.

Code:
<?php session_start();
 error_reporting(E_ALL);
$card_id = $_SESSION['card_id'] ;
$url = $_SERVER['REQUEST_URI'] ;
list($pagina, $lang, $subpagina, $extra2, $extra3) = explode("/", $url);
 include 'consument/lang/'.$lang.'.php';
$smarty = new Smarty;

$smarty->assign('card_id2', '$card_id');
$smarty->assign('lang', '$lang');
?>


Als ik dit overneem in de nieuwe website (CMSMS 1.9.4.2) dan wil dit niet werken, bovenaan de pagina blijft volgende staan:
$smarty->assign('card_id2', '$card_id');$smarty->assign('lang', '$lang');
De includes die hierna volgen werken hierdoor uiteraard ook niet.

Iemand een idee wat er zou fout kunnen zijn, of moet dit anders worden ingevoegd ... ?
Alle hulp is welkom.

Mvg,
Peter


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Wed Aug 31, 2011 3:20 pm 
Offline
Dev Team Member
Dev Team Member
User avatar

Joined: Wed Apr 23, 2008 7:53 am
Posts: 5144
Location: The Netherlands
zet de code zonder <?php en ?> in een udt.
En roep de udt tag in de template, bijv. {blahblah}

®

_________________
Dutch CMSMS community website cmsms.nl and Wiki wiki.cmsms.nl
--------------------------
My CMSMS Tips and Tricks Weblog and website about Pneumatic Tube Systems / Rohrpost
My other (Dutch) website: Smakelijk eten zonder zout (Design: Compufairy)


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Wed Aug 31, 2011 3:52 pm 
Offline
Power Poster
Power Poster
User avatar

Joined: Tue Jan 27, 2009 11:47 am
Posts: 678
Location: Belgium - Flemish
dank u rolf,

heb ik dus gedaan en krijg geen restcode meer bovenaan de pagina, maar de includes die volgen werken nog niet.

ik zou graag de uitkomst zichtbaar maken van die code, ik bedoel hoe kan ik voorbeeld die list( ... ) variabelen oproepen en ook die $url.
Het is omdat die $subpagina en die $lang verder in de includes worden gebruikt.
Als ik het goed voor heb zou ik die toch zichtbaar moeten krijgen.
Ik dacht dat ik die gewoon als vb. {$lang} in mijn pagina content kon zetten ... maar ik krijg dan niet te zien

enig idee ?

Thx
Peter


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Wed Aug 31, 2011 4:11 pm 
Offline
Dev Team Member
Dev Team Member
User avatar

Joined: Wed Apr 23, 2008 7:53 am
Posts: 5144
Location: The Netherlands
Als je in deze UDT kijkt, zie je hoe een string kan worden gebruikt in de template:
viewtopic.php?f=52&t=46954

®

_________________
Dutch CMSMS community website cmsms.nl and Wiki wiki.cmsms.nl
--------------------------
My CMSMS Tips and Tricks Weblog and website about Pneumatic Tube Systems / Rohrpost
My other (Dutch) website: Smakelijk eten zonder zout (Design: Compufairy)


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Wed Aug 31, 2011 4:19 pm 
Offline
Power Poster
Power Poster
User avatar

Joined: Tue Jan 27, 2009 11:47 am
Posts: 678
Location: Belgium - Flemish
rolf ik begrijp je niet direct ...

sorry zal wellicht aan mij liggen ?


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Wed Aug 31, 2011 4:23 pm 
Offline
Dev Team Member
Dev Team Member
User avatar

Joined: Wed Apr 23, 2008 7:53 am
Posts: 5144
Location: The Netherlands
Code:
$gCms = cmsms();

// Passing the parameters to the template
$smarty = &$gCms->GetSmarty();
$smarty->assign('card_id2', $card_id);
$smarty->assign('lang', $lang);

_________________
Dutch CMSMS community website cmsms.nl and Wiki wiki.cmsms.nl
--------------------------
My CMSMS Tips and Tricks Weblog and website about Pneumatic Tube Systems / Rohrpost
My other (Dutch) website: Smakelijk eten zonder zout (Design: Compufairy)


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Wed Aug 31, 2011 4:26 pm 
Offline
Power Poster
Power Poster
User avatar

Joined: Tue Jan 27, 2009 11:47 am
Posts: 678
Location: Belgium - Flemish
als ik in de UDT werk via
$smarty = &$gCms->GetSmarty();
ipv
$smarty = new Smarty;

en ik roep dan die var's op in mijn pagina dan komen die wel, maar zou het kunnen dat ik die niet kan gebruiken in mijn included files ?


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Thu Sep 01, 2011 3:50 am 
Offline
Power Poster
Power Poster
User avatar

Joined: Tue Jan 27, 2009 11:47 am
Posts: 678
Location: Belgium - Flemish
hopelijk is er iemand die mij op weg kan zetten om mijn probleem te vinden.

dit is de situatie:

ik heb dus een CMSMS website waar in bepaalde templates via een include van een php file in eerste instantie bepaalde dingen worden gecheckt (vb. de naam van de pagina)

boven in de template staat een UDT die gebruikt wordt om een sessie te starten en om ook om de url te ontleden, zodoende men weet in welke pagina men momenteel zit. (wellicht zijn er andere mogelijkheden om dit te doen, maar dit is een oude CMSMS website dit in een nieuw jasje moet en de oude include files moeten dus verder worden gebruikt)
dit is de UDT {get_url_data} die nu bovenaan in de template wordt opgeroepen:
Code:
$gCms = cmsms();

session_start();
error_reporting(E_ALL);
$card_id = $_SESSION['card_id'] ;

$url = $_SERVER['REQUEST_URI'];
list($page, $lang, $subpagina) = explode("/", $url);

$smarty = &$gCms->GetSmarty();
$smarty->assign('lang', $lang);
$smarty->assign('subpagina', $subpagina);
$smarty->assign('card_id2', '$card_id');

include 'consument/lang/'.$lang.'.php';


Als ik dan in de content van de pagina de url variabelen vb. de $lang of $subpagina oproep via {$lang} of {$subpagina}, dan krijg ik netjes te zien dat de $lang = nl en dat de $subpagina = client.

vervolgens wordt een include php aan geroepen via een UDT:
Code:
include ('consument/index.php');


de include files bevinden zich in de map consument.
deze include file checkt in eerste instantie 2 dingen, of er een $card_id is en of de $subpagina verschillend is van 'client'.
deze include zie er zo uit:
Code:
<?
if ( (!$card_id) && ($subpagina <> "client") )  { echo "$lang_nietingelogd<br><br><a href=\"javascript:history.go(-1)\"><< $lang_terug</a>" ; } else {


if (($_SESSION['user_level'] == "2") && ($subpagina <> "client")  )  { } else {


if ( ((!$card_id) && ($subpagina == "client"))  || ($_SESSION['user_level'] <> "1") ) {
      include ('consument/loginform.php'); 
      } else { if ($subpagina == "client") {
      
      $card_id = $_SESSION['card_id'] ;
      include 'consument/db.php';
      $result = mysql_query("select * from dbo_b_fidcard  where card_id = '$card_id'");
$row = mysql_fetch_assoc($result);
 
      echo "<br><br>
      $lang_welcome $row[first_name] $row[last_name], <br><br>

  <p align=\"center\"><strong>$lang_pointsbox_1</strong></p>
  <br>
    <br>
    <p align=\"center\"><a href=\"index.php/$lang/your_pass\"><img src=\"../2009/uploads/images/afbeelding.png\" width=\"150\" height=\"24\" /></a>
  </p>
" ; } } } }
?>



Maar daar stopt het al, wellicht worden die variabelen niet meegegeven naar de included file (of is er iets anders die ik over het hoofd zie), want ik krijg enkel de << op het scherm uit de eerste 'echo'.

Wellicht zie ik iets over het hoofd ? Om alsnog deze variabelen uit de eerste UDT ook in de included files te laten werken.
Het is wel zo dat in de oude site de eerste UDT met
$smarty = new Smarty;
werd gewerkt en niet met
$gCms = cmsms();
$smarty = &$gCms->GetSmarty();
maar ook via
$smarty = new Smarty;
werkt het niet

Moeten die include files wel worden aangeroepen via een UDT ?
Hoe kan ik die $lang en $subpagina wel doorgeven aan de include file ?
heeft er iemand een idee waarom ik dit niet werkend krijg, iemand een tip, of zelfs een oplossing ?
Ik zit wat met de handen in het haar ...

Alvast bedankt.

Mvg,
Peter


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Thu Sep 01, 2011 11:11 am 
Offline
Power Poster
Power Poster
User avatar

Joined: Tue Jan 27, 2009 11:47 am
Posts: 678
Location: Belgium - Flemish
hoe kan ik een smarty var doorgeven aan een included php file ?

blijkbaar is een smarty var in het CMSMS niet direct beschikbaar voor een included php file ?

alle hulp of tips zijn welkom.

Hartelijk dank
Peter


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Thu Sep 01, 2011 2:42 pm 
Offline
Power Poster
Power Poster
User avatar

Joined: Wed Sep 05, 2007 8:03 pm
Posts: 3653
Location: The Netherlands
pedes wrote:
vervolgens wordt een include php aan geroepen via een UDT:
Code:
include ('consument/index.php');


IK begrijp dat je een UDT hebt met die ene regel code.

Om een smarty variabelen daarin bekend te krijgen, kun je de smartyvariabele opnemen als parameter in de UDT aanroep.
Code:
{jouwUDT lang=$lang subpagina=$subpagina}


Jouw UDT komt er dan zo uit te zien:
Code:
$lang=$params['lang'];
$subpagina=$params['subpagina'];

include 'consument/index.php';


Let erop dat als je één van de variabelen gebruikt in je include, zoals bijv.
include 'consument/'.$subpagina.'_'.$lang.'.php';
Dat je dan eerst zorgt dat de mogelijke waarden beperkt worden tot wat toegestaan is. Je script is anders onveilig.

in je mysql query zou ik ook de mysql_real_escape_string functie toepassen op de daar gebruikte variabele.... just to be safe ;)

_________________
Get nice guestbook messages from your site visitors with the brand new Gbook module.
Integrate Piwik Web Analytics in your site admin with the Piwik module.
Extend your global site settings with the Custom Global Settings module.
The Fourth Dutch CMS Made Simple Workshop on April 9 2011 was great fun! Read all about it here
Announcement: The Fifth Dutch CMS Made Simple Workshop coming up?


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Fri Sep 02, 2011 9:25 am 
Offline
Power Poster
Power Poster
User avatar

Joined: Tue Jan 27, 2009 11:47 am
Posts: 678
Location: Belgium - Flemish
dag Jos, alvast bedankt voor uw reply

ik heb uw voorstel uitgevoerd, de variabelen worden nu meegestuurd.

Het eerste deel van mijn include php code werkt, in die include php wordt een andere loginform.php geincluded, dit werkt ook en ik kan de form ook gebruiken, maar (vanaf hier loopt het mis) de action van de form verwijst naar een pagina waar een included php file wordt opgeroepen die de form (naam en card_id) controleert en en zo de card_id in een session zet ... en doorverwijst naar een pagina waar de opgehaalde gegevens uit de database worden getoond.

het is geen code van mij, maar php code (en een creatie) uit de oude/vroegere website om gegevens van klanten te tonen uit een database aan de hand van hun naam en card_id.
deze code werkte wel in een cmsms versie1.4 website, maar intussen is het cmcms zo verandert dat dezelfde setup niet meer werkt in cmcms versie 1.9.4.2.

Volgens mij worden de ingevulde gegevens uit de form niet door gezet naar de included controle php file in de action pagina en dus wordt wellicht ook de card_id niet in een session geplaatst.
ik vind het trouwens nogal omslachtig om telkens weer te verwijzen naar een andere pagina waar dan weer een include wordt opgeroepen.

kan ik niet beter in de form als action, direct de controle php file zetten ?
en hoe kan ik zien of de form gegevens wel worden doorgestuurd ?
is er een manier om te zien wat er in de session zit ?



de controle file ziet er zo uit:
Code:
<?
/* Check User Script */
session_start();  // Start Session
include 'db.php';
// Convert to simple variables
$last_name = $_POST['last_name'];
$card_id = $_POST['card_id'];
$postlang = $_POST['lang'] ;


if((!$last_name) || (!$card_id)){
?>
<blockquote>
<span class="style5">Error!</span>

   <p><div style="padding-top:30px" align="center">
     <? if ($lang == "nl") { ?>
     Gelieve alle gegevens in te vullen
     <? } else { ?>
     Veuillez remplir toute les donn&eacute;es
     <? } ?>
     </div>
   </p>
</blockquote>
 
<?
   include '$prev_url';
   exit();
}

// Convert password to md5 hash
$password = md5($password);

/* Controleren of het om een speciaal lidnummer gaat: */
if (is_numeric($last_name))
{   
   $okraLidNummerSplit = str_split($last_name);
        foreach ($speciaalLidNummerSplit as &$lidNumberChar) {
            $lidNumberChar = $lidNumberChar . '[^0-9]*';
        }
        $speciaalLidNummer = implode($speciaalLidNummerSplit);
   /* Inloggen via het speciaal lidnummer */
   $sqlstring = "SELECT * FROM dbo_b_fidcard WHERE speciaal_lidnummer REGEXP '$speciaalLidNummer' AND card_id ='$card_id'";
}
else
{
   /* Inloggen via de achternaam */
   $sqlstring = "SELECT * FROM dbo_b_fidcard WHERE last_name ='$last_name' AND card_id ='$card_id'";
}

$sql = mysql_query($sqlstring);
// check if the user info validates the db
$login_check = mysql_num_rows($sql);

if($login_check > 0){
   while($row = mysql_fetch_array($sql)){
   foreach( $row AS $key => $val ){
      $$key = stripslashes( $val );
   }
      // Register some session variables!
      
      session_register('card_id');
      $_SESSION['card_id'] = $card_id;
      
      session_register('user_level');
      $_SESSION['user_level'] = '1';
      
         
      
      echo"<script type=\"text/javascript\">
      window.location = 'http://www.sitenaam.eu/$postlang/your_usersinfo';
   </script>";
      exit;

   }
} else {
   
   if ($lang == "nl") { ?>
   <blockquote>
    U Kon niet worden aangemeld. Misschien was uw naam of pasnummer onjuist, of uw lidmaatschap niet geactiveerd.<br />
   Probeer het opnieuw!
    </blockquote>
   <? } else { ?>
    <blockquote>
   VOUS n'avez pas pu &ecirc;tre inscrits. Votre nom ou pasnummer, ou votre adh&eacute;sion inexacte n'avaient pas &eacute;t&eacute; activ&eacute;s peut-&ecirc;tre. <br />
   <br />
   le essaye de nouveau!<br />
    </blockquote>

   
    <? }
   
}
?>             


hopelijk kan je me een tip geven op mijn vragen ?

Alvast hartelijk bedankt
Mvg,
Peter


Top
 Profile  
 
 Post subject: Re: php in template .. een foutje ?
PostPosted: Wed Sep 07, 2011 6:19 am 
Offline
Power Poster
Power Poster
User avatar

Joined: Tue Jan 27, 2009 11:47 am
Posts: 678
Location: Belgium - Flemish
blijkt nu dat de code werkt tot op een punt waar de session variabelen worden gecontroleerd na het doorsturen naar een pagina.

de session variabele card_id die wordt ingevuld met de inhoud van een formulierveld wordt niet mee gestuurd naar een pagina.
juist voor deze pagina aansturing is de session variabele wel aanwezig.

iemand die weet waarom deze niet beschikbaar is in de CMSMS pagina.

Mvg,
Peter


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
A2 Hosting