PHP-scripts in apart PHP-bestand
Pagina: « vorige 1 2 3 4 volgende »
Zet die het eens met vermelding van de bestandsnaam tussen de code-tags.
Zet ook de error reporting in PHP op maximaal.
Gewijzigd op 22/11/2021 10:24:24 door - Ariën -
- Ariën - op 22/11/2021 10:05:03:
Wanneer het lijkt alsof ik jouw vragewn ontwijk, heb ik jou niet goed gesnapt, want waarom zou ik vragen ontwijken?Als jij mijn vragen ontwijkt, dan kan ik er moeilijk op antwoorden.
Quote:
Je weet het verschil tussen een grafische interface en een commandline?
Volgens mij wel. Een commandline is iets waar je een commando invoert, dat vervolgens wordt uitgevoerd (zoals "sudo apt-get install -y smarty") en het overige gaat middels een grafische interface. Maar net als de meeste mensen die auto rijden geen flauw benul hebben WAARDOOR hun auto rijdt, weet ik ook niet echt WAARDOOR dingen gaan waardoor ze gaan.
Quote:
Verder ken ik Geany niet. Ik gebruik zelf Apache Netbeans om te programmeren.
Geany werd meegeleverd met het Raspberry-besturingssysteem en wordt omschreven als een "vrije platformonafhankelijke broncodebewerker en IDE".
- Ariën - op 22/11/2021 09:50:37:
En wat projecteert het dan? Op welk Operating System werk je dan? Of is dat een groot geheim ;-)
Gerard van Katwijk op 22/11/2021 09:15:06:
... tot heden met het RISC-besturingssysteem.
Dat lijkt mij geen lastige vraag? Dan weet ik in ieder geval wat voor software ik kan adviseren.
Maar blijkbaar is dat dus de RISC distro ? Dan kan je toch ook prima klikken met de muis? ;-)
En werk je met je website op een aparte server (Raspberry Pi)?
Gewijzigd op 22/11/2021 10:37:45 door - Ariën -
- Ariën - op 22/11/2021 10:23:39:
Hoe ziet je relevante code eruit?
Zet die eens met vermelding van de bestandsnaam tussen de code-tags.
Zet die eens met vermelding van de bestandsnaam tussen de code-tags.
Jeetje, wat vraag je me nou? Wil je dat ik de hele inhoud van mijn index.php-bestand hier naar toe kopieer?
Quote:
Zet ook de error reporting in PHP op maximaal.
Geen idee waar je het hier over hebt. :( Ik ben een absolute beginner! Dit is net zoiets, in mijn beleving, als aan iemand vragen die nog nooit auto gereden heeft om gas te geven. Zo iemand moet eerst verteld worden dat wanneer die met diens voet op een bepaald pedaal trapt, de auto vooruit gaat.
In de commodore-64, MSX, Acorn, ZX-81 etc etc tijd die voor de opkomst van Microsoft gebaseerde Operating systems als MS-DOS bestond, had elk merk zijn eigen operating system.
Blijkbaar (was mij ook niet bekend) wordt Risc OS nog steeds gebruikt.
Ik vraag me wel af welke hardware Gerard daarbij dan gebruikt.
Naar ik vermoed niet een Raspi.
En als je ooit hebt leren werken met command line georienteerde omgevingen op de C64 of MSX, dan is het mogelijk ook minder bezwarend om ook op een webserver gewoon de command line te gebruiken. Dat heeft zelfs mijn voorkeur boven grafische oplossingen die vaak beperkt zijn tot wat de bouwer van zo'n tool als nodig beschouwde en wat.
We krijgen hier namelijk wel eens een vraag van iemand die met 400 regels aan code komt, en dát willen we voorkomen.
En foutafhandeling (error_reporting) in PHP wordt overal wel zo'n beetje besproken. Dat kan je in je script met ini_set doen, maar ook in php.ini of .htaccess.
- Ariën - op 22/11/2021 10:37:07:
Ik vroeg gewoon op welk Operating Systeem je normaal gesproken je werk doet.
Dat schreef ik toch? Of was ik onduidelijk? Normaal gesproken en het liefst werk ik met het RISC-besturingssysteem. Maar omdat ik daarop geen .AMP (dat zou dan RAMP moeten gaan heten en van RISC schrikken de meeste mensen al) kan draaien noch PHP, worstel ik nu om me het Raspberry-besturingssysteem eigen te maken.
Quote:
Maar blijkbaar is dat een RISC-distro. Dan kan je toch ook prima klikken met de muis? ;-)
Klopt!
Quote:
En werk je met je website op een aparte server (Raspberry Pi)?
Klopt ook. :) Op m'n ene Pi draait het RISC-besturingssysteem en op m'n andere het Raspberry-(een Linux-versie)besturingsysteem.
Nu is dat duidelijk. :-)
Ivo P op 22/11/2021 10:46:49:
Dat is, volgens mij, nog steeds zo. Immers, ook MS, Apple e.d. hebben hun eigen besturingssysteem. Maar de RISC-microprosessor ARM, waar zit die tegenwoordig niet in?volgens mij praten Ariën en Gerard redelijk langs elkaar heen, doordat Ariën kennelijk van generatie of wat later is dan Gerard en ik, en de pre-pc tijd gemist heeft:
In de commodore-64, MSX, Acorn, ZX-81 etc etc tijd die voor de opkomst van Microsoft gebaseerde Operating systems als MS-DOS bestond, had elk merk zijn eigen operating system.
In de commodore-64, MSX, Acorn, ZX-81 etc etc tijd die voor de opkomst van Microsoft gebaseerde Operating systems als MS-DOS bestond, had elk merk zijn eigen operating system.
Quote:
Blijkbaar (was mij ook niet bekend) wordt Risc OS nog steeds gebruikt.
Klopt. Al weer heel wat jaren geleden bestond de Nederlandse computervereniging "BigBenClub", waar ik ook al heel lang lid van ben, 25 jaar. Bij die gelegenheid ontvingen alle leden gratis een pas op de markt gekomen Raspberry Pi, waarop (ook) het RISC-besturingsysteem kon draaien.
Quote:
Ik vraag me wel af welke hardware Gerard daarbij dan gebruikt.
Zie boven. M'n eerste computer was de BBC Micro liefkozend de "beep" genoemd, in de jaren 80 van de vorige eeuw. M'n laatse voordat ik overstapte op de Pi was de Kinetic RiscPC.
Quote:
Naar ik vermoed niet een Raspi.
Wel dus. :)
Quote:
En als je ooit hebt leren werken met command line georienteerde omgevingen op de C64 of MSX, dan is het mogelijk ook minder bezwarend om ook op een webserver gewoon de command line te gebruiken. Dat heeft zelfs mijn voorkeur boven grafische oplossingen die vaak beperkt zijn tot wat de bouwer van zo'n tool als nodig beschouwde en wat.
Ik heb eigenlijk nooit met commandoregels gewerkt. In 1987 kwam Acorn al met een grafische interface. Nu heeft elk platform een grafische interface maar die aan RISC gekoppeld is, vind ik nog steeds het meest gebruiksvriendelijk vanwege o.a. de vele overlappende vensters die mogelijk zijn i.p.v. dat geklooi met tab's.
Op de Pi met het Raspberry-besturingssysteem kreeg ik eigenlijk voor het eerst pas serieus te maken met een commandoregelsysteem middels LXTerminal.
Nog gelukt met de eerste stapjes in Smarty?
- Ariën - op 22/11/2021 11:54:31:
Nog gelukt met de eerste stapjes in Smarty?
Niet echt. Geen idee hoe ik verder moet of dat ik mogelijk iets verkeerd heb gedaan. Ben ijverig aan het rondstruinen op het internet, maar echt een beginnersverhaal heb ik nog niet kunnen vinden.
Ik krijg het idee dat je gewoon zoiets wilt (of schat ik het nu te simpel in?):
Code (php)
Via een template parser kun je dit vereenvoudigen tot:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
<head>
<title>{{ mijn_titel }}</title>
</head>
<body>
{{ mijn_body }}
enz
</body>
</html>
<html>
<head>
<title>{{ mijn_titel }}</title>
</head>
<body>
{{ mijn_body }}
enz
</body>
</html>
Maar daar krijg je wel een behoorlijke overhead (+ leercurve) voor terug (uiteraard zitten er ook wel meerdere voordelen aan vast).
Toevoeging op 22/11/2021 12:30:55:
Ter info: "Geany" is op Linux distro's wat "Kladblok" / "Notepad" voor Windows gebruikers is.
Gerard van Katwijk op 22/11/2021 12:03:36:
Niet echt. Geen idee hoe ik verder moet of dat ik mogelijk iets verkeerd heb gedaan. Ben ijverig aan het rondstruinen op het internet, maar echt een beginnersverhaal heb ik nog niet kunnen vinden.
In PHP zet je alle data klaar in aparte pakketjes, het 'assignen'. In HTML roep je die data op.
Simpel voorbeeld:
index.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
require_once('Smarty.class.php');
$smarty = new Smarty(); // Class Smarty inladen
// Stel de juiste paden in voor de directories voor de:
// templates, automatisch gecompileerde templates, configuratie en de cache.
$smarty->setTemplateDir('/web/www.example.com/templates/');
$smarty->setCompileDir('/web/www.example.com/templates_c/');
$smarty->setConfigDir('/web/www.example.com/configs/');
$smarty->setCacheDir('/web/www.example.com/cache/');
// Assign een string naar Smarty-variabelen
$smarty->assign('titel', 'Mijn eerste Smarty-site');
$smarty->assign('naam', 'Piet Pietersen');
// Toon het
$smarty->display('index.tpl');
?>
require_once('Smarty.class.php');
$smarty = new Smarty(); // Class Smarty inladen
// Stel de juiste paden in voor de directories voor de:
// templates, automatisch gecompileerde templates, configuratie en de cache.
$smarty->setTemplateDir('/web/www.example.com/templates/');
$smarty->setCompileDir('/web/www.example.com/templates_c/');
$smarty->setConfigDir('/web/www.example.com/configs/');
$smarty->setCacheDir('/web/www.example.com/cache/');
// Assign een string naar Smarty-variabelen
$smarty->assign('titel', 'Mijn eerste Smarty-site');
$smarty->assign('naam', 'Piet Pietersen');
// Toon het
$smarty->display('index.tpl');
?>
En dan hebben we index.tpl in de /templates staan:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<head>
<title>{$titel}</title>
</head>
<body>
<h1>{$titel}</h1>
<p>Mijn naam is: {$naam}</p>
</body>
</html>
<html>
<head>
<title>{$titel}</title>
</head>
<body>
<h1>{$titel}</h1>
<p>Mijn naam is: {$naam}</p>
</body>
</html>
Et voila...
Je hebt je PHP-code en je HTML gescheiden van elkaar. ;-)
Nu kan je ook bijvoorbeeld foreach en if-else-eleif structuren gebruiken in je templates, en nog veel meer.
@Rob: Een templateparser geeft wat meer overhead, en heeft een leercurve. Maar het heeft wel diverse gemakken, zoals ingebouwde caching, en het compileren van de output om de werking te verstellen en en een debug-modus om te zien welke data er ge-assigned is. Ook heeft Smarty wat standaard plugins voor formulier-onderdelen.
Gewijzigd op 22/11/2021 14:16:59 door - Ariën -
Rob Doemaarwat op 22/11/2021 12:26:07:
Hm, kun je misschien een voorbeeld geven van wat je precies verwacht / zou willen doen (in code)?
Dat zal ik bij deze nog een keer proberen. :)
Wanneer ik een website wil maken bestaande uit bijvoorbeeld 3 pagina's, dan krigen ze allemaal het zelfde voetdeel. In de HTML-code moet ik dan 3 keer hetzelde maken en als ik wat wil veranderen moet ik dat 3 keer doen. Dat is op zich nog geen ramp maar naarmate het steeds meer pagina's worden, wens je dat dat anders zou kunnen. Bij voorbeeld door op elke pagina iets te hebben in de geest van: "Ga naar bestand A, kijk daar wat hier moet komen en voer dat uit. Net zoals dat bij CSS gaat, wanner je de stijlen in een apart stijlenbestand hebt. Wanneer ik dan iets op alle pagina's wil veranderen, hoef ik slechts naar bestand A te gaan en daar een verandering aan te brengen.
Hopelijk ben ik nu duidelijk geweest.
Quote:
Dat lijkt mij wel. Ik neem aan dat "print" betekent, dat het daar uitgevoerd moet worden en dat "mijn titel" hetgeen is dat daar uitgevoerd moet worden. Voor mij is echter nog duister waar te vinden is wat er uitgevoerd moet worden. Immers, daar kan ik dan wijzigingen uitvoeren. Ik verwacht(te) eigenlijk, dat net als bij <a href ...></a>, te zien valt waar het benodigde gevonden kan worden. Of is dat in een apart bestand met de naam "mijn_functies.php"? Dat lijkt mij bij nader inzien wel. :) Maar hoe is dan in de "print"regel te zien dat die functie in "mijn_functies.php" te vinden valt?
Ook heb je duidelijk gemaakt dat dat deel boven <!DOCTYPE html> moet komen. :) Morgen ga ik op basis hiervan weer wat proberen. :)
Quote:
Toevoeging op 22/11/2021 12:30:55:waar
Ter info: "Geany" is op Linux distro's wat "Kladblok" / "Notepad" voor Windows gebruikers is.
Ter info: "Geany" is op Linux distro's wat "Kladblok" / "Notepad" voor Windows gebruikers is.
Die indruk had ik niet. "Kladblok/Notepad" zijn volgens mij nauwelijks tekstbewerkers te noemen, terwijl "Geany" omschreven wordt als een broncodebewerker en IDE en dat is toch wel een tandje extra leek mij.
N.b. Net een paar gvd's de ruimte ingeslingerd omdat er iets niet ging zoals ik wilde en ik wenste dat alles zo intuitief en gebruiksvriendelijk was als RISC.
Gewijzigd op 22/11/2021 18:54:14 door Gerard van Katwijk
Voor Smarty heb je {include}.
En in PHP heb je include.
Hiermee kan je bijvoorbeeld een header of footer eenvoudig toevoegen.
Ik zie dat je eerst PHP aan het ontdekken bent, en dus niet met Smarty bezig bent. In dat geval bedoelt Rob dat elke print() in je template-bestand een functie bevat. Print() doet niets anders dan het uitvoeren naar het scherm.
Code (php)
En uiteraard kan je zelf zo ver gaan om dingen uit databases of globals, zoals $_GET of $_POST te halen.
Gewijzigd op 22/11/2021 19:20:07 door - Ariën -
tutorial gelezen... mooie boel.
En dan wordt van ons verwacht dat wij de werking van include gaan herkauwen vanuit een eerste pagina. Het wordt tijd voor een biertje en wat muziek..
Net pas 1 week PHP geïnstalleerd en nog geen En dan wordt van ons verwacht dat wij de werking van include gaan herkauwen vanuit een eerste pagina. Het wordt tijd voor een biertje en wat muziek..
- Ariën - op 22/11/2021 19:19:06:
Klopt. Het lijkt mij eenvoudiger om eerst te kijken of PHP mij kan bieden wat ik wil, voordat ik me in dingen verdiep die misschien (nog) niet nodig zijn.
Quote:
In dat geval bedoelt Rob dat elke print() in je template-bestand een functie bevat. Print() doet niets anders dan het uitvoeren naar het scherm.
En uiteraard kan je zelf zo ver gaan om dingen uit databases of globals, zoals $_GET of $_POST te halen.
Code (php)
En uiteraard kan je zelf zo ver gaan om dingen uit databases of globals, zoals $_GET of $_POST te halen.
Ik begin een donkerbruin vermoeden te krijgen dat ik warm begin te worden. :) Morgen duik ik er verder in.
Zeker als het eerst gaat om de onderdelen als "header", "footer" en "menu" op een pagina.
Daarna ga je wel ontdekken hoe je het midden van de pagina (de tekst / afbeelding / inhoud) dynamisch in een (1) file wilt gaan zetten.
Lijkt me niet verstandig om direct een template parser te gaan inbouwen als de basics als include en zelfs echo of print nog niet zijn toegepast.
Ja: met templates kan alles mooier en eenvoudiger, maar niet op dag 1 direct.
Gewijzigd op 23/11/2021 03:08:27 door Gerard van Katwijk
Pagina: « vorige 1 2 3 4 volgende »