Thomas. Skrevet 19. mars 2008 Del Skrevet 19. mars 2008 (endret) 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 19. mars 2008 av php_user Lenke til kommentar
Crowly Skrevet 19. mars 2008 Del Skrevet 19. mars 2008 (endret) 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 20. mars 2008 av Crowly Lenke til kommentar
Thomas. Skrevet 19. mars 2008 Forfatter Del Skrevet 19. mars 2008 Her ligger den if'en, til siste else: if(($_SESSION['spam'] == $_POST['spam']) && (!empty($_SESSION['spam'])) ) { Øverst.. Lenke til kommentar
Martin A. Skrevet 19. mars 2008 Del Skrevet 19. mars 2008 (endret) 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 19. mars 2008 av M4rTiN Lenke til kommentar
Crowly Skrevet 20. mars 2008 Del Skrevet 20. mars 2008 (endret) 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 20. mars 2008 av Crowly Lenke til kommentar
Martin A. Skrevet 20. mars 2008 Del Skrevet 20. mars 2008 Eller man kan benytte ternary operatøren. echo ( $test == 1 ) ? 'Hei på deg' : 'Gå vegg'; Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå