Problem: Skjema poster seg når siden lastes

Balex93

Medlem
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>");


?>
 

Sjefskoder

Sjefskoder
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
 
Topp