Thomas. Skrevet 19. mars 2008 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
Crowly Skrevet 19. mars 2008 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
Thomas. Skrevet 19. mars 2008 Forfatter Skrevet 19. mars 2008 Her ligger den if'en, til siste else: if(($_SESSION['spam'] == $_POST['spam']) && (!empty($_SESSION['spam'])) ) { Øverst..
Martin A. Skrevet 19. mars 2008 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
Crowly Skrevet 20. mars 2008 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
Martin A. Skrevet 20. mars 2008 Skrevet 20. mars 2008 Eller man kan benytte ternary operatøren. echo ( $test == 1 ) ? 'Hei på deg' : 'Gå vegg';
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å