2010-12-29 4 views
3

Я новичок в PHP, и я делаю форум. все файлы работают, кроме одного файла, add_topic.php.Ошибка PHP Parse: ошибка синтаксиса, неожиданный T_CLASS

Это дает мне ошибку говоря:

Parse error: syntax error, unexpected T_CLASS in /home/a3885465/public_html/add_topic.php on line 25

Я знаю, что это, вероятно, на линиях:

} 
else{ 
    echo "ERROR"; 
} 
mysql_close(); 

, но весь код находится ниже на всякий случай.

Если у вас есть идеи, было бы очень благодарно, спасибо!


Кодекс для add_topic.php

$host=""host""; 
$username="username"; 
$password="password"; 
$db_name ="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= $_POST['detail']; 
$name= $_POST['name']; 
$email= $_POST['email']; 

$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 "Successful<BR>"; 
    echo "<a href=main_forum.php>View your topic</a>"; 
else{ 
    echo "ERROR"; 
} 
mysql_close(); 
?> 
+0

В коде, который вы показываете, нет «класса». Пожалуйста, покажите точную строку, в которой произошла ошибка, и три до и после этого –

+2

Я хотел сделать ваш код более удобочитаемым, пока не увижу всю разметку между ними. Пожалуйста, удалите все эти HTML-маркировки и отформатируйте свой код соответственно – DrColossos

+0

@DrColossos - я думаю, вы неправильно поняли вопрос ... это разметка синтаксиса (как вы видели на этой странице) или должна быть, а не фактическая работа код. –

ответ

1

Вы неэкранированный <?php на линии 25:

<p class="p1"><span class="s1"></span><?php<span class="s2"><br> 

Оно должно быть:

<p class="p1"><span class="s1"></span>&lt;?php<span class="s2"><br> 
+0

На самом деле это escpaed, но только в очень неправильном месте. 7-я линия снизу. – DrColossos

+0

@ DrColossos - Я так не думаю ... он сказал, что он разрабатывает форум, я полагаю, что это означает, что * предполагается * синтаксисом выделенного вывода кода, поэтому все промежутки находятся там. –

3

Plus: вы "двойные кавычки et Host.

$host=""host""; // Host name 

заменить его

$host="host"; // Host name 

Но серьезно: вы должны, вероятно, получить себе приличный IDE!

+0

Я думаю, что снова вопрос был упущен ... это был код, который кто-то размещал на форуме, как вопрос, который он выделяет ... это не настоящая проблема, и, скорее всего, не их код. –

1

Три года спустя здесь я приезжаю:

Ваш анализатор, вероятно, жалуется на четверке кавычками ""host"" на 1-й линии. Также

echo "<a href=main_forum.php>View your topic</a>"; 

должен быть

echo "<a href=\"main_forum.php\">View your topic</a>"; 

Наконец код полон возможностей для инъекции SQL. Защитите свой вход перед тем, как поместить его в запрос. Для этого есть всевозможные умные трюки, такие как mysql_real_escape_string и тонны сообщений в блогах, посвященных теме.

Я лично считаю, что с использованием base64 на входе и декодирования его, когда мне нужно его обрабатывать, лучше всего работает, если вы не против дополнительного пространства.