Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  2 527
Hei,

har et nytt problem med mitt lille script. Jeg må få ferdig dette til midnatt! :-(

Problemet nå, er at når jeg trykker "post" så kommer det at alle felt ikke er fylt inn. Jeg prøvde å fjerne din if'en som sier man må skrive inn, og da havna det i databvasen, men uten noe tekst...

Finn feil, plis!

Kode

<?php
if((inn()) && (rettigheter("admin"))) {

if($_POST['do']) {

	$fra = trim($_POST['fra']);
	$hilsen = trim($_POST['hilsen']);
	
	if(empty($fra) || empty($hilsen)) {
	
		echo '<b>Det skjedde en feil</b><br /><br />Du fylte ikke inn alle obligatoriske feltene.<br />Vennligst gå tilbake og prøv på nytt.';
	
	} else {
		
		$tid = time();
		$av = bruker(id);
		
		mysql_query("INSERT INTO `".$prefix."bursdag` (fra, timestamp, av, hilsen) VALUES('".$fra."', '".$tid."', '".$av."', '".$hilsen."')");	
		echo '<b>Velykket</b><br /><br /> Din hilsen er nå lagret!';
	
	
}
} else {

?>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td bgcolor="#c99836" style="padding:3px;"><strong>SEND ALEJANDRO EN BURSDAGSHILSEN</strong></td>
  </tr>
</table>
<br />
Vel, <b>I DAG</b> fyller Alejandro Fuentes 19 år - og det må vi selvfølgelig gjøre noe ut av! :D <br>
Du har nå mulighet til å sende Alejandro en personlig bursdagshilsen. Dette gjelder kun til midnatt i kveld (5. Nov). Etter det har du ikke lengre mulighet til å sende noen hilsen.<br><br>
<b>Ja, Alejandro får sett alle hilsningene som kommer inn! :-)</b><br>
Vi i administrasjonen skal sørge for at alle hilsner som kommer inn blir lest av Alejandro. <br><br>
Usikker på hva du skal skrive? Hva med et dikt, en sang, eller bare noen koslige ord? <br><br>
<b>SEND DIN HILSEN TIL ALEJANDRO:</b><br><br>
<br>
<form method="post" action="?cat=system&side=bursdag" autocomplete="off">
Hilsen fra:<br>
<input name="fra" type="text" value="<? echo ''.bruker(brukernavn).''; ?>" disabled><br>
Din bursdagshilsen til Alejandro:<br>
<textarea name="hilsen" cols="50" rows="7"></textarea><br>
<input type="Submit" value="Gratulerer med dagen, Alejandro!">
<input type="hidden" name="do" value="1">
</form><br><br>

<?php
}
}
?>
"fra" kommer ikke med p.g.a "disabled" opsjonen.

Annet:
Du glemmer å ta mysql_real_escape_string på variablene som skal inn i databasen.
Med mindre du har definert "id" og "brukernavn" er det og galt å bruke disse som string-verdier uten sitattegn.
Alle kan fjerne "disabled" opsjonen og gi seg ut for å være en annen.

Småpirk:
Du sjekker ikke om spørringen var vellykket.
De ekstra enkle sitattegnene rundt "bruker(brukernavn)" er unødvendige.

Bortsett fra det ser jeg ingen feil, og PHP finner og både "fra" og "hilsen" på mitt eget system.
bruk readonly="readonly", istedenfor disabled hvis du absolutt skal ha det slik.