Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не могу найти синтаксическую ошибку
 
 автор: as67ji   (10.10.2009 в 14:50)   письмо автору
 
 

Помогите пожалуйста, у меня постоянно вылетает эта ошибка:
Parse error: syntax error, unexpected T_VARIABLE in C:\Apache2\htdocs\do.php on line 40

Сам файл:

<?php
    session_start
();
    if(!
$_SESSION["name"])
        
header("Location: /");
Class 
Bot {
    var 
$db;
    function 
convertText() { // Раздяляет строку на слова, формирует массив из слов, выясняет количество слов и какое это предложение.
        
$text=trim(strtolower(addslashes($_POST["text"])));
        
$arrd=explode(" "$text);
        
$arrds=sizeof($arrd)-1;
        for(
$i=0;$i<=$arrds;$i++) {
            
$arrd[$i]=trim($arrd[$i]);
            if(
strlen($arrd[$i])>0) {
                
$arr[0]++;
                
$arr[$arr[0]]=$arrd[$i];
            }
        }
        if(
$arr[$arr[0]]) {
            
$temp=strlen($arr[$arr[0]]);
            
$temp=substr($arr[$arr[0]], $temp-1$temp);
            if(
$temp=="?")
                
$arr["QUESTION"]=true;
            else
                
$arr["QUESTION"]=false;
            
$arr[$arr[0]]=substr($arr[$arr[0]], 0strlen($arr[$arr[0]])-1);
            
$arr["SIZE"]=$arrds;
            
$arr["TEXT"]=$text;
    }
    unset(
$text,$arrd,$arrds,$temp);
    return 
$arr;
    } 
// End function convertText
    
function isAddDictionaryWordCorrectly($arr) { // Убеждаемся, что данное предложение корректно для добавления слов в словарь
        
if($arr["SIZE"]<4) return false; else return true;
    }
    function 
compileStringFromMas($arr) { // Формируем SQL-запрос для записи обозначения в базу данных
        
$sql="INSERT INTO dictionary(wrd, val) VALUES('$arr[2]', '";
        for(
$i=3;$i<=$arr["SIZE"];$i++) { // В цикле объединяем элементы для записи в строку
            
$sql.=" ";
            
$sql.=$arr[$i];
        }
        
$sql.="');";
        return 
$sql;
    }
    function 
startConvert($arr) { // Начинаем обработку
        
$this->db=sqlite_open("dictionary.db");
        if(!
$this->db)exit;
        if(
$arr[1]=="у") { // Надо в словарь добавить следующее слово
            
if( isAddDictionaryWordCorrectly($arr) ) { // Проверяем на корректность добавления записи
                
$sql="SELECT * FROM dictionary WHERE wrd='".$arr[2]."';"
                
$query=@sqlite_query($this->db$sql);
                if(!
$query) exit;
                if(
sqlite_num_rows($query)<1) { // Нужно добавить строку
                    
$sql=compileStringFromMas($arr);
                    
$query=@sqlite_query($this->db$sql);
                    if(!
$query) exit;
                    
$COMPLETE="<b>".$arr["TEXT"]."</b><br>Я понимаю.";
                }
            }
        }
        return 
$COMPLETE;
    } 
// End function startConvert
// End class Bot
    
$objBot=new Bot();
    
$arr=$objBot->convertText();
    echo 
$objBot->startConvert($arr);
?>


Ужас... Ну где же ты, ошибка?!((

  Ответить  
 
 автор: Diplex   (10.10.2009 в 14:56)   письмо автору
 
   для: as67ji   (10.10.2009 в 14:50)
 

VALUES('$arr[2]', '";

  Ответить  
 
 автор: As67ji   (10.10.2009 в 15:01)   письмо автору
 
   для: Diplex   (10.10.2009 в 14:56)
 

И что в этом неправильного?..

  Ответить  
 
 автор: Diplex   (10.10.2009 в 15:02)   письмо автору
 
   для: As67ji   (10.10.2009 в 15:01)
 

А не, недосмотрел, что у Вас там через умную технологию сделано, и думал, что скобку не закрыли :)

Тогда вот ещё:

$sql="SELECT * FROM dictionary WHERE wrd='".$arr[2]."';"


; - надо в конце поставить, а не как у Вас...

и можно попробовать здесь:

$sql.="');";


после скобки, убрать - ;

  Ответить  
 
 автор: dios™   (10.10.2009 в 15:30)   письмо автору
 
   для: Diplex   (10.10.2009 в 15:02)
 

";" в запросе игнорируется, так что ИМХО убирать не критично.

  Ответить  
 
 автор: dios™   (10.10.2009 в 15:27)   письмо автору
 
   для: as67ji   (10.10.2009 в 14:50)
 

Была ошибка в строке #49: ";" отсутствовала в конце запроса после кавычки(").
Вот правильнй код(по крайней мере у меня работает без ошибок):

<?php
    session_start
();
    if(!
$_SESSION["name"])
        
header("Location: /");
Class 
Bot {
    var 
$db;
    function 
convertText() { // Раздяляет строку на слова, формирует массив из слов, выясняет количество слов и какое это предложение.
        
$text=trim(strtolower(addslashes($_POST["text"])));
        
$arrd=explode(" "$text);
        
$arrds=sizeof($arrd)-1;
        for(
$i=0;$i<=$arrds;$i++) {
            
$arrd[$i]=trim($arrd[$i]);
            if(
strlen($arrd[$i])>0) {
                
$arr[0]++;
                
$arr[$arr[0]]=$arrd[$i];
            }
        }
        if(
$arr[$arr[0]]) {
            
$temp=strlen($arr[$arr[0]]);
            
$temp=substr($arr[$arr[0]], $temp-1$temp);
            if(
$temp=="?")
                
$arr["QUESTION"]=true;
            else
                
$arr["QUESTION"]=false;
            
$arr[$arr[0]]=substr($arr[$arr[0]], 0strlen($arr[$arr[0]])-1);
            
$arr["SIZE"]=$arrds;
            
$arr["TEXT"]=$text;
    }
    unset(
$text,$arrd,$arrds,$temp);
    return 
$arr;
    } 
// End function convertText
    
function isAddDictionaryWordCorrectly($arr) { // Убеждаемся, что данное предложение корректно для добавления слов в словарь
        
if($arr["SIZE"]<4) return false; else return true;
    }
    function 
compileStringFromMas($arr) { // Формируем SQL-запрос для записи обозначения в базу данных
        
$sql="INSERT INTO dictionary(wrd, val) VALUES('$arr[2]', '";
        for(
$i=3;$i<=$arr["SIZE"];$i++) { // В цикле объединяем элементы для записи в строку
            
$sql.=" ";
            
$sql.=$arr[$i];
        }
        
$sql.="');";
        return 
$sql;
    }
    function 
startConvert($arr) { // Начинаем обработку
        
$this->db=sqlite_open("dictionary.db");
        if(!
$this->db)exit;
        if(
$arr[1]=="у") { // Надо в словарь добавить следующее слово
            
if( isAddDictionaryWordCorrectly($arr) ) { // Проверяем на корректность добавления записи
                
$sql="SELECT * FROM dictionary WHERE wrd='".$arr[2]."';";
                
$query=@sqlite_query($this->db$sql);
                if(!
$query) exit;
                if(
sqlite_num_rows($query)<1) { // Нужно добавить строку
                    
$sql=compileStringFromMas($arr);
                    
$query=@sqlite_query($this->db$sql);
                    if(!
$query) exit;
                    
$COMPLETE="<b>".$arr["TEXT"]."</b><br>Я понимаю.";
                }
            }
        }
        return 
$COMPLETE;
    } 
// End function startConvert
// End class Bot
    
$objBot=new Bot();
    
$arr=$objBot->convertText();
    echo 
$objBot->startConvert($arr);
?> 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования