Problem: Skjema poster seg når siden lastes

En tråd i 'PHP, SQL og databaser' startet av Balex93, 9 Sep 2010.

  1. Balex93

    Balex93 Medlem

    Innlegg:
    12
    Jeg har nettopp begynt å skrive litt PHP-kode selv, og jeg har skrevet en side som lager en tekstfil når skjemaet postes, og en annen side viser innholdet i alle tekstfilene i forskjellige avsnitt.

    Men når jeg laster siden som poster disse, blir en blank fil opprettet (siden skjemaene er tomme).

    Fins det noen måte å forhindre dette?:confused:

    PHP:

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <h1>Skriv noko i feltet her:</h1> </br>
    <p><input type="text" name="tittel" />
    <p><textarea name="melding">Skriv noko!</textarea>
    <p><input type="submit" /></p>
    </form>
    </div>


    <?php 

    $tittel 
    $_POST['tittel'];
    $melding $_POST['melding'];
    $nummer time();

        do {
            
    $nummer++;
        }
        while (
    file_exists('post.no.'.$nummer.'.txt'));
        
    $file 'post.no.'.$nummer.'.txt';
        
    file_put_contents($file,"<h1>$tittel</h1><p>$melding</p>");


    ?>
     
  2. Pong

    Pong Jeg selger sʇɥƃıluʍop :)

    Innlegg:
    3.459
    Ja, sjekk om $_SERVER['REQUEST_METHOD'] == 'POST'
     
  3. Sjefskoder

    Sjefskoder Sjefskoder

    Innlegg:
    437
    Hey!

    eller du kan gi submit-knappen et navn også sjekke om den er aktivert..

    HTML:
    <input type="submit" name="knappensindetta" />
    også bruker du if(iseet()), for å sjekke om knappen er aktivert..

    PHP:
    <?
    /*if betyr dersom, isset betyr aktivert/satt*/
    /*dersom satt knappensindetta (eller på godt norsk, dersom knappen er aktivert)*/
    if(isset($_POST['knappensindetta'])){


    $tittel $_POST['tittel'];
    $melding $_POST['melding'];
    $nummer time();

        do {
            
    $nummer++;
        }
        while (
    file_exists('post.no.'.$nummer.'.txt'));
        
    $file 'post.no.'.$nummer.'.txt';
        
    file_put_contents($file,"<h1>$tittel</h1><p>$melding</p>"); 



    /*også en liten beskjed om at alt er ookidoki*/
    echo '<p>Takk for at du klikket knappen min!!</p>';
    }
    //om ikke knappen er satt viser du skjemaet 

    else {

    ?>


    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <h1>Skriv noko i feltet her:</h1> </br>
    <p><input type="text" name="tittel" />
    <p><textarea name="melding">Skriv noko!</textarea>
    <p><input type="submit" /></p>
    </form>
    </div> 

    <?}?>
    Da har du fått et lite innsikt i hvordan dette kan løses.. ;)


    En anna ting du kan tenke på og er validering av input.
    Som med andre ord sjekke om inputs passer til dine krav..

    se på funksjonenen empty og preg_match i funsksjonslisten til php.net ;)

    Og er det noe mer du lurer på etter å ha lest der, så er det bare å spørre her igjen ;)


    /S
     

Del denne siden