anoniem Geplaatst: 29 oktober 2004 Delen Geplaatst: 29 oktober 2004 Tot voor kort had ik een perfect werkend zéér eenvoudig gastenboek met behulp van php4.1.0. Ik had daar in de phpfile de variabelen [b:9af25d0f58]$naam[/b:9af25d0f58], [b:9af25d0f58]$woonplaats [/b:9af25d0f58]en [b:9af25d0f58]$reactie [/b:9af25d0f58] staan, die zonder probleem van het fomulier op een html-file met een <form> werden geïmporteerd: [b:9af25d0f58]<form method = "post" action = "voegreactietoe.php">.[/b:9af25d0f58] Sinds kort heeft de provider php4.2.0, en kan dit zoals bekend met globale variabelen niet meer. Deze variabelen moeten nu in de php-file daadwerkelijk worden geïmporteerd voordat ze aldaar kunnen worden gebruikt, en wel zoals eveneens bekend met: [b:9af25d0f58]$naam=$_GET["naam"); $woonplaats=$_GET["woonplaats"); $reactie=$_GET["reactie");[/b:9af25d0f58] Dit was me al een hele poos bekend, maar tot nu toe ben ik te lui geweest om dit even te veranderen. Ik dacht nu "fluitje van een cent, ik verander dit alsnog even". Helaas het doet helemaal niets meer, zelfs geen foutmelding. De procedure blijft na "Verzend" op een blanco scherm hangen (de php-file, waarvan de inhoud uiteraard voor de bezoeker onzichtbaar is). Uiteraard zie ik iets over het hoofd, maar wat? Moet voorafgaand aan $naam=$_GET["naam"); etc. nog iets plaats vinden. Het html-formulier stuurt toch de inhoud van de form al naar het php-bestand? Werken b.v. fread en fwrite nog zondermeer? Kortom, ik mis iets, iemand idee wat? Jan de Boer Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 ik zou om te beginnen eens kijken naar: <form method = "post". daar hoort dus een $_post['naam'] bij. try it :) t. Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 Je gebruikt een POST (<form method="post">). Dat betekent dat je ze ook uit de $_POST array moet halen, i.p.v. de $_GET. sim-pel :D Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 Bedankt voor de gelijkluidende antwoorden. Maar helaas is het resultaat nog hetzelfde. Hoewel het niet zo gebruikelijk is om complete scripts neer te zetten, waag ik het er toch op, het is niet zo lang. De html met <form> luidt[code:1:9205e8bac2]<html> <head><title>Gastenboek</title></head> <BODY BGCOLOR="#FFEEAA" BACKGROUND="../nnnnn.gif"> <center> <h1>Gastenboek Website Nnnnn</h1></center> <br> <form method="post" action="voegreactietoe.php"> <blockquote> <b>Naam:    <input type=text name="naam"><br> <b>Woonplaats: <input type=text name="woonplaats"><br> Commentaar:<br> <textarea name="reactie" rows="10" cols="60"></textarea><br> <input type=submit value=verstuur> <input type=reset value=annuleren> </form> <A HREF="../index.html"><IMG ALIGN=RIGHT SRC="../homeyellowbutton.gif" border=0></A> <A HREF="frame-reacties.html"><IMG ALIGN=LEFT SRC="reactiesyellowbutton.gif" border=0 alt="geplaatste reacties"></A> </body> </html> [/code:1:9205e8bac2]En het php-script: (Het enige wat er is veranderd, is dat er nu wel een foutreactie verschijnt: "Fatal error: Call to undefined function: () in /---------/gasten/voegreactietoe.php on line 3"). [code:1:9205e8bac2]<?PHP $uitvoerbestand = "reacties.html"; $naam=$_post("naam"); $woonplaats=$_post("woonplaats"); $reactie=$_post("reactie"); $basis = "basis.txt"; $reacties="reacties.txt"; if(strlen($naam)<1) {$naam="Anoniem";} if(strlen($reactie)<1) {header("location: foutmelding.html"); exit;} $datum =date("j-n-Y"); $tijd =date("H:i"); $reactie=stripslashes($reactie); $reactie= strip_tags($reactie, '<i>'); $reactie=nl2br($reactie); # #lees oude berichten $bestandsindex = fopen($reacties,"r"); $oud = fread($bestandsindex, filesize($reacties)); fclose($bestandsindex); # #Schrijf nieuwe + oude data weg in tekstbestand $bestandsindex = fopen($reacties,"w+"); fwrite($bestandsindex,"Reactie van $naam, $woonplaats $datum, $tijd uur:<br><br>"); fwrite($bestandsindex,"$reactie<br><br><hr><br>"); fwrite($bestandsindex,$oud); fclose($bestandsindex); # header("location: frame-reacties.html"); ?> [/code:1:9205e8bac2]De bovenste 3 regels php-code zijn dus toegevoegd, de rest is ongewijzigd, en daarmee functioneerde het tot die versiewijziging. Moet toch simpel zijn dacht ik. NB: Er zijn twee variabelen die erg op elkaar lijken, verwar deze bij het lezen niet: [b:9205e8bac2]$reactie[/b:9205e8bac2] en [b:9205e8bac2]$reacties[/b:9205e8bac2]. Jan de Boer Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 los van je code: $_post("naam") is niet hetzelfde als $_post['naam'] t. Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 Ronde haken vervangen door rechte (hoe simpel kun je je vergissen). Foutcode nu weer weg, maar de variabelen worden nog steeds niet ingelezen, en worden door de de php-routine dus gezien als leeg en in het verdere verloop ook alszodanig gemeld met de ingeprogrammeerde melding dat reactieveld niet is ingevuld. Delete ik die "if(strlen($reactie)<1)" tijdelijk, dan wordt een lege reactie geplaatst met als afzender, zoals eveneens geprogrammeerd, Anoniem. Geprobeerd met zowel aanhalingstekens als met apostrofjes. Zelfde resultaat. Quote Link naar reactie
anoniem Geplaatst: 30 oktober 2004 Auteur Delen Geplaatst: 30 oktober 2004 $_POST['naam'] is ook al niet hetzelfde als $_post['naam']. Als je aan het programmeren bent kun je jezelf beter niet al te veel van dat soort slordigheden toestaan. Quote Link naar reactie
anoniem Geplaatst: 30 oktober 2004 Auteur Delen Geplaatst: 30 oktober 2004 Dit was het, hoofdletters dus voor POST. Door de iets verschillende antwoorden die ik kreeg van Teatcher ontstond bij mij de indruk dat dit niet hoofdlettergevoelig was. Hoe dan ook, het werkt weer. Teacher, Annie en maIRnaairruJ, reuze bedankt. Jan de Boer Quote Link naar reactie
anoniem Geplaatst: 30 oktober 2004 Auteur Delen Geplaatst: 30 oktober 2004 Je moet ook niet al te veel naar teacher luisteren ;) :D Quote Link naar reactie
anoniem Geplaatst: 30 oktober 2004 Auteur Delen Geplaatst: 30 oktober 2004 [quote:8aee280ca4="Annie"]Je moet ook niet al te veel naar teacher luisteren ;) :D[/quote:8aee280ca4] geeft niks.. noem het beroepsdeformatie, maar ik ben gewend genegeerd te worden :P Quote Link naar reactie
anoniem Geplaatst: 30 oktober 2004 Auteur Delen Geplaatst: 30 oktober 2004 [quote:dcb9b36348="teacher"][quote:dcb9b36348="Annie"]Je moet ook niet al te veel naar teacher luisteren ;) :D[/quote:dcb9b36348] geeft niks.. noem het beroepsdeformatie, maar ik ben gewend genegeerd te worden :P[/quote:dcb9b36348] Dat is toch normaal voor een leraar zijnde? ;) Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen