Hoe maak je automatisch een nieuw pagina aan
Mijn school vroeg mij voor een website waar ze hun foto's op kunnen plaatsen. Foto's van camp/citytrips etc. Ik zei dat ik dat nog nooit eerder gedaan had, maar ik zou graag om het te proberen. Dus ik heb googled en googled, dan bijna twee week later heb ik dit: www.thorbeckefotos.tk
Ik heb nog één probleem:
Er is een login pagina die kan worden benaderd door de leraren, er is nu een upload knop en een naam veld. Het idee is dat iedere keer wanneer ze nieuwe foto's hebben zij kunnen ze uploaden en een naam kiezen. En dat hij dan automatisch een nieuwe pagina aanmaakt op basis van een tamplate met de ingevoerde naam etc? Ik las iets over get en post, maar ik heb geen idee hoe ik die kon gebruiken. Ook las ik iets over MySQL, maar ik heb absoluut geen idee hoe ik dat kan gebruiken.
Dus mijn vraag: Hoe maak ik automatisch een nieuwe pagina, op basis van de input van een andere pagina.
Dit is de website: http://thorbeckefotos.tk/ In de rechterbovenhoek hoek is een kleine login-knop, als u op de text drukt, ga je naar de login pagina (gebruikersnaam: user wachtwoord: password) als u verder gaat ziet u de pagina die kan worden benaderd door de leraren. Daar is op dit moment dus een naam veld en een wekend upload systeem.
Hier is een download link naar de bestanden die ik nu heb: http://www.mediafire.com/file/wi6ybx5yaoz5zee/www.rar
(onthoud, dit is mijn eerste website, ik weet nog niet hoe alles werkt)
pagina.php?page=vakantie_rome
Aan de hand van 'vakantie_rome' haalt hij de juiste data op, zoals de foto's en de informatie.
Hou zou ik dat kunnen toepassen?
maar is het niet handiger/sneller/gemakkelijker/beter om een bestaand iets te kiezen?
Bij voorkeur aansluitend bij het systeem van school (Sharepoint van Microsoft of Google Drive van Google of een eigen netwerk?
Dat leerkrachten (die echt geen zin hebben in dit soort dingen en wel wat 'beters te doen hebben') het in zo min mogelijk moeite kunnen doen.
Al is het maar dat ze de foto posten in een Whatsapp-groep of alleen maar in een (online) map hoeven op te slaan.
Met $_GET['page'] kan je de waarde van page uit de URL ophalen. Als je dit in de query verwerkt (lees je ook goed in over SQL-injection, voordat je gehacked wordt!), dan kan je de data ophalen.
Dus dan heb je een query zoals dit (pseudo-code):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// bereid de query voor
$sql = "SELECT naam, titel, inhoud FROM paginas WHERE naam ='".mysqli_real_escape_string($conn,$_GET['page'])."'";
// voer de query uit
$result = mysqli_query($conn, $sql);
// kijk of de query uitgevoerd is
if($result === false) {
// de query is mislukt
echo "Query is niet gelukt: ".mysqli_error($conn);
} else {
// query is uitgevoerd, maak de data bruikbaar (in een array).
$data = mysqli_fetch_assoc($result);
echo "Inhoud is: ".$data['titel'];
}
?>
// bereid de query voor
$sql = "SELECT naam, titel, inhoud FROM paginas WHERE naam ='".mysqli_real_escape_string($conn,$_GET['page'])."'";
// voer de query uit
$result = mysqli_query($conn, $sql);
// kijk of de query uitgevoerd is
if($result === false) {
// de query is mislukt
echo "Query is niet gelukt: ".mysqli_error($conn);
} else {
// query is uitgevoerd, maak de data bruikbaar (in een array).
$data = mysqli_fetch_assoc($result);
echo "Inhoud is: ".$data['titel'];
}
?>
Dit is verder de basiskennis, dus een tutorial om het allemaal goed op een rij te krijgen, kan ik zeker aanraden.
Gewijzigd op 20/09/2017 21:10:21 door - Ariën -
Het punt is, ik doe nu een opleiding in de techniek richting. Nadat ik mijn diploma gehaald heb wil ik doorgaan met ict. Ik weet niet of dat programmeren is of ict-beheer is. Als dit allemaal werkend is kan ik het ook goed gebruiken in mijn portfolio bijvoorbeeld. Natuurlijk kan mijn school iets als Google drive gebruiken, maar dat willen ze niet (ik weet niet waarom). En aangezien dit mijn laatste jaar is heb ik redelijk wat tijd over om aan dingen te werken zoals dit.
https://www.learn-php.org/ bijvoorbeeld. En CodeAcademy (ideaal voor HTML,CSS en JavaScript)
Is het misschien wat om eens te kijken naar Gewijzigd op 20/09/2017 21:18:03 door - Ariën -
Even een idee, zou het kunnen dat ik via de upload pagina een variabel in de template pagina kunnen maken? Als ik de variabel dan op een plek zet van een stukje tekst, zou dan de tekst veranderen naar wat ik eerder heb ingevoerd?
Eigenlijk heb je maar één template nodig, en die vul je met de juiste variabelen.
Dat snap ik, maar het zou kunnen werken? Als dat zo is zo dat me een hoop schelen
Persoonlijk zou ik databases aanraden.
Als je nu toch tijd zat hebt is dit een mooi moment om je eens in de wondere wereld van SQL te verdiepen. De rest is ook prima gelukt zag ik, dus dit is gewoon weer een trapje hoger.
Ik ben er zojuist achtergekomen dat een docent nog zo'n 300/400gb aan foto's heeft (ik verkleinen de foto's van 6000*4000 naar 600*400 zodat ze beter op de site passen). Het lijkt me inderdaad wel handig om met een database te gaan werken. Is dat veel werk om alles daar in te zetten?
Verder kan ik zeker aanraden om de foto's vooraf te resizen.
600*400 is overigens wel wat klein tegenwoordig. Ik zou minimaal voor een breedtte van 2048 gaan als je wilt dat mensen er van kunnen genieten.
Zelf ben ik overigens ook bezig met een 'fotogalerij-systeem', en er zit een behoorlijke database-structuur achter als je alles goed genormaliseerd wilt opslaan. Als je interesse hebt kan ik morgen eens kijken of ik een voorbeeld van mijn database-structuur kan tonen.
Gewijzigd op 20/09/2017 23:08:11 door - Ariën -
Hoe zou ik dat dan kunnen doen? Als ik een breedte van 2048 aan houw is het te groot voor een pagina, dan moeten ze allemaal onder elkaar staan. Via css zou ik toch ook een resolutie kunnen kiezen?
Wat zou dan het handigst zijn. Gewoon helemaal op nieuw beginnen (met de foto's dan, niet de lay-out) en dan eerst een database in elkaar zetten en dan al die foto's er op een manier in verwerken?
Ik zou eerst maar eens verdiepen in de werking van een database, en iets van fotoalbums maken, waarbij je foto's met de bestandsnamen koppelt aan de fotoalbums.
- Juist gebruik van HTML em CSS
- first practices programmeren met PHP
- een formulier afhandelen in PHP
- (My)SQL
- een login systeem maken in PHP
- Javascript
- asynchronous multiple file upload
Trek al je vrije tijd maar uit dit jaar als je dit allemaal zelf en alleen wilt maken (zonder te overdrijven)
Gewijzigd op 21/09/2017 08:40:05 door Frank Nietbelangrijk
En na volgende jaar kan ik het gwn doorschuiven naar een andere leerling die er verstand van heeft.
- Je houdt van programmeren en wilt de tijd nemen: Ga je gang!
- Je wilt snel iets opzetten: Gebruik dan wat kant-en-klaars zoals Wordpress.
Gewijzigd op 21/09/2017 10:05:50 door - Ariën -