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]   

> Описание: Ошибка на серваке
Andrey65
Отправлено: 12 Января, 2011 - 18:21:40
Post Id


Новичок


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


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




Недавно начал учить php, так что сильно не ругайте!

Проблема следующая:
Разобрался с простым сайтом и решил залить на сервак посмотреть. Выдает ошибку
Warning: file_get_contents() expects at most 2 parameters, 5 given in /home/hop/e/l/i/elista/public_ht ml/design/header.php on line 35 При открытии index.php Адрес: elista.hop.ru

<?php

/**
* Файл index.php
*/

/**
* вставляем шапку страницы вместе с меню
*/
include ('design/header.php');

/**
* если запрос без параметров, т.е. пустой (http://site.ru/index.php)
* или (http://site.ru),
* то грузим дефолтную страницу
*/
if ($_GET == false){

include ("content/default.php");

} else {
/**
* А если параметр есть, то выполняем запрос указаной страницы.
* присваем переменной $page значение из запроса
* и приклеиваем к ней расширение .php
*/
$page = $_GET['p'] . '.php';
/**
* Если запрошеный файл не существует,
* то грузим дефолтную страницу.
*/
if (is_file('content/' . $page) == false){

include ('content/default.php');

} else {
/**
* Обратите внимание, что в отличие от одинарных (''),
* в двойных ("") кавычках считывается php код
* в нашем случае - это переменная $page .
* Вставляем запрошеный контент
*/
include ("content/$page");

}
}

/**
* вставляем подвал
*/
include ('design/footer.php');

?>


Файл elista.hop.ru/design/header.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251"/>
<meta name="description" content="простой движок сайта на php"/>
<meta name="keywords" content="php, движок, сайт, ксакеп ру"/>
<meta name="author" content="kcaken.ru"/>
<link rel="stylesheet" type="text/css" href="default.css"/>
<title>Такой вот сайт</title>
</head>

<body>

<div class="main">

<div class="gfx"><h1>Такой вот сайт</h1></div>

<div class="menu">
<a href="index.php"><span>Главная</span></a>

<?php
/**
* Генератор менюшки =)
*/
//начинаем...
$i = 0;
//открываем папку с контентом
$handle = opendir ('content/');// 35 строка
//считываем в цикле названия файлов
while($file = readdir($handle)){
//отсекаем ненужные нам файлы и ссылки на директории
if ($file != '.' && $file != '..' && $file != 'default.php'){
//считываем первые 50 символов из файла
$buffer = file_get_contents('content/'.$file,0,NULL,0,50);
//с помощью регулярного выражения извлекаем название для меню
preg_match('/<!--(.*)-->/',$buffer,$name);//
//формируем массив названий файлов без расширения .php
$func[$i] = substr($file, 0, -4);
//выводим ссылки меню
echo " <a href='index.php?p=$func[$i]'>$name[1]</a> ";

$i++;
}

}
closedir($handle);//закрываем директорию

?>
</div>
<div class="content">

<div class="item">




Если я правильно понял, то сервак не может прочитать директорию - 35строчка в header.php . А у меня на Denwer все нормально. Пробовал директорию менять бесполезно. Подскажите пожалуйста где что поменять?
 
 Top
OrmaJever Модератор
Отправлено: 12 Января, 2011 - 18:25:16
Post Id



Активный участник


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


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




Andrey65 пишет:
Если я правильно понял, то сервак не может прочитать директорию - 35строчка в header.php

Ну раз уже смогли прочитать текст ошибки то смотрите куда она указывает. А указывает на

Ругается на второй параметр тоесть на 0. В описании функции написано что второй параметр должен быть bool use_include_path тоесть либо true либо false, а 0 это число.

(Отредактировано автором: 12 Января, 2011 - 18:25:48)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Andrey65
Отправлено: 12 Января, 2011 - 19:01:25
Post Id


Новичок


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


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




OrmaJever Спасибо за помощь!!! Выкосил ,0,NULL,0,50 Работает на УРА!!!
 
 Top
Andrey65
Отправлено: 12 Января, 2011 - 21:07:20
Post Id


Новичок


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


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




Всё, разобрасля в корне с подсказки Kcaken. Суть в том, что на серваке версия php 4/4/9
просто надо поменять file_get_contents('content/'.$file,0,NULL,0,50); на @file_get_contents('content/'.$file,0,NULL,0,50);
 
 Top
OrmaJever Модератор
Отправлено: 12 Января, 2011 - 21:10:51
Post Id



Активный участник


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


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




нет так меня не надо. Лутше написать file_get_contents('content/'.$file,false,NULL,0,50);


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
SAD
Отправлено: 12 Января, 2011 - 21:11:32
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




Andrey65, вы хоть понимаете, что @ скрывает ошибку, а не решает проблему?
Напишите просто один параметр

(Отредактировано автором: 12 Января, 2011 - 21:18:42)

 
 Top
Andrey65
Отправлено: 12 Января, 2011 - 22:05:36
Post Id


Новичок


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


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




Если написать file_get_contents('content/'.$file,false,NULL,0,50); то Warning: file_get_contents() expects at most 2 parameters, 5 given in /home/hop/e/l/i/elista/public_ht ml/design/header.php on line 35
 
 Top
Мелкий Супермодератор
Отправлено: 12 Января, 2011 - 22:29:14
Post Id



Активный участник


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


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




Andrey65 пишет:
Суть в том, что на серваке версия php 4/4/9

а вас не смущает, что 3-х последних параметров в вашей версии PHP вообще не существует, о чём и говорит варнинг?

Или ищите себе хостинг с PHP5.1 (или старше) или оставьте только первый параметр. Всё равно последний параметр в расчёт браться не будет.

Или реализуйте тот же функционал на fopen


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB