Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: В чём проблема? Почему выкидывает ошибку?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: parse error, expecting `T_CASE' or `T_DEFAULT' or `'}''
spector32
Отправлено: 24 Января, 2012 - 22:56:19
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Привет всем! Где я ошибся, написав этот код?

Мне выкидывает такую ошибку:
Цитата:
Parse error: parse error, expecting `T_CASE' or `T_DEFAULT' or `'}'' in C:\xampp\htdocs\classes\page.php on line 19


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. class pageSelector{
  5.         var $pagesdir;
  6.  
  7.         function selectPage() {
  8.                 if(isset($this->pagesdir)){
  9.                         $this->pagesdir = $this->pagesdir ."/";
  10.                 }
  11.                 if(is_dir($this->pagesdir)) {
  12.         $files = scandir($this->pagesdir);
  13.         array_shift($files); // удаляем из массива '.'
  14.         array_shift($files); // удаляем из массива '..'
  15.                 if(isset($_GET['do'])){
  16.                 $do = $_GET['do'];
  17.                 }
  18.                 switch ($do) {
  19.                 //problema zdes!•-•
  20.         for($i=0; $i<sizeof($files); $i++){
  21.                
  22.                 case basename($files[$i], ".php"):
  23.                 $page_file = "$files[$i]";
  24.                 break;
  25.                
  26.                 //echo ("<h2>".$this->pagesdir.basename($files[$i], ".php")."</h2>");
  27.                 }
  28.                 default:
  29.                 $page_file = 'home.php';
  30.                 }
  31.                 if($_SERVER['REQUEST_URI'] == ""){
  32.                 include_once "home.php";
  33.                 }else{
  34.                 include_once $this->pagesdir .'/'.$page_file;}
  35. }
  36. }
  37. }
  38. ?>
  39.  

Заранее спасибо!
 
 Top
Bio man
Отправлено: 24 Января, 2012 - 23:02:32
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




spector32 пишет:
PHP:
скопировать код в буфер обмена
  1. switch ($do) {
  2.            case 'tumbajumba':     //problema zdes!
  3.         for($i=0; $i<sizeof($files); $i++){...}break;

(Добавление)
и вообще что то не понятное вы делаете. может так?
PHP:
скопировать код в буфер обмена
  1. case basename($files[$i], ".php"):
  2.    for($i=0; $i<sizeof($files); $i++){
  3.       $page_file = "$files[$i]";
  4.       //echo ("<h2>".$this->pagesdir.basename($files[$i], ".php")."</h2>");
  5.    }
  6. break;
  7.  

(Добавление)
Какой смысл в этом?
Bio man пишет:
это не ошибка, просто если вы думаете, что
Bio man пишет:
в итоге будет содержать имя переменной то вы ошибаетесь.
 
 Top
spector32
Отправлено: 24 Января, 2012 - 23:10:39
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Bio man пишет:
spector32 пишет:
PHP:
скопировать код в буфер обмена
  1. switch ($do) {
  2.            case 'tumbajumba':     //problema zdes!
  3.         for($i=0; $i<sizeof($files); $i++){...}break;


Тогда появляется следующее:

Parse error: parse error in C:\xampp\htdocs\classes\page.php on line 20
(Добавление)
Bio man пишет:
spector32 пишет:
PHP:
скопировать код в буфер обмена
  1. switch ($do) {
  2.            case 'tumbajumba':     //problema zdes!
  3.         for($i=0; $i<sizeof($files); $i++){...}break;

(Добавление)
и вообще что то не понятное вы делаете. может так?
PHP:
скопировать код в буфер обмена
  1. case basename($files[$i], ".php"):
  2.    for($i=0; $i<sizeof($files); $i++){
  3.       $page_file = "$files[$i]";
  4.       //echo ("<h2>".$this->pagesdir.basename($files[$i], ".php")."</h2>");
  5.    }
  6. break;
  7.  

(Добавление)
Какой смысл в этом?
Bio man пишет:
это не ошибка, просто если вы думаете, что
Bio man пишет:
в итоге будет содержать имя переменной то вы ошибаетесь.

Я пытаюсь создать такую хрень:

PHP:
скопировать код в буфер обмена
  1.                 case  "Имя файла из папки" //basename($files[$i], ".php"):
  2.                 $page_file = "Имя файла из папки, только с разширением в конце" //"$files[$i]";
  3.                 break;


Он у меня в цикле..
Я пытаюсь создать такую вещь, чтобы как только, я добавил новый файл в папку он автоматом делал case.. Типо http://mysite/?do=Имя файла без разшырения ...
 
 Top
Bio man
Отправлено: 24 Января, 2012 - 23:37:22
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class pageSelector{
  3.         var $pagesdir;
  4.  
  5.         function selectPage() {
  6.                 if(isset($this->pagesdir)){
  7.                         $this->pagesdir .= "/";
  8.                 }
  9.                 foreach(scandir($this->pagesdir) as $file){
  10.                         if(!is_dir($file)){
  11.                                 $files[] = $file;
  12.                         }
  13.                 }
  14.                 if(isset($_GET['do'])){
  15.                         $do = $_GET['do'];
  16.                         foreach($files as $k => $v){
  17.                                 if($v == $do)
  18.                                         $page_file = $files[$k].'.php';
  19.                         }      
  20.                         //echo ("<h2>".$this->pagesdir.basename($files[$i], ".php")."</h2>");
  21.                 }
  22.                 else{
  23.                         $page_file = 'home.php';
  24.                 }
  25.                 include_once $this->pagesdir.$page_file;
  26.         }
  27. }
  28. ?>

(Отредактировано автором: 24 Января, 2012 - 23:39:28)

 
 Top
spector32
Отправлено: 25 Января, 2012 - 00:09:06
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Bio man пишет:
...


Спасибо, за правку кода!
Я сменил его, и тепер следушее:

Цитата:
Warning: include_once(page/) [function.include-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\classes\page.php on line 25

Warning: include_once() [function.include]: Failed opening 'page/' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\classes\page.php on line 25
 
 Top
Okula
Отправлено: 25 Января, 2012 - 00:16:25
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Укажи правильно пути до файлов которые инклудяться.
 
 Top
spector32
Отправлено: 25 Января, 2012 - 00:33:36
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Okula пишет:
Укажи правильно пути до файлов которые инклудяться.


Цитата:
Warning: include_once(page/)
Файла вообще НЕТ!
 
 Top
Bio man
Отправлено: 25 Января, 2012 - 14:51:41
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Пробуйте так
PHP:
скопировать код в буфер обмена
  1.     <?PHP
  2.     class pageSelector{
  3.             var $pagesdir;
  4.      
  5.             function selectPage() {
  6.                     if(isset($this->pagesdir)){
  7.                             $this->pagesdir = "./";// текущая директория
  8.                     }
  9.                     foreach(scandir($this->pagesdir) as $file){
  10.                             if(!is_dir($file)){
  11.                                     $files[] = $file;
  12.                             }
  13.                     }
  14.                     if(isset($_GET['do'])){
  15.                             $do = $_GET['do'];
  16.                             foreach($files as $k => $v){
  17.                                     if($v == $do){
  18.                                             $page_file = $v.'.php';
  19.                                             break;
  20.                                     }
  21.                             }      
  22.                             //echo ("<h2>".$this->pagesdir.basename($files[$i], ".php")."</h2>");
  23.                     }
  24.                     else{
  25.                             $page_file = 'home.php';
  26.                     }
  27.                     include_once $this->pagesdir.$page_file;
  28.             }
  29.     }
  30.     ?>

(Отредактировано автором: 25 Января, 2012 - 14:52:52)

 
 Top
spector32
Отправлено: 27 Января, 2012 - 01:45:41
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Bio man пишет:
Пробуйте так
PHP:
скопировать код в буфер обмена
  1.     <?PHP
  2.     class pageSelector{
  3.             var $pagesdir;
  4.      
  5.             function selectPage() {
  6.                     if(isset($this->pagesdir)){
  7.                             $this->pagesdir = "./";// текущая директория
  8.                     }
  9.                     foreach(scandir($this->pagesdir) as $file){
  10.                             if(!is_dir($file)){
  11.                                     $files[] = $file;
  12.                             }
  13.                     }
  14.                     if(isset($_GET['do'])){
  15.                             $do = $_GET['do'];
  16.                             foreach($files as $k => $v){
  17.                                     if($v == $do){
  18.                                             $page_file = $v.'.php';
  19.                                             break;
  20.                                     }
  21.                             }      
  22.                             //echo ("<h2>".$this->pagesdir.basename($files[$i], ".php")."</h2>");
  23.                     }
  24.                     else{
  25.                             $page_file = 'home.php';
  26.                     }
  27.                     include_once $this->pagesdir.$page_file;
  28.             }
  29.     }
  30.     ?>


Теперь:

Цитата:
Warning: include_once(./) [function.include-once]: failed to open stream: Permission denied in C:\xampp\htdocs\classes\page.php on line 27

Warning: include_once() [function.include]: Failed opening './' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\classes\page.php on line 27
 
 Top
spector32
Отправлено: 27 Января, 2012 - 06:12:09
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Всем спасибо! В конце концов разобрался сам..

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class pageSelector{
  3.         var $p_dir;
  4.  
  5.         function selectPage() {
  6.                 if(isset($this->p_dir)){
  7.                         $this->p_dir .= "/";
  8.                 }else{ "<h1>DIRECTORI AIN'T EXIST!"; }
  9. // Create set of link
  10.         if(is_dir($this->p_dir)) {
  11.         $files = scandir($this->p_dir);
  12.         array_shift($files); // удаляем из массива '.'
  13.         array_shift($files); // удаляем из массива '..'
  14.  
  15. // Create loop to display links
  16. for($i = 0; $i<sizeof($files); ++$i)
  17. {
  18.         if(isset($_GET['do'])){
  19.         $do = $_GET['do'];
  20.     }
  21.     // Create randomizer
  22.     // Use switch statement to find font size
  23.     switch($do)
  24.     {
  25.     case (basename($files[$i], ".php")):
  26.     $do_file = $files[$i];
  27.     break;
  28.     }
  29. // Loop the next link
  30. }
  31.         if($_SERVER['REQUEST_URI'] == "/" or ""){
  32.                 $do_file = "home.php";
  33.     }
  34.         if($do_file == ""){include_once ROOT."/404.php"; }else{
  35.     include_once $this->p_dir.$do_file;}
  36.  
  37. }
  38. }
  39. }
  40. ?>

(Отредактировано автором: 27 Января, 2012 - 06:15:44)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB