Gå til innhold

Hvorfor kommer det opp feilmeldinger når jeg bruker if, else og elseif ?


Anbefalte innlegg

Hvorfor kommer det opp feilmeldinger når jeg bruker if,elseif,else ?

 

Merkelig... Men finnes det annet man kan bruke?

 

 

 

 

Isaåfall, hvordan kan jeg fikse det?

 

 

 

 

Feilmelding:

Parse error: syntax error, unexpected T_ELSE in C:\wamp\www\Hjemmeside\sider\forumNY.php on line 96

 

 

Linje 96: (else - i koden under)

   } else {
  echo "<br><blockquote><font color=\"red\"><b><u>* Feil antibot kode! Venligst prøv igjen..</u></b></font></blockquote><br>";
  }

 

 

Hele koden:

<?php
if(isset($_POST['Submit'])) {
@session_start();
if(($_SESSION['spam'] == $_POST['spam']) && (!empty($_SESSION['spam'])) ) {

$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="gjestebok"; // Database name
$tbl_name="forum_question"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// get data that sent from form
$topic=$_POST['topic'];
$detail= htmlspecialchars($_POST['detail']);
$name=$_POST['name'];

if(empty($topic)) {
echo "topic";
}
elseif(empty($detail)) {
echo "melding";
}
elseif(empty($name)) {
echo "navn";
}
else {

$datetime=date("d/m/y h:i:s"); //create date time

$sql="INSERT INTO $tbl_name(topic, detail, name, email, datetime)VALUES('$topic', '$detail', '$name', '$email', '$datetime')";
$result=mysql_query($sql);

if($result){
echo "<blockquote>Velykket!<BR>";
echo "<a href=?qt=forum>Vis din topic..</a></blockquote>";
}
else {
echo "ERROR";
}
mysql_close();
 unset($_SESSION['spam']);
  } else {
  echo "<br><blockquote><font color=\"red\"><b><u>* Feil antibot kode! Venligst prøv igjen..</u></b></font></blockquote><br>";
  }
  }
}

?>

Endret av php_user
Lenke til kommentar
Videoannonse
Annonse

Du har en else for mye

 

mysql_close();
 unset($_SESSION['spam']);
  } else {

 

Hvor er if'en til denne else'en ?

 

if(isset($_POST['Submit'])) 
{
 @session_start();
 if(($_SESSION['spam'] == $_POST['spam']) && (!empty($_SESSION['spam'])) ) 
 {
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="gjestebok"; // Database name
$tbl_name="forum_question"; // Table name

// Connect to server and select database.
mysql_connect($host, $username, $password)or die("cannot connect");
mysql_select_db($db_name)or die("cannot select DB");

// get data that sent from form
$topic=$_POST['topic'];
$detail= htmlspecialchars($_POST['detail']);
$name=$_POST['name'];

if(empty($topic)) 
{
  echo "topic";
}
elseif(empty($detail)) 
{
  echo "melding";
}
elseif(empty($name)) 
{
  echo "navn";
}
else 
{
  $datetime=date("d/m/y h:i:s"); //create date time
  $sql="INSERT INTO $tbl_name(topic, detail, name, email, datetime)VALUES('$topic', '$detail', '$name', '$email', '$datetime')";
  $result=mysql_query($sql);

  if($result)
  {
	echo "<blockquote>Velykket!<BR>";
	echo "<a href=?qt=forum>Vis din topic..</a></blockquote>";
  }
  else 
  {
	echo "ERROR";
  }
  mysql_close();
  unset($_SESSION['spam']);

} // slutt else, if(empty($topic))
else // denne er feil, har ingen if
{
  echo "<br><blockquote><span style=\"font-weight: bold; text-decoration: underline; color: red;\">* Feil antibot kode! Venligst prøv igjen..</span></blockquote><br>";
}
 }  // slutt if(($_SESSION['spam'] == $_POST['spam']) && (!empty($_SESSION['spam'])) )
}  // slutt if(isset($_POST['Submit']))

 

<font> er en utdatert tag, det samme vil jeg tro at <b> og <u> er også. Se litt nærmere på css. Bare sånn for å pirke litt.

Endret av Crowly
Lenke til kommentar

Indenter koden din på en vettugt måte, så ser du plutselig at du elser på en else.

 

Litt luft i koden gjør det også MYE enklere å lese den.

$myvar="heisann";
$enannenvar="noe annet";

$myvar	  = "heisann";
$enannenvar = "noe annet";

if(expression(function(TRUE))){
echo "heiheihei";
}

if( expression( function( TRUE ) ) )
{
echo "hei på deg";
}

if(noe){
if(noe annet){
echo "hei";
}else{
echo "nei";
}
}else{
echo "ja";
}

if(noe)
{
if(noe annet)
{
	echo "hei";
}
else
{
	echo "nei";
}
}
else
{
echo "ja";
}

Endret av M4rTiN
Lenke til kommentar

Se oppdatert post over, har gjordt koden mer lesbar og lagt til kommentarer for å lettere vise hvor feilen er.

Ett lite tips er at du skaffer deg en editor som viser hvilke { } som hører sammen, det i kombinasjon med lett lest kode gjør det lett(ere) å finne feil. F.eks Notepad2 og Notepad++ er to gode editorer som jeg har testet.

 

Feilen din er at du har satt else'en litt for langt opp i koden

 

 

} // slutt else, if(empty($topic))	  
 }  // slutt if(($_SESSION['spam'] == $_POST['spam']) && (!empty($_SESSION['spam'])) )
 else 
 {  
  echo "<br><blockquote><span style=\"font-weight: bold; text-decoration: underline; color: red;\">* Feil antibot kode! Venligst prøv igjen..</span></blockquote><br>";
 }
}  // slutt if(isset($_POST['Submit']))

 

 

En annen liten ting, det er ikke nødvendig med {} i if'er o.l hvis du kun skal utføre en kommando, men kan være greit å ha med for å gjøre det mer lesbart. Men kan droppes om ønskelig.

F.eks

if ($test===1)
 echo "hei på deg";
else
 echo "Gå vekk";

Endret av Crowly
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...