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.
  7 1068
Sikkerhetsklarert
Har en form.php hvor vi skal fylle ut info i en del felter, submit knappen sender dette til en reg.php som skriver innholdet til en mySql base.

jeg vil selvsagt ha en sjekk som sjekker at alle felter er fyllt ut
Jeg bruker denne if setningen for å sjekke dette:

Kode

if ( isset ( $_POST['navn'] ) && isset ( $_POST['ip'] ) && isset ( $_POST['merke'] ) && isset ( $_POST['modell']) && isset ($_POST['lok'])) { 

bla bla bla

} else
echo "Du må fylle ut alle felt";
Poenget er at den utfører "bla bla bla" uansett om jeg fyller ut alle felt eller ikke.
Sist endret av Pjukern; 14. september 2007 kl. 15:35.
Det er nok av den grunn at variablene er satt. Du sjekker bare om dem er satt, ikke tomme. Husker jeg riktig kan du bruke funksjonen empty($var) for å sjekke om en variabel er tom.
Sist endret av Glykose; 14. september 2007 kl. 15:43.
Web-browseren sender variabelen selv om den er tom.. så $_POST['variabel'] blir satt til "".

Kode

if ( isset ( $_POST['navn'] ) && !empty($_POST['navn'])
&& isset ( $_POST['ip'] )  && !empty($_POST['ip'])
&& isset ( $_POST['merke'] )  && !empty($_POST['merke'])
&& isset ( $_POST['modell'])  && !empty($_POST['modell'])
&& isset ($_POST['lok']) && !empty($_POST['lok'])) {

bla bla bla 

} else 
echo "Du må fylle ut alle felt";
Noe sånt burde fungere.. men egentlig burde du lage en funksjon som generaliserer dette:

Kode

function sjekk($names) {
 for($names as $name) {
 if (!isset($_POST[$name]) || empty($_POST[$name))
  return false;
}
return true;
}

if (sjekk(array('navn', 'ip', 'osv')) {
blabla
}
else
  echo "feil";
ikke sjekket om kode kjører, men burde vel skjønne konseptet
Sist endret av Skyfex; 14. september 2007 kl. 15:52.
Sikkerhetsklarert
Trådstarter
Sitat av B3nd1k
Det er nok av den grunn at variablene er satt. Du sjekker bare om dem er satt, ikke tomme. Husker jeg riktig kan du bruke funksjonen empty($var) for å sjekke om en variabel er tom.
Vis hele sitatet...
så syntax blir da?

[code]
if ( !empty($_POST['navn'] && !empty($_POST['ip'] etc.....) {
}
[code]

tester dette..

Edit: så ikke posten din før jeg postet, skyfex, tester dette også.


Edit2: har testet litt nå..
Dette fungerte utmerket.

Ang det å lage en funksjon, og deretter kjøre

Kode

if (sjekk(array('navn', 'ip', 'osv')) {
"array", er det en innebygget funksjon, eller må jeg først opprette et array og legge alle $_POST dataene til det?
Det fungerte fint å løkke igjennom slik:

Kode

if ( isset ( $_POST['navn'] ) && !empty($_POST['navn']) 
&& isset ( $_POST['ip'] )  && !empty($_POST['ip']) 
&& isset ( $_POST['merke'] )  && !empty($_POST['merke']) 
&& isset ( $_POST['modell'])  && !empty($_POST['modell']) 
&& isset ($_POST['lok']) && !empty($_POST['lok'])) {
Er det mulig å f,eks gi brukeren en tilbakemelding om hvilket felt som mangler?
Må man ha

Kode

if blablbla navn{
 if blablabla ip {
   if blablabla osv {

     } else 
       ehco "du glemte osv"    
   } else
      ehco "du glemte ip"    
 } else
ehco "du glemte navn"
Sist endret av Pjukern; 14. september 2007 kl. 16:14.
Om du vil sjekke hvilket felt som mangler, må du nok ha en og en spørring.

Kode

<?php
if (empty($Name))
{
    $Output = 'Navn er tomt';
}
elseif (empty($Modell))
{
    $Output = 'Modell er tomt';
}
?>
Kan vel også lage et array av variablene, lage en loop og sjekke en og en.
Sikkerhetsklarert
Trådstarter
Ok, dropper det så lenge, det er kun vi på jobben som skal bruke dette internt, de fleste har noen år på ryggen innen it, så de burde klare å finne ut hvilket felt som mangler selv.

Er nå godt i gang med å registrere data.. Kun 130 skrivere som skal inn i basen i kveld.. :/
Et alternativ kan være dette. Om du tester koden så ser du hvordan den "sier ifra".

Kode

<?php
  if (!empty($_POST)) { 
	foreach($_POST as $felt => $verdi) {
		if (empty($_POST[$felt])) { 
			$err[$felt] = true;
			$status .= "- Feltet '$felt' må fylles ut.<br />";
		}
	}
	if (!empty($err)) {
		echo $status;
	} else {

	   //kode her

	}
  }

?>

<form method="POST">
Navn <input type="text" name="navn" value="<?=$_POST['navn'];?>" /><?=(isset($_POST) && $err['navn'] ? "<font color=\"#FF0000\"><b>*</b></font>" : "");?><br />
Merke <input type="text" name="merke" value="<?=$_POST['merke'];?>" /><?=(isset($_POST) && $err['merke'] ? "<font color=\"#FF0000\"><b>*</b></font>" : "");?><br />
Modell <input type="text" name="modell" value="<?=$_POST['modell'];?>" /><?=(isset($_POST) && $err['modell'] ? "<font color=\"#FF0000\"><b>*</b></font>" : "");?><br />
<input type="submit" value="Send">
</form>
Sikkerhetsklarert
Trådstarter
fortsatt rimelig fersk på dette, koden din, kan den kjøres slik den står der?
Inbiller meg at $verdi og $felt må tilegnes en verdi før de kan brukes?