[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: syntax error, unexpected T_STRING - как найти ошиб
anunja
Я хочу перенести языковые онлайн тесты, сделанные на php, из одного сайта в другой. Структура у них такая: две папки: тест и результат теста, в каждой из двух папок файлы index.php и test.php. Я просто скопировала эти папки в новый сайт, но когда я ввожу адрес http://neu.xbridge.ru/ext/modules/arabictest/index.php, появляется ошибка
Parse error: syntax error, unexpected T_STRING in 31
Вот эта строка
 $out .= "<link rel="stylesheet" type="text/css" href="/ext/modules/arabictest/teststyles.css">"; // вернуть

Если я меняю кавычки на одинарные, он видит ошибку в след. строке.
Но в старом варианте сайта все именно так, и все работает.
Может, конечно, это все и невозможно и придется заново эти тесты делать, но я еще надеюсь обойтись малой кровью, хочу попробовать.





Спустя 5 минут, 26 секунд (29.10.2011 - 16:55) Winston написал(а):
Нужно вот так писать
$out .= "<link rel='stylesheet' type='text/css' href='/ext/modules/arabictest/teststyles.css'>"; // вернуть
Цитата (anunja @ 29.10.2011 - 16:49)
Если я меняю кавычки на одинарные, он видит ошибку в след. строке.

Покажите следующую строку.

Спустя 10 минут, 13 секунд (29.10.2011 - 17:05) anunja написал(а):
Я прям кусочек приведу
include "_questions_arabic.php";
$time_test=$testtime[$test]-(mktime()-$_SESSION['start']);
$out .= "<link rel="stylesheet" type="text/css" href="/ext/modules/arabictest/teststyles.css">"; // вернуть
//$out .= "<link rel="stylesheet" type="text/css" href="teststyles.css">"; // убрать
//$out .= "<table bgcolor="#121331" border="0" width="100%" style="color: #FFFFFF"><tr><td>"; // убрать

$out .= "<p id="bigcaption">إختبار اللغة العربية</p>";
$out .= "<p id="subcaption">".$test." الجزء</p>";
$out .= "<p id="question_text">عدد الأسئلة: <span id="question_text2">".$part[$test]."</span></p>";
$tstt = $testtime[$test]/60;
$out .= "<p id="question_text">الوقت: <span id="question_text2">".$tstt."</span></p>";
$out .= "<form action="?name=arabictestres" method="post">"; // вернуть
//$out .= "<form action="index1.php" method="post">"; // убрать


Мне не лень все эти файлы отредактировать, была бы польза. Я вот подозреваю, что кавычки плохи, но почему же на старом сайте все работает? Они у меня оба рядом, я новый пока на поддомене тестирую.

Спустя 5 минут, 13 секунд (29.10.2011 - 17:10) Winston написал(а):
Попробуйте так
Свернутый текст
include "_questions_arabic.php";
$time_test=$testtime[$test]-(mktime()-$_SESSION['start']);
$out .= "<link rel='stylesheet' type='text/css' href='/ext/modules/arabictest/teststyles.css'>"; // вернуть
//$out .= "<link rel='stylesheet' type='text/css' href='teststyles.css'>"; // убрать
//$out .= "<table bgcolor='#121331' border='0' width='100%' style='color: #FFFFFF'><tr><td>"; // убрать

$out .= "<p id='bigcaption'>إختبار اللغة العربية</p>";
$out .= "<p id='subcaption'>".$test." الجزء</p>";
$out .= "<p id='question_text'>عدد الأسئلة: <span id='question_text2'>".$part[$test]."</span></p>";
$tstt = $testtime[$test]/60;
$out .= "<p id='question_text'>الوقت: <span id='question_text2'>".$tstt."</span></p>";
$out .= "<form action='?name=arabictestres' method='post'>"; // вернуть
//$out .= "<form action='index1.php' method='post'>"; // убрать
Цитата (anunja @ 29.10.2011 - 17:05)
почему же на старом сайте все работает

Возможно там вывод ошибок отключен ?



Спустя 32 секунды Winston написал(а):
anunja
И ваш код, который вы выложили, даже по подсветке видно, что там ошибки.

Спустя 10 минут, 48 секунд (29.10.2011 - 17:21) anunja написал(а):
Ну, там прямо все открывается как надо и можно проходить тесты) Я не знаю, почему так происходит.
Значит, после равно нужно ставить одинарные кавычки?

Спустя 5 минут, 13 секунд (29.10.2011 - 17:26) Winston написал(а):
Если у вас внутри текста больше не нужно будет использовать кавычки значит, можно одинарные. Например здесь можно одинарные
include '_questions_arabic.php';

Если внутри будут использоваться кавычки, значит после равно нужно ставить двойные, а внутри одинарные, например
$out .= "<p id='bigcaption'>إختبار اللغة العربية</p>";

Или можно использовать двойные, только их нужно экранировать
$out .= "<p id=\"bigcaption\">إختبار اللغة العربية</p>";

Спустя 20 минут, 1 секунда (29.10.2011 - 17:46) anunja написал(а):
А. Это я сама по неведению убрала экранирование кавычек(((
Тогда ошибка еще хуже, совсем безнадежная
Неверное перенаправление на странице
Это, наверное, вначале перенаправление в какие-то части старого сайта, которые я не перенесла.
Там начало вот такое
<?
// © Copyright 2008 X-Bridge. All rights reserved

if(!defined("MODULE_FILE"))
{
header("Location: index.php");
die("Error loading...");
}

@include($path."/lang/".$lang.".php");

global $tpl;

$out = "";

if (empty($_POST['ntest']))
{
$test = 1;
}
else
{
$test=$_POST['ntest'];
}

session_start();


Мне этот header не нужен сейчас уже, дизайн-то другой, да и движок тоже. Может, это и есть неверное перенапправление ?

Спустя 19 минут, 50 секунд (29.10.2011 - 18:06) Winston написал(а):
Попробуйте вверху скрипта написать
error_reporting(E_ALL);
Какие ошибки выдаст ?
И какая версия PHP ?

Спустя 39 минут, 34 секунды (29.10.2011 - 18:46) anunja написал(а):
Версия php 5.2
Я так переписала начало
<?
error_reporting(E_ALL);

global $tpl;

$out = "";

if (empty($_POST['ntest']))
{
$test = 1;
}
else
{
$test=$_POST['ntest'];
}

session_start();


Теперь не нравится строка 89
Fatal error: Call to a member function assign() on a non-object in .... 89
Строки 89-90:
$tpl->assign(array("TEXT"=>$out."</font>")); //вернуть
$tpl->assign(array("RIGHT"=>" ")); // вернуть



[php]

Спустя 47 минут, 28 секунд (29.10.2011 - 19:33) imbalance_hero написал(а):
anunja
Вот так правильнее всего! Если в коде встречается одинарная кавычка, то её экранизировать:
 $out .= '<link rel="stylesheet" type="text/css" href="/ext/modules/arabictest/teststyles.css">';

Спустя 3 минуты, 24 секунды (29.10.2011 - 19:37) anunja написал(а):
Это я все вернула, все экранирования, теперь к синтаксису претензий нет, теперь ему что-то с массивами не нравится.
Fatal error: Call to a member function assign() on a non-object in .... 89


_____________
Прогресс - враг человечества!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.