Scriptingvragen (PHP, JavaScript etc.)

Praat mee over van alles en nog wat!
Forumregels
Dit forum is voor alle zinnige gesprekken buiten phpBB om. Discussies en gesprekken over interessante onderwerpen.

Een nieuw onderwerp moet..:
  • uiteraard voldoen aan de algemene voorwaarden
  • niet passen in de gewone supportfora
  • interessante zijn voor het overgrote deel van onze gebruikers
  • een neutrale of positieve ondertoon hebben
  • anders zijn dan bestaande onderwerpen
Gebruikersavatar
Jeroen
Berichten: 3639
Lid geworden op: 10 mei 2008, 21:22

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door Jeroen » 29 okt 2010, 13:18

fifagast, ik heb je topic samengevoegd met het algemene scriptingvragen topic, aangezien je vraag niet met phpBB te maken heeft.
Jeroen

Gebruikersavatar
fifagast
Berichten: 43
Lid geworden op: 18 okt 2008, 20:53
Locatie: Emmen
Contacteer:

Re: <!-- INCLUDE blabla.html --> statements maken

Bericht door fifagast » 29 okt 2010, 18:58

Ger schreef:
fifagast schreef:Ik kan wel domweg een array maken en die gebruiken met preg_replace maar dan moet ik voor elk bestand een key + value invoeren en daar word de site niet echt dynaischer van. En dat is waar ik naartoe wil werken.
Nee joh, da's niet handig. Maar wat denk je van zoiets:

Code: Selecteer alles

//bestand voor deze pagina bepalen
$template = implode(file('bestand.html'));

//zoeken naar  include statements
preg_match_all('#\<\!-- INCLUDE (.+?).html --\>#', $template, $matches);
foreach($matches[1] as $include) {
    //vervangen door bestand
    $template = str_replace('<!-- INCLUDE '.$include.'.html -->', implode(file($include.'.html')), $template);
}

//gooi het eruit
print_r($template); 
Heey geweldig. Het script werkt. Ik krijg hem alleen niet aan het werk in mijn template systeem -,- maar wel als ik het los gebruik.
Niemand weet wat leven is, alleen dat het gegeven is en dat van dit geheimenis God het begin en einde is.

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door Ger » 29 okt 2010, 19:23

Tsja, ik ken jouw template systeem natuurlijk niet. Dit is natuurlijk een überbasic principe, je zult het moeten aanpassen naar jouw totaalplaatje.
Zoals je ook ziet gaat de regex puur uit van html bestanden. Op deze manier kun je dus niet zomaar CSS, javascript en weet ik wat includen. Ook staat de regex alles toe, als het maar op .html eindigt. Voor wat veiligheid zul je dat ook moeten aanpassen.

Gebruikersavatar
fifagast
Berichten: 43
Lid geworden op: 18 okt 2008, 20:53
Locatie: Emmen
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door fifagast » 29 okt 2010, 21:31

Heey! Ik heb hem aan de praat gekregen. Je bent geweldig! bedankt!.
Niemand weet wat leven is, alleen dat het gegeven is en dat van dit geheimenis God het begin en einde is.

Gebruikersavatar
fifagast
Berichten: 43
Lid geworden op: 18 okt 2008, 20:53
Locatie: Emmen
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door fifagast » 29 okt 2010, 21:45

Ik heb misschien te vroeg gejuig. Als ik de inlude statement helemal onder aan de pagina zet om de footer te includen dan includ hij de footer precies onder de geinclude header en de tekst weer onder die footer.

Heb al wat zitten pielen maar ik krijg het niet soals ik wil -,-
Niemand weet wat leven is, alleen dat het gegeven is en dat van dit geheimenis God het begin en einde is.

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door Ger » 29 okt 2010, 21:55

Tsja, zo op afstand kan ik er weinig van zeggen. Kun je je code eens posten?

Gebruikersavatar
fifagast
Berichten: 43
Lid geworden op: 18 okt 2008, 20:53
Locatie: Emmen
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door fifagast » 31 okt 2010, 11:06

Ger schreef:Tsja, zo op afstand kan ik er weinig van zeggen. Kun je je code eens posten?
Tuurlijk.
functions.php

Code: Selecteer alles

<?php
class template
{
    var $file = 'index.html';
    var $error = '';
    var $getFile = false;
    var $html = '';
    var $incl_file = '';
    
    public function __construct($file = false)
    {
        if($file != "" && $file != false)
        {
            if(!preg_match("/(.+?).html$/si",$file))
            {
                $this->error = "<b>Parse error:</b> The file has to be an html document!";
            }
            elseif(!file_exists($file))
            {
                $this->error = "<b>Parse error:</b> The file ".$file." does not exsist!";
            }
            $this->file = $file;
        }
    }
    public function getFile()
    {
        if(file_exists($this->file))
        {
            $this->html = file_get_contents($this->file);
            $this->getFile = true;
        }
    }
    
    public function language($replacement)
    { 
        if($this->getFile == false) 
        {
            $this->getFile();
        }
        foreach($replacement as $key => $value)
        {
            $this->html = preg_replace("#\{L_".$key."\}#si",$value,$this->html);
        }
    }
    
    function includes()
    {
        $this->incl_file = implode(file($this->file));

        preg_match_all('#\<\!-- INCLUDE (.+?).html --\>#', $this->incl_file, $matches);
        foreach($matches[1] as $include) 
        {
            $this->incl_file = str_replace('<!-- INCLUDE '.$include.'.html -->', include($include.'.html'), $this->incl_file);
        }
    }
        
    public function parse() 
    {
          if($this->errors == '') 
          {
               if($this->getFile == false) 
               { 
                $this->getFile();
            }
                return $this->html;
        }
        else
        {
            return $this->error;
        }
    }
}
?>
index.php

Code: Selecteer alles

<?php

require("includes/functions.php");
require("language/nl/common.php");
$nt = new template("styles/control/template/index.html");
$nt->language($lang);
$nt->includes();
echo $nt->parse();

?>
index.html

Code: Selecteer alles

<!-- INCLUDE styles/control/template/overall_header.html -->
{L_TITLE} <br />
{L_TEXT} <br />
<!-- INCLUDE styles/control/template/overall_footer.html -->
Zoals je opvalt had ik in uw gegeven sciptje een paar dingen veranderd. Anders kreeg ik namelijk dit soor dingen:
Dit is de header!
{L_TITLE}
{L_TEXT}
Dit is de footer! Dit is de titel!
Dit is de tekst

en als ik mijn replace function weg laat dan staat er dit:

Dit is de header!
{L_TITLE}
{L_TEXT}
Dit is de footer! {L_TITLE}
{L_TEXT}

Dus dan werden de met haakjes omrandde statements wel vernderd maar ze bleven ook staan.
Maar dan staat de include wel op de goede plaek. -,-

Groeten,

Daniël
Laatst gewijzigd door fifagast op 31 okt 2010, 12:18, 2 keer totaal gewijzigd.
Niemand weet wat leven is, alleen dat het gegeven is en dat van dit geheimenis God het begin en einde is.

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20297
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door Paul » 31 okt 2010, 11:12

Waarom gebruik je php4 en php5 oop door elkaar?

Gebruikersavatar
fifagast
Berichten: 43
Lid geworden op: 18 okt 2008, 20:53
Locatie: Emmen
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door fifagast » 31 okt 2010, 12:08

paul schreef:Waarom gebruik je php4 en php5 oop door elkaar?
Ben nog wat aan het rommelen en moet nog vanalles veranderen. Maar dat soor kleien dingetjes doe ik pas als ik weet dat het werkt soals ik wil.
Jeroen schreef:fifagast, ik heb je topic samengevoegd met het algemene scriptingvragen topic, aangezien je vraag niet met phpBB te maken heeft.
Haha vanddar. Misschien een beetje gek dat ik dit nu pas typ, maar dat komt omdat ik het berichtje noch niet eerder had gelezen,

Groet'n,

Daniël
Niemand weet wat leven is, alleen dat het gegeven is en dat van dit geheimenis God het begin en einde is.

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20297
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door Paul » 31 okt 2010, 17:03

Fifagast, graag niet dubbelposten, maar je eerdere bericht bewerken. Ik heb je posts nu samengevoegd.

Gebruikersavatar
fifagast
Berichten: 43
Lid geworden op: 18 okt 2008, 20:53
Locatie: Emmen
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door fifagast » 31 okt 2010, 17:20

Sorry zal er om denken.
Niemand weet wat leven is, alleen dat het gegeven is en dat van dit geheimenis God het begin en einde is.

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door Ger » 31 okt 2010, 17:52

2 dingen.
Ten eerste: als je het op zo'n manier gaat gebruiken, dan gaat mijn eerdere manier inderdaad scheef. Beter is dan om preg_replace_callback te gebruiken. Je function includes() wordt dan zoiets:
(tevens even file_get_contents gebruikt, da's efficiënter maar ik was eerder nog even ouderwetsch bezig)

Code: Selecteer alles

    function includes()
    {
        $this->incl_file = file_get_contents($this->file);

        $this->incl_file = preg_replace_callback('#\<\!-- INCLUDE (.+?).html --\>#', 
            create_function(
                '$matches',
                'return file_get_contents($matches[1].".html");'
            ),
            $this->incl_file);
    } 
Verder zit in je function parse() een foutje. De regel return $this->html; verwijst naar deze regel:
$this->html = file_get_contents($this->file);
$this->file is simpelweg index.html, zonder vervangingen. Wat wil is echter index.html mét vervangingen, dus moet je dit gebruiken:
return $this->incl_file;

En dan klopt-ie volgens mij.

Gebruikersavatar
fifagast
Berichten: 43
Lid geworden op: 18 okt 2008, 20:53
Locatie: Emmen
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door fifagast » 31 okt 2010, 21:22

Echt heel super, bdankt het werkt nu. Kan ik u mijn html files maken en eventule andere rare php dingen maken :p. Ick maakt er geen prebleem van dat je het eerst een beetje ouderwetsch deed :p
Het gaat er om dat je me heel erg goed geholpen hebt en dat het nu werkt. Mocht je ooit its van me weten. Dan meld het dan ff. Dat is wel 't minste dat ik kan doen.

Nogmaals heel erg bedankt!
Niemand weet wat leven is, alleen dat het gegeven is en dat van dit geheimenis God het begin en einde is.

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door Ger » 01 nov 2010, 08:39

Snap je ook wat ik nu gedaan heb?

Verder: ik weet niet in hoeverre je met userinput te maken hebt, maar bovenstaande is nog niet echt veilig. Iemand kan gewoon keihard een http://www.mijnstoutewebsite.nl/dit-is-echt-foute-boel.html includen. En met wat .htaccess kan dat echt alles zijn wat je op internet kunt zetten. Je zult dus nog behoorlijk wat checks moeten inbouwen.

Gebruikersavatar
fifagast
Berichten: 43
Lid geworden op: 18 okt 2008, 20:53
Locatie: Emmen
Contacteer:

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door fifagast » 01 nov 2010, 16:20

Ja ik begrijp wat je allemaal gedaan hebt. En ook bedankt voor de tips.
Kan de strip_tags() functie ook worden gebruikt voor wat er in de browser word getypt?
Niemand weet wat leven is, alleen dat het gegeven is en dat van dit geheimenis God het begin en einde is.

micho
Berichten: 2
Lid geworden op: 13 mei 2012, 14:32

Help!! alsjeblieft

Bericht door micho » 13 mei 2012, 14:36

hallo, ik ben michael en ik ben 15 jaar. Ik ben een script aan het schrijven:

Code: Selecteer alles

<?php
session_start();
include('config.php');
?>
<html>
<style type='text/css'>
rood {
color:red;
}
</style>
<form name='inloggen' method='post' action='login.php'>
<center><br><br><br> gebruikersnaam:<input type='text' name='gebruikersnaam'><br>
	wachtwoord:<input type='password' name='wachtwoord'><br>
		<input type='submit' name='knop1' value='inloggen'><br>
</center>
</form>
</html>
<?php
$gebruikersnaam=$_POST['gebruikersnaam'];
$wachtwoord=$_POST['wachtwoord'];
$sel_gebr="SELECT * FROM gebruikers";
$gebr=mysql_fetch_array(mysql_query($sel_gebr));
if ($_POST['knop1'] == 'inloggen')
{
	if(empty($gebruikersnaam))
	{
		echo('<center><rood>er is geen gebruikersnaam ingevuld!');
	}else{
		if(empty($wachtwoord))
		{
		echo('<center><rood>er is geen wachtwoord ingevuld!');
		}else{
			if($gebr['id'] >= 1)
			{
			$_SESSION['loggedin']='yes';
			header('location:dorp1.php');
			}else{
			echo('gebruikersnaam of wachtwoord klopt niet!');
			}
		}
	}
}
?>
maar ik krijg deze foutmelding:

Code: Selecteer alles

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampplite\htdocs\creatan\login.php on line 22
. Ik weet echt niet wat ik moet doen :cry: . zou iemand me kunnen helpen?
Laatst gewijzigd door Derky op 13 mei 2012, 16:33, 1 keer totaal gewijzigd.
Reden: Onderwerp samengevoegd

Gebruikersavatar
Tom V
Berichten: 2487
Lid geworden op: 24 jan 2006, 17:04
Locatie: Houtvenne (BE)
Contacteer:

Re: Help!! alsjeblieft

Bericht door Tom V » 13 mei 2012, 15:55

Dit is op zich geen PHP-discussie forum.

Maar waarschijnlijk doe je nergens mysql_connect waardoor mysql_query FALSE teruggeeft ipv het resultaat, en mysql_fetch_araay moet een resource zijn en geen boolean (FALSE in dit geval)

micho
Berichten: 2
Lid geworden op: 13 mei 2012, 14:32

Re: Help!! alsjeblieft

Bericht door micho » 13 mei 2012, 16:01

ja, zo iets dacht ik ook al, maar "config.php" bevat het volgende: mysql_connect("localhost","users","********");
mysql_select_db("creatan");
maar ik denk dat ik het al weet als ik naar "config.php" ga dan krijg ik ook dit: Access denied for user 'users'@'localhost' to database 'creatan'. dus ik denk dat ik een nieuwe user moet aanmaken. bedankt! :).

Ja hij doet het!. ik moest de privileges aanpassen. nu heeft hij weer verbinding :D

kawaminator
Berichten: 57
Lid geworden op: 16 nov 2012, 22:39

Re: Scriptingvragen (PHP, JavaScript etc.)

Bericht door kawaminator » 18 nov 2012, 17:04

Hoi, ik wil op een website een klokje plaatsen met daarvoor de tekst Het is nu: uu.mm.ss

Ik heb het scripte voor de klok wel, maar als ik er de Het is nu tekst voor plaast dan komt de klok onder deze teks in plaats van ernaast.
Zal wss een heel simpele oplossing voor zijn, maar super veel van html ken ik niet, dus hopelijk kan er me iemand vertellen wat ik juist moet veranderen, en heel waarschijnlijk zal deze code kunnen vereenvoudigd worden ook, maar dan weet ik helemaal niet hoe :P

Alvast bedankt

Code: Selecteer alles

<html>
Het is nu:<head>
<script>
function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
// add a zero in front of numbers<10
m=checkTime(m);
s=checkTime(s);
document.getElementById('txt').innerHTML=h+":"+m+":"+s;
t=setTimeout(function(){startTime()},500);
}

function checkTime(i)
{
if (i<10)
  {
  i="0" + i;
  }
return i;
}
</script>


<body onload="startTime()">
<div id="txt"></div>
</body>
</html>

Plaats reactie