probleempje met formulier-script

Status
Niet open voor verdere reacties.

5blabla5

Gebruiker
Lid geworden
27 apr 2009
Berichten
485
Oke, mischien hebben jullie mijn vorige topic wel gelezen, maar dit is een soort van vervolg. Ik heb alles nu aan de praat gekregen, alleen is er één probleempje: Zodra je de pagina bezoekt, slaat hij een leeg iets op in het .html bestand:

De gebruiker [hier hoort wat te staan] checkte in op Wed-01-2010 om 8 uur (PM)
De gebruiker 5blabla5 checkte in op Wed-01-2010 om 8 uur (PM)

De eerste regel zou weg moeten zijn.

Verder loopt de klok achter in het log bestand :o

Dit is het script:

PHP:
<?php

    $day = date("l");
    $day2 = date("D"); 
    $month = date("F"); 
    $month2 = date("m"); 
    $daymonth = date("j"); 
    $year = date("Y"); 
    $date = date("jS"); 
    $hours = date("g"); 
    $minutes = date("i"); 
    $tod = date("A"); 
     
    if(substr($minutes, 0, 1) == 0) 
        $minutes = substr($minutes, 1, 2); 
?> 
<?php
$data = $_POST['data'];

if (!$handle = fopen("$day2-$month2-$year.html", "a"))
{
    echo "Kon het logbestand niet openen of aanmaken!";
}

if(!fwrite($handle, "De gebruiker <b>$data</b> checkte in op <b>$day2-$month2-$year</b> om <b>$hours uur</b> ($tod) <BR>"))
{
    echo "Kon niet naar het logbestand schrijven!";
}
else
{
    echo $data;
}
fclose($handle);
?> 

<html>

<form name="form1" method="post" action="form.php">
<p><b>Voer je naam in:</b></p><input type="text" name="data" />

  <input type="submit" value="Check in!">
</form>

</html>

Weet iemand wat het probleem is? En heeft iemand ook nog suggesties voor dit script, tis een van men eerste scripts :rolleyes:
 
Laatst bewerkt door een moderator:
Je controleert niet of het formulier ingevuld is; ook als je dus op de pagina komt zonder iets in te vullen wordt je code uitgevoerd.

Je moet het script alleen uitvoeren als aan de juiste condities voldaan is. Zet het hele "update logboek" gedeelte dus in een if() blok met de volgende conditie:

PHP:
$_SERVER['REQUEST_METHOD'] == 'POST';

REQUEST_METHOD bevat de manier waarop de pagina door de gebruiker opgevraagd is; de waarde 'POST' betekend dat hij een formulier heeft ingezonden naar je pagina.
 
Je controleert niet of het formulier ingevuld is; ook als je dus op de pagina komt zonder iets in te vullen wordt je code uitgevoerd.

Je moet het script alleen uitvoeren als aan de juiste condities voldaan is. Zet het hele "update logboek" gedeelte dus in een if() blok met de volgende conditie:

PHP:
$_SERVER['REQUEST_METHOD'] == 'POST';

REQUEST_METHOD bevat de manier waarop de pagina door de gebruiker opgevraagd is; de waarde 'POST' betekend dat hij een formulier heeft ingezonden naar je pagina.

Ik denk dat ik dat wel een beetje snap, maar ik ben niet zo'n held in php. Waar zou die code dan moeten zijn, en is die code in de volgende vorm?

Code:
if($_SERVER['REQUEST_METHOD'] == "post") {
echo "U hebt ergens op gepost";
}

Of moet ik bepaalde dingen uit het script vervangen door deze code?
 
Het is in die vorm zoals je dat zegt, maar waar nu je 'echo' staat, moet de hele afhandeling van je formulier komen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan