Gå til innhold

Påmelding script - problemmer med If setninger


Anbefalte innlegg

Hei!

Jeg har problemmer med et påmelding script. Lurer på om noen kan hjelpe meg litt her:

 

if (empty($fornavn) || empty($etternavn) || empty($nick) || empty($epost) || empty($tlf)) {
echo "En eller flere felt mangler informasjon. "; }

if (empty($cl)) {
echo "Du må ha lest og forstått reglene.. bla bla bla...."; }
else {
// Connect to MySQL
mysql_connect($mySQLhost, $mySQLuser, $mySQLpass)
       or die("Could not connect: " . mysql_error());
mysql_select_db($mySQLdb);

 

Det som skjer er at så lenge noen krysser av for å ha lest og forstått reglene kjører scriptet videre og legger dataen inn i SQL databasen. Selvom flere felt mangler informasjon :(.

Endret av EspenDL
Lenke til kommentar
Videoannonse
Annonse

Tipper det er fordi du spør den om:

hvis fornavn, etternavn etc er tomme, så skal "mangler informasjon" komme.

Men på neste if så spør du bare om reglene, og hvis den er huket av så går det videre uansett.

 

 

if (empty($fornavn) || empty($etternavn) || empty($nick) || empty($epost) || empty($tlf)) 
{
echo "En eller flere felt mangler informasjon. "; 
}
else
{
if (empty($cl)) {
echo "Du må ha lest og forstått reglene.. bla bla bla...."; }
else {
// Connect to MySQL
mysql_connect($mySQLhost, $mySQLuser, $mySQLpass)
      or die("Could not connect: " . mysql_error());
mysql_select_db($mySQLdb);
}
}

 

Dette tror jeg er feilen.

Er en liten stund siden jeg har drevet med PHP, så ikke bli sur om jeg tok heeelt feil :)

 

EDIT: Var litt skriveleif i koden jeg ga deg, hadde glemt en '}'

Endret av kimla
Lenke til kommentar

Prøv denne koden:

 

if(!$_POST['fornavn']){
$feil[0] ="Du har ikke fyllt ut fornavn";
}

if(!$_POST['etternavn']){
$feil[1] ="Du har ikke fyllt ut etternavn";
}

if(!$_POST['nick']){
$feil[2] ="Du har ikke fyllt ut nick";
}

if(!$_POST['epost']){
$feil[3] ="Du har ikke fyllt ut e-post";
}

if(!$_POST['tlf']){
$feil[4] ="Du har ikke fyllt ut telefonnummer";
}

if(!$cl){
$feil[5] ="Du har ikke du har ikke krysset av for at du har lest og forstått reglene";
}



if(!empty($feil)){

foreach ($feil as $feilmelding){

echo"Følgende feilmelding(er) oppstod <p/> $feilmelding<br/>";

}

}

else{

$fornavn = mysql_escape_string(mysql_real$_POST['fornavn']);
$etternavn = mysql_escape_string($_POST['etternavn']);
$nick = mysql_escape_string($_POST['nick']);
$epost = mysql_escape_string($_POST['epost']);
$tlf = mysql_escape_string($_POST['tlf']);

//putt i database...

}

 

den vil si ifra hvilke felter som ikke er blitt utfyllt også.

 

EDIT; Koden er ikke testet så si ifra om du får noen feilmeldinger..

Endret av Tha_Zaynt
Lenke til kommentar
Fungerer den, men Følgende feilmelding(er) oppstod gjentar seg før alle feilmeldingene :p

Oops glemte å sette det utenfor loopen...nå skal det fungere:

 

if(!$_POST['fornavn']){
$feil[0] ="Du har ikke fyllt ut fornavn";
}

if(!$_POST['etternavn']){
$feil[1] ="Du har ikke fyllt ut etternavn";
}

if(!$_POST['nick']){
$feil[2] ="Du har ikke fyllt ut nick";
}

if(!$_POST['epost']){
$feil[3] ="Du har ikke fyllt ut e-post";
}

if(!$_POST['tlf']){
$feil[4] ="Du har ikke fyllt ut telefonnummer";
}

if(!$cl){
$feil[5] ="Du har ikke du har ikke krysset av for at du har lest og forstått reglene";
}



if(!empty($feil)){

echo"Følgende feilmelding(er) oppstod <p/>";

foreach ($feil as $feilmelding){

echo"$feilmelding<br/>";

}

}

else{

$fornavn = mysql_escape_string(mysql_real$_POST['fornavn']);
$etternavn = mysql_escape_string($_POST['etternavn']);
$nick = mysql_escape_string($_POST['nick']);
$epost = mysql_escape_string($_POST['epost']);
$tlf = mysql_escape_string($_POST['tlf']);

//putt i database...

}

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...