Valse start met PHP
Wie is bereid om mij een duwtje in de rug te geven? Het wil maar niet lukken om php-scripts uitgevoerd te krijgen. Ik zit met een relatief simpel probleem om een drietal variabelen met een GET over te brengen naar een volgende webpagina en daar tekst te laten zien, afhankelijk van de ingevoerde waarden. Dat lukte me niet in HTML met JavaScript (de volgende pagina herkende de variabelen niet, terwijl ze toch duidelijk vermeld stonden in de URL) en PHP wil maar niet draaien. Mijn probleem is dus niet de taal -- ik weet inmiddels welke opdrachten ik moet gebruiken -- maar de uitvoering daarvan. Ik heb WampServer geïnstalleerd maar krijg daarin niks aan de praat. Mogelijk zie ik enkele doodsimpele basics over het hoofd. Wat is er nodig om een PHP-pagina (via WampServer) aan te roepen? Moeten de variabelen ook worden aangeleverd door een PHP-pagina? Hoe kan ik PHP het beste combineren met de JS- en HTML-code die ik al heb?
Via je browser moet je de scripts uitvoeren op http://127.0.0.1, waarbij je de bestanden in de public_html directory zet, of wat Wamp maar ook gebruikt.
Richard Heufkens op 18/08/2015 17:27:09:
... om een drietal variabelen met een GET over te brengen naar een volgende webpagina ...
De GET variabelen bestaan slechts op de eerste pagina.
Wil je ze doorsturen naar een andere pagina dan zal je ze of opnieuw in de url moeten zetten of in een session bewaren.
Verder hebben de meeste nieuwkomers het volgende niet duidelijk door:
PHP draait op de webserver. Als een gebruiker een PHP pagina opvraagt met behulp van zijn webbrowser dan zal de webserver aan de hand van dit verzoek eerst een PHP script uitvoeren. Dit script kan vervolgens OUTPUT genereren (veelal HTML) welke terug naar de client (gebruiker) gestuurd wordt wanneer het script zijn taak heeft verricht. De meeste PHP scripts zijn dan ook binnen een seconde al weer beëindigd. De browser of de gebruiker merkt hier dan ook eigenlijk niets van.
Misschien verwacht ik de verkeerde dingen van WampServer -- ik heb keurig een aparte map aangemaakt, met daarin mijn php-bestanden, maar die worden niet uitgevoerd wanneer ze door een html-pagina worden aangeroepen. Die map is ook zichtbaar in WampServer, maar als ik die open, krijg ik een Page Not Found. En ik verwachtte eigenlijk ook een php-editor maar kan daar niets van vinden.
Mijn logica: de html-pagina levert via een formulier met methode GET drie variabelen (getallen), die ik via ACTION doorstuur naar een php-bestand, dat vervolgens die drie variabelen bij elkaar optelt en afhankelijk van de uitkomst de gebruiker een bepaalde tekst laat zien. Lijkt mij in twee stappen (lees: met twee bestanden) uit te voeren: eerst het formulier in html, dat de variabelen doorstuurt naar een bestand in php, dat vervolgens de uitkomst bepaalt en de bijbehorende tekst toont in de browser.
Hoe krijg ik dan het php-script uitgevoerd, en waar moet ik daarbij op letten?
index.php:
En dan maar zien dat je de tekst Hallo Wereld te zien krijgt in de browser...
Stomme vraag is het jouw wel duidelijk in welke map Wamp de website zoekt?
- Aar - op 18/08/2015 17:42:08:
Via je browser moet je de scripts uitvoeren op http://127.0.0.1, waarbij je de bestanden in de public_html directory zet, of wat Wamp maar ook gebruikt.
Staan de bestanden ook in die directory?
En wat heb je bij action en method in het formulier staan?
Gewijzigd op 18/08/2015 19:48:09 door - SanThe -
Richard Heufkens op 18/08/2015 19:39:55:
Wat geweldig dat jullie zo snel reageren!
Misschien verwacht ik de verkeerde dingen van WampServer -- ik heb keurig een aparte map aangemaakt, met daarin mijn php-bestanden, maar die worden niet uitgevoerd wanneer ze door een html-pagina worden aangeroepen.
Misschien verwacht ik de verkeerde dingen van WampServer -- ik heb keurig een aparte map aangemaakt, met daarin mijn php-bestanden, maar die worden niet uitgevoerd wanneer ze door een html-pagina worden aangeroepen.
Waar staat die map, en hoe heet die?
Quote:
Die map is ook zichtbaar in WampServer, maar als ik die open, krijg ik een Page Not Found.
Hoe open je die?
Quote:
En ik verwachtte eigenlijk ook een php-editor maar kan daar niets van vinden.
Een webserver serveert de bestanden en scripts. Deze moet je zelf nog maken, net als in een restaurant gebeurt. In dit geval zijn het text-bestanden met de juiste syntax qua inhoud, en de .php extentie voor .php bestanden die je via de browsers uitvoert.
Op internet zijn voldoende editors te vinden, van Notepad++ tot NetBeans.
Quote:
Mijn logica: de html-pagina levert via een formulier met methode GET drie variabelen (getallen), die ik via ACTION doorstuur naar een php-bestand, dat vervolgens die drie variabelen bij elkaar optelt en afhankelijk van de uitkomst de gebruiker een bepaalde tekst laat zien. Lijkt mij in twee stappen (lees: met twee bestanden) uit te voeren: eerst het formulier in html, dat de variabelen doorstuurt naar een bestand in php, dat vervolgens de uitkomst bepaalt en de bijbehorende tekst toont in de browser.
Hoe krijg ik dan het php-script uitgevoerd, en waar moet ik daarbij op letten?
Hoe krijg ik dan het php-script uitgevoerd, en waar moet ik daarbij op letten?
Via je browser, net als hoe je normaal een internetsite opent.
Als je WAMPP-server draait moet je met http://127.0.0.1 of http://localhost (een alias) de server lokaal kunnen benaderen.
Dan heb je bijvoorbeeld http://127.0.0.1/mijnscripts/test.php om je script te bekijken. Zolang je deze maar op de juiste plek hebt staan binnen de directory-structuur van WAMPP.
Laat anders eens zien wat je nu hebt, en waar je alles hebt staan, en hoe je het aanroept.
http://localhost/mijn_eerste_script.php.
Verder is mijn ervaring met WAMP dat de afgelopen versies niet echt out-of-the-box willen werken. De standaard configuratie is niet je-dat.
Om een dynamische webpagina te serveren via een server moet deze server wel actief zijn :). Normaal / idealiter is het zo dat als je WAMP opstart dat je uiteindelijk een groen icoon in je taakbalk verschijnt. Is deze oranje of rood dan zijn er kuren / is deze niet gestart. Er is dan iets niet in orde qua configuratie.
Als het icoon niet groen is zou je het volgende kunnen proberen / nagaan:
Een veel voorkomende reden dat je webserver niet wil opstarten is dat de poort waarop geluisterd wordt naar HTTP-requests (dit is de plek waar je browsers een webpagina proberen op te vragen - standaard is dit poort 80) al in gebruik is door een ander proces. Mogelijk door Skype (wordt volgens mij vaak genoemd) of door een webserver-service van Windows zelf. Een snelle check of er iets met deze poort aan de hand is is de volgende methode:
- start WAMP op
- klik op het icoon in je taakbalk
- navigeer naar Apache > Service > Klik op "Test Port 80"
Er wordt nu een DOS-box geopend met een bericht waarin wordt weergegeven welk proces mogelijk poort 80 in gebruik heeft
Als dit niet zoiets is als "Apache x/y/z (Win32) PHP/a.b.cd" dan is er een ander proces wat de boel bezet houdt. Dit proces zul je dan uit moeten zetten of je laat je webserver op een andere poort draaien (maar dat is niet erg handig).
Ik denk/vrees dat je er niet omheen komt om je toch een beetje in de (webserver)materie te verdiepen om zo (hopelijk, uiteindelijk) WAMP aan de praat te krijgen.
Het is volgens mij ook zo dat je altijd een of meer Visual Studio executable(s) (van Microsoft) vantevoren moet installeren om WAMP te laten werken. Hier maakt de website waar je WAMP kunt downloaden je (weliswaar niet op een heel duidelijke manier) op attent.
Mocht je bij de installatie een foutmelding hebben gekregen aan het einde van het installatieproces (als je dit nog bijstaat) is het beter om WAMP eerst te de-installeren, dan eerst de Visual Studio executable(s) te installeren -zie de notities op de website van WAMP- en dan pas WAMP zelf te installeren.
Toen ik WAMP installeerde waren er best wel een hoop zaken niet in orde naar mijn mening, maar daar hoef je als beginnende PHP-er niet direct last van te hebben, het is mogelijk meer latere finetuning.
Het kost even wat werk, of het moet zo zijn dan WAMP zijn $H!7 ondertussen heeft gerepareerd zodat alles in 1x out-of-the-box werkt :).
En als je hier allemaal geen zin in hebt is er ook nog het ubereenvoudige USB webserver waar op dit forum ook al eerder een topic over was.
EDIT: NB, als je googled naar WAMP gerelateerde vraagstukken kom je vaak uit op het forum van WAMP zelf, hier worden veel vragen in detail beantwoord die je in 9 van de 10 gevallen in de goede richting sturen, lees deze reacties aandachtig en probeer vooral veel uit :).
De truuk is ook dat je de bestanden niet "rechtstreeks" opvraagt via je browser (bijvoorbeeld dat je in je adresbalk c:\wamp\www\htdocs\mijn_eerste_script.php typt) maar dat je ervoor zorgt dat je deze bestanden laat serveren door je webserver (in dit geval Apache - de A in WAMP) waaronder een PHP module/extensie draait (de P in WAMP). Bijvoorbeeld http://127.0.0.1/mijn_eerste_script.php of Verder is mijn ervaring met WAMP dat de afgelopen versies niet echt out-of-the-box willen werken. De standaard configuratie is niet je-dat.
Om een dynamische webpagina te serveren via een server moet deze server wel actief zijn :). Normaal / idealiter is het zo dat als je WAMP opstart dat je uiteindelijk een groen icoon in je taakbalk verschijnt. Is deze oranje of rood dan zijn er kuren / is deze niet gestart. Er is dan iets niet in orde qua configuratie.
Als het icoon niet groen is zou je het volgende kunnen proberen / nagaan:
Een veel voorkomende reden dat je webserver niet wil opstarten is dat de poort waarop geluisterd wordt naar HTTP-requests (dit is de plek waar je browsers een webpagina proberen op te vragen - standaard is dit poort 80) al in gebruik is door een ander proces. Mogelijk door Skype (wordt volgens mij vaak genoemd) of door een webserver-service van Windows zelf. Een snelle check of er iets met deze poort aan de hand is is de volgende methode:
- start WAMP op
- klik op het icoon in je taakbalk
- navigeer naar Apache > Service > Klik op "Test Port 80"
Er wordt nu een DOS-box geopend met een bericht waarin wordt weergegeven welk proces mogelijk poort 80 in gebruik heeft
Als dit niet zoiets is als "Apache x/y/z (Win32) PHP/a.b.cd" dan is er een ander proces wat de boel bezet houdt. Dit proces zul je dan uit moeten zetten of je laat je webserver op een andere poort draaien (maar dat is niet erg handig).
Ik denk/vrees dat je er niet omheen komt om je toch een beetje in de (webserver)materie te verdiepen om zo (hopelijk, uiteindelijk) WAMP aan de praat te krijgen.
Het is volgens mij ook zo dat je altijd een of meer Visual Studio executable(s) (van Microsoft) vantevoren moet installeren om WAMP te laten werken. Hier maakt de website waar je WAMP kunt downloaden je (weliswaar niet op een heel duidelijke manier) op attent.
Mocht je bij de installatie een foutmelding hebben gekregen aan het einde van het installatieproces (als je dit nog bijstaat) is het beter om WAMP eerst te de-installeren, dan eerst de Visual Studio executable(s) te installeren -zie de notities op de website van WAMP- en dan pas WAMP zelf te installeren.
Toen ik WAMP installeerde waren er best wel een hoop zaken niet in orde naar mijn mening, maar daar hoef je als beginnende PHP-er niet direct last van te hebben, het is mogelijk meer latere finetuning.
Het kost even wat werk, of het moet zo zijn dan WAMP zijn $H!7 ondertussen heeft gerepareerd zodat alles in 1x out-of-the-box werkt :).
En als je hier allemaal geen zin in hebt is er ook nog het ubereenvoudige USB webserver waar op dit forum ook al eerder een topic over was.
EDIT: NB, als je googled naar WAMP gerelateerde vraagstukken kom je vaak uit op het forum van WAMP zelf, hier worden veel vragen in detail beantwoord die je in 9 van de 10 gevallen in de goede richting sturen, lees deze reacties aandachtig en probeer vooral veel uit :).
Gewijzigd op 18/08/2015 20:30:48 door Thomas van den Heuvel
Het lijkt er op dat PHP helemaal niet draait.
Als ik het "Hello World"-voorbeeld laat aanroepen door een html-bestand (<FORM METHOD="get" ACTION="test.php">) dan krijg ik de inhoud van het php-bestand letterlijk in de browser, inclusief code. De bestanden staan in c:\wamp\www\phpboek. Het icoontje van Wamp is groen, daar ligt het niet aan. Maar ik heb ook de indruk dat PHP niet draait -- ik wist ook helemaal niet dat ik PHP moet opstarten... Hoe zet ik PHP aan, en wat moet ik met MySQL?
MySQL is een database (om data gestructureerd in op te slaan, denk aan leden, nieuws, artikelen etc.). Niet van belang voor de beginner.
Gewijzigd op 18/08/2015 21:03:09 door - Ariën -
Zoals ik al eerder zei moet je niet het bestand aanspreken in je webbrowser, maar je (Apache) webserver die vervolgens dit bestand "verwerkt" en serveert als HTML-document.
Zet eens in c:\wamp\www het bestand hello.php met de volgende inhoud:
En surf vervolgens naar http://localhost/hello.php.
Met http://localhost/ spreek je je webserver aan die op je eigen computer (=localhost) draait.
Bedankt voor deze openbaring!
Lol +1 voor Thomas
En ja hoor, alles werkt. <doet vreugdedansje> Ik WIST wel dat het iets doodsimpels moest zijn. Okee, drijf gerust de spot met me, ik heb het verdiend en ik kan het hebben ;-) Veel te blij met het resultaat. Nogmaals bedankt!
We zijn allemaal van nul begonnen en de meeste hebben problemen gehad. Wie dat beseft zal niet lachen :)