Is het mogelijk een om 3 afbeeldingen (afhankelijk van de variabele die wordt ingevoerd) door een script op een website te publiceren?
Bijvoorbeeld 3 auto's bij elkaar als de waarde 1 is, 2 auto's bij elkaar en 1 auto iets (zeg 3 cm) rechts van de 2 auto's als de waarde 2 is en de drie auto's los van elkaar, met een ruimte van 3cm er tussen als de waarde 3 is.
Is dit te realiseren met een script?
Welk script leent zich daar het best voor?
(Wil best literatuur hierover raadplegen en leren, maar wil wel weten wat ik dan het best kan kiezen :-) )
Die waarde wil ik op een afgeschermde sub pagina in geven.
Heb je idee hoe ik dat kan doen?
Jouw script komt op de home-page. (index.html)
Op een andere afgeschermde pagina (noem deze voor het gemak invoer.html) moet ik deze variabele in kunnen geven.
Allereerst zul je de homepage moeten wijzigen naar een php bestand. Het script is een php bestand en volgens mij ondersteunt een .html bestand normaalgesproken geen php scripts. Als je het dus opslaat als index.php zal het wel werken.
Als je de waarde ergens in wilt kunnen geven, moet je daarvoor een formulier maken in HTML.
Maarrrr... daarna moet die waarde ergens opgeslagen worden. De meest gangbare manier is een MySQL database. Maar, niet lullig bedoeld, ik heb het idee dat je daar niet echt ervaring mee hebt. Klopt dat?
Het is natuurlijk erg interessant om wat te leren over databases, maar als het nu (en de komende tijd) alleen over 1 waarde gaat is dat wat zonde van je tijd.
Ook misschien wat overbodig om een hele database in te richten voor 1 getal, namelijk die waarde.
Het is daarom misschien 'makkelijker' om een textbestandje op je server/hosting te hebben staan waarin de waarde wordt geschreven.
Je hebt dus:
- index.php met het script om de plaatjes weer te geven
- invoer.php met:
--- het HTML formulier
--- een script om het formulier te verwerken en de waarde op te slaan
Om het niet helemaal voor te zeggen hoe het te doen:
- zoek eens op Google hoe je in php een formulier verwerkt
- kijk eens hoe je een waarde in een text bestand schrijft (http://www.w3schools.com/php/php_file_create.asp)
Alles werkt...althans tot zover....
Nu is het zo dat wanneer ik via het bestand ren.htm de waarde en tijd1 en tijd2 invul, deze netjes worden overgenomen door renners1v.php
Maar....als een derde het bestand renners1v.php opent, ziet deze niet datgene wat ik heb ingevoerd.
Is het mogelijk dat de waarde die ik, als webmaster ingeef, statisch blijft staan voor de andere gebruikers, tot het moment dat ik de waarde en tijd1 en tijd2 heb veranderd?
Voor de volledigheid zal ik hieronder de inhoud van beide bestanden weergeven.
Ik kan al raden dat "30 seconden" x 3 (regel 26 niet gaat werken) gaat niet werken.
De $tijd variable moet je niet als een string defineren (zonder quotes), kortom:
Regel 3:
$tijd = 30;
Regel 26:
echo $tijd * 3 . "sec";
Zoals je hierboven ziet, kan regel 26 ook nog ingekort worden.
Als value="" leeg is, mag je hem ook helemaal weglaten. Scheelt je weer typwerk.
Maar....als een derde het bestand renners1v.php opent, ziet deze niet datgene wat ik heb ingevoerd.
Dat klopt! Op het moment dat jij het formulier verstuurt, worden de gegevens verstuurd naar pagina rennersv1.php. Dat komt door de 'ACTION="rennersv1.php".
Als iemand later op rennersv1.php komt, komt hij/zij daar zonder dat er op dat moment iets is verstuurd en is $_POST['waarde'] helemaal leeg.
Daarom zul je de waarde ergens op moeten slaan zoals eerder gezegd in een database (of anders in een textbestand).
Even uit de losse pols om je op weg te helpen, niet getest dus hopelijk werkt het:
Zet eens helemaal boven in rennersv1.php:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' AND isset($_POST['waarde']) AND isset($_POST['tijd1']) AND isset($_POST['tijd2'])){
$bestand = fopen('textbestand.txt', 'w'); // bestand is ook anders te noemen uiteraard
// $_POST['waarde'] in $bestand zetten
fwrite($bestand, $_POST['waarde'];
// $_POST['tijd1'] in $bestand zetten
fwrite($bestand, $_POST['tijd1'];
// $_POST['tijd2'] in $bestand zetten
fwrite($bestand, $_POST['tijd2'];
// bestand sluiten (zie het als opslaan ofzo)
fclose($bestand);
}
?>
Vervolgens moet je elke keer dat rennersv1.php wordt geopenend, door wie dan ook, dat bestandje weer aanroepen om de gegevens op te halen en in $waarde, $tijd1 en $tijd2 te zetten. Snappie?
Dit vervangt dan jouw regel 2, 4 en 5;
<?php
// bestand openen
$bestand = fopen('textbestand.txt', 'r'); // of hoe je je bestand dan ook hebt genoemd
// regel voor regel verwerken
$i = 1;
while(!feof($bestand)){
if($i == 1){
$waarde = fgets($bestand);
}
elseif($i == 2){
$tijd1 = fgets($bestand);
}
elseif($i == 2){
$tijd2 = fgets($bestand);
}
$i++;
}
// bestand sluiten (zie het als opslaan ofzo)
fclose($bestand);
?>
[size=xsmall]Toevoeging op 25/05/2016 09:31:42:[/size]
Probeer maar even, misschien niet helemaal foutloos, maar zoiets zou kunnen werken zonder database.