potetskrell Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 Siden min siste tråd i html-delen av forumet gled over til php, og ingen gav meg noe svar, prøver jeg meg her. Tingen er sånn at jeg vil plassere et/flere phpscript inne en <?PHP ?>. Kanskje litt vanskelig å forstå sånn først, men index.php er et stor php-script som setter inn en annen fil, der selve sida ligger. Det ser noe sånt ut; Index.php <?php // Main page for Siteframe. $page_start = microtime(); include "siteframe.php"; // check for optional command-line variables if ($_GET['category']) $PAGE->set_property('category',$_GET['category']+0); // if the site name is not specified, then the site has not been // configured properly if ($SITE_NAME=='') header("Location: admin/globals.php"); $PAGE->set_property('page_title',$SITE_NAME); if ($HOME_PAGE!='') { $PAGE->set_property('_index_', parse_text($PAGE->get_template_body($HOME_PAGE))); } else { $PAGE->load_template('_index_',$TEMPLATES[Index]); } [med mer......] ?> get_template_body er da lagret i databasen. Der oppdaterer jeg den som jeg vil (med doctype og alt). Index.php er til for hente inn andre sider, behandle pop-ups osv.. Scriptet som ligger i koden (midt i en tabell, og henter bare inn tilfeldige bilder) som er inkludert fra databasen; <?php $font ="Verdana"; // $fontsize ="3"; // $textfile ="http://www.pur---------bler/460.txt"; //Resten av scriptet echo "<font face=\"$font\" size=\"$fontsize\">"; $quotes = file("$textfile"); $quote = rand(0, sizeof($quotes)-1); echo $quotes[$quote]; echo "</font>"; ?> Hvis dette var uklart, bare spør Jeg vil ha et php-script inne i feks document.php, som er hentet inn av index.php... Lenke til kommentar
jorgis Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 mener du at du vil kjøre koden som kommer fra databasen? eval() er i så fall din venn Lenke til kommentar
potetskrell Skrevet 28. mai 2004 Forfatter Del Skrevet 28. mai 2004 Hmm, nei siden hele sida er plassert inne i et php-script, kan jeg ikke putte fler php-script inne i de sidene som inkluderes i index.php igjen.. Det blir jo <?PHP <?PHP ?> ?> Og det i midten blir jo bare vanlig tekst.. Se her. Lenke til kommentar
The Red Devil Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 Forstår ikkje problemstillingen, vist du inkluderer filer med "include" så skulle det ikkje våre nokre problem. Vist du henter det fra databasen så bruker du "eval" som jorgenindahouse sa. Lenke til kommentar
potetskrell Skrevet 28. mai 2004 Forfatter Del Skrevet 28. mai 2004 Forstår ikkje problemstillingen, vist du inkluderer filer med "include" så skulle det ikkje våre nokre problem. Vist du henter det fra databasen så bruker du "eval" som jorgenindahouse sa. Se her, og se på hva som skjer med php-scriptene. Ikke tenkt på det der med databasen... Lenke til kommentar
The Red Devil Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 Hmm, korleis er parseren din bygd opp ? Feilen ligger nok der ein plass. Vist den ikkje takler fleire <?php ?> då er jo ein løysning å fjerne dei fra dei andre filene. Veit ikkje korlei din parser virker, men vanlegvis så blir alle felta som skal ha variabel informasjon i templatene bare lagret som { INFO } (etc) deretter så skifter parseren ut informasjonen som skal stå i det feltet. Lenke til kommentar
potetskrell Skrevet 28. mai 2004 Forfatter Del Skrevet 28. mai 2004 (endret) Huff, hvor vanskelig dette skulle gjøres da. Index.php ser slik ut; <?PHP <---- DETTE ER STARTEN!! Nå kommer masse script om pop-ups, reklamer, diverse, og så DET SOM SKAL INKLUDERES, eksempelvis en fil fra databasen. Og når index.php blir lest av i en browser, kommer den fila jeg inkluderte cirka midt i index.php og som inneholder selve sida, og ikke sjekking av bruker id, pop-up innstilinger osv. Og det er denne fila som inkluderes, som er interessant; fordi at det er [i]den[/i] som innheholder <html><body>. Og midt i dette, inne i en tabell, inne i body'en, inne i fila som nettopp ble inkludert og innenfor index.php's sine allmektige grenser <?PHP ?> ligger mitt php-script... Det blir jo da et php-script inne i et php-script, og problemet ligger i at php-scriptet, inne i php-scriptet ikke blir "parset", men kommer ut som tekst og masse tull. ?> <---- DETTE ER SLUTTEN PÅ INDEX.PHP!! Skjønner? Enkelt blir det; <?PHP <?PHP ?> ?>. Noen som har løsning på dette? Endret 28. mai 2004 av Ingardj Lenke til kommentar
The Red Devil Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 Først eit spørsmål til deg, koffor i granskauen bruker du nye php tagger i filene uten å avslutte den forrige ? Vist den andre fila hadde blitt inkludert på ein "rett" måte så blir ikkje dei andre <?php ?> taggene includert i selve "scripted" siden dei blir executed når du inkluderer filen. Kvifor du får denne feilen er umuleg for oss å vite, du har fått tips om plassene som det kan være feil, har du i det heile tatt sjekket ut desse ? Lenke til kommentar
kroekkete Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 Veldig enkelt! <?php phpkode ?> <html> blablabla <tabell> <?php phpkode ?> </tabell> htmlblablabla <?php phpkode ?> html osv osv Avslutt php når du kommer til HTML, og fortsett den når du må ha kode igjen... Lenke til kommentar
potetskrell Skrevet 28. mai 2004 Forfatter Del Skrevet 28. mai 2004 Først eit spørsmål til deg, koffor i granskauen bruker du nye php tagger i filene uten å avslutte den forrige ? Vist den andre fila hadde blitt inkludert på ein "rett" måte så blir ikkje dei andre <?php ?> taggene includert i selve "scripted" siden dei blir executed når du inkluderer filen. Kvifor du får denne feilen er umuleg for oss å vite, du har fått tips om plassene som det kan være feil, har du i det heile tatt sjekket ut desse ? Se NØYE på dette; <?php // Main page for Siteframe. $page_start = microtime(); include "siteframe.php"; // check for optional command-line variables if ($_GET['category']) $PAGE->set_property('category',$_GET['category']+0); // if the site name is not specified, then the site has not been // configured properly if ($SITE_NAME=='') header("Location: admin/globals.php"); $PAGE->set_property('page_title',$SITE_NAME); if ($HOME_PAGE!='') { $PAGE->set_property('_index_', parse_text($PAGE->get_template_body($HOME_PAGE))); } else { $PAGE->load_template('_index_',$TEMPLATES[Index]); } [med mer......] ?> Du fikk med deg hva som skjedde? if ($HOME_PAGE!='') { $PAGE->set_property('_index_', parse_text($PAGE->get_template_body($HOME_PAGE))); } Og ja, HOME_PAGE er definert, og skal her inkluderes. Fortell meg en ting ved dette, du ikke forstår? Lenke til kommentar
The Red Devil Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 Du fikk med deg hva som skjedde? CODE if ($HOME_PAGE!='') { $PAGE->set_property('_index_', parse_text($PAGE->get_template_body($HOME_PAGE))); } Og ja, HOME_PAGE er definert, og skal her inkluderes. Fortell meg en ting ved dette, du ikke forstår? Ok..., får quote det igjen då... Hmm, korleis er parseren din bygd opp ? Feilen ligger nok der ein plass. Vist den ikkje takler fleire <?php ?> då er jo ein løysning å fjerne dei fra dei andre filene. Lenke til kommentar
potetskrell Skrevet 28. mai 2004 Forfatter Del Skrevet 28. mai 2004 Du fikk med deg hva som skjedde? CODE if ($HOME_PAGE!='') { $PAGE->set_property('_index_', parse_text($PAGE->get_template_body($HOME_PAGE))); } Og ja, HOME_PAGE er definert, og skal her inkluderes. Fortell meg en ting ved dette, du ikke forstår? Ok..., får quote det igjen då... Hmm, korleis er parseren din bygd opp ? Feilen ligger nok der ein plass. Vist den ikkje takler fleire <?php ?> då er jo ein løysning å fjerne dei fra dei andre filene. Du kan jo fortelle meg hvordan en parser skal være bygd opp, siden jeg ikke vet hva en parser er... Men det ser uansett ikke ut som om du helt fatter hva som skjer her.. Lenke til kommentar
The Red Devil Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 if ($HOME_PAGE!='') { $PAGE->set_property('_index_', parse_text($PAGE->get_template_body($HOME_PAGE))); } Vist variablen "HOME_PAGE" ikkje er tom så kjøres if setningen. Der blir to verdier sent videre til funksjonen "set_property" som ligger i ein klasse som du har startet tidligere i skriptet med "PAGE" som peker mot den. Den første verdien er navnet "_index_" deretter så inkluderes "HOME_PAGE" den blir inkludert først i funksjonen "get_template_body" (som har samme klasse som set_property) deretter kjøres ein til funksjon kallet parse_text. Høyrtes det rett ut ? Det du må forstå, er at ingen her veit kva variablen "$HOME_PAGE" inneheld. For alt me veit så kan det være alt fra fil navnet til alt innholdet i den filen. Og korleis skal me kunne vite kva klassen (funksjonene) du inkludere dei inn i gjør ? Du kan gjør alt fra å bare kjøre ein "include($HOME_PAGE);" der fra å parse innhaldet i filen.... Ein parser er eit skript som tar innholdet fra andre filer, for deretter å forandre på desse i tilfelle dei har variabel informasjon, og deretter vise dei for brukeren. (templates etc) Lenke til kommentar
potetskrell Skrevet 28. mai 2004 Forfatter Del Skrevet 28. mai 2004 Ok, $HOME_PAGE inneholder altså, som tildligere sagt, selve sida. Dvs, fra <html> til </html>. Og inne i $HOME_PAGE vil jeg bruke php. Men dette går ikke, siden alt allerede er inne i et php-script.. Har ikke peiling på hvordan jeg kan få deg til å forstå dette.. men men... Lenke til kommentar
jorgis Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 Vanlig inkludering lar deg bruke php inni php, siden PHP selv går ut av "php-modus" når du bruker include(). Har du mekket dette scriptet selv? Virker unødvendig komplisert... Lenke til kommentar
The Red Devil Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 Ingardj: ..... Du er klar over at den første posten forklarte korleis du skulle løyse dette ? Du bør komme ned fra din sky høye hest og faktisk prøve nokon av det du er blitt forklart. Ser heller ut som det er du som ikkje forstår så mye... Bruk EVAL() vist det er ein text string som inneholder php kode og, eller skriv om skriptet ditt slik at det blir som eit normalt parse skript. Lenke til kommentar
potetskrell Skrevet 30. mai 2004 Forfatter Del Skrevet 30. mai 2004 Kontaktet mannen som har laget siteframe, og han tok problemet med en gang Men er litt grønn, og han foreslå at jeg skulle putte php-scriptet i et annet script (javascript??), og så kjøre det scriptet på sida mi, sånn at selve php-scriptet blir parset i scriptet, og så plassert på sida mi.. Noe som vet om en script-type hvor jeg kan gjøre slik? -------- E-post --------- Ah, yes - in Smarty, you have tags like this: {php} ...php code goes here ... {/php} so that you can put whatever PHP code you like into the templates. In Siteframe 3.x, the templates are interpreted AFTER the php processing has taken place in the web server, so there's no real way to execute code from within the templates; you'd need to add it into index.php or another script, and then put the results into the template. -------- E-post ---------- Lenke til kommentar
Cucum(r) Skrevet 30. mai 2004 Del Skrevet 30. mai 2004 Du må laste ned Smarty template class Lenke til kommentar
potetskrell Skrevet 30. mai 2004 Forfatter Del Skrevet 30. mai 2004 Du må laste ned Smarty template class Men tingen er slik at jeg ikke vil oppgradere min versjon av siteframe Du ser at han forklarer hva jeg kan gjøre, men jeg vet ikke hvordan dette scriptet skal utføres... Tror jeg sender han e mail til Lenke til kommentar
RottePostei Skrevet 31. mai 2004 Del Skrevet 31. mai 2004 Dersom PHP-koden i scriptet du skal inkludere skal kjøres separat, kan du bruke include(fullstendig url til fila med http:// og alt); Da henter include fila fra webserveren og den blir kjørt før den blir inkludert i det andre skriptet.... Mulig jeg misforsto problemet da men... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå