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

Форум PHP

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

 

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

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

тема: Проблема с require
 
 автор: Eric   (10.09.2007 в 22:11)   письмо автору
 
 

Есть код:

<?php
            
//global $session,$form;

            //echo $_SERVER['PHP_SELF'];echo $session->logged_in."FDFDFDF";
            
require_once("sources/session.php");

            global 
$session,$form;



                
//global $session;



                /* Display information for logged in users */
                
if ($session->logged_in)
                {
                    
$uname $session->userinfo['username'];
                    
$avatar $session->userinfo['avatar'];
                    
?>
                    <a href="userinfo.php?user=<?=$uname?>" target="_top"><img src="avatars/<?=$avatar?>" width="30" height="30" alt="<?=$avatar?>" align="middle"></a>
                    Hi, <a href="userinfo.php?user=<?=$uname?>" target="_top"><b><?=$uname?></b></a><br>
                 <?php

                     
if($session->isAdmin()){
                       echo 
"[ <a href=\"admin/index.php\" target='_blank'>Admin Access</a> ] &nbsp;&nbsp;<br>";
                       } 
?>
                    <font size="2">
                    [ <a href="userinfo.php?user=<?=$uname?>" target="_top">My Account</a> ]<br>
                    [ <a href="useredit.php" target="_top">Edit Profile</a> ]        <br>
                    [ <a href="index.php?action=viewplaylist" target="_top">My Playlist</a> ]<br>
                    [ <a href="index.php?action=showallplaylists" target="_top">All Users Playlist</a> ]<br>
                    [ <a href="index.php?action=viewmailfriend" target="_top">View Songs Sent</a> ]<br>
                    [ <a href="index.php?action=top&show=5&type=Artists" target="_top">Top 5 Artist</a> ]<br>
                    [ <a href="index.php?action=top&show=10&type=Songs" target="_top">Top 10 Songs</a> ]<br>
                    [ <a href="index.php?action=upolad_songs&show=5&type=Songs" target="_top">Upload Songs</a> ]<br>
                    <?
require("admin/conf.php");
if (
$gallery_mode==1) {
   echo 
"[ <a href=\"index.php?action=upload_artist\" target=\"_top\">Upload Artist Images</a> ]<br>";
   echo 
"[ <a href=\"index.php?action=upload_album\" target=\"_top\">Upload Album Images</a> ]<br>";
}
?>
                    [ <a href="index.php?action=viewallsongs&show=5&type=Songs" target="_top">View All Songs</a> ]<br>
                    [ <a href="process.php" target="_top">Logout</a> ]
                    </font>
                    <?php
                    
}
                    else
                    {
                    
?>
                    <form action="process.php" method="POST" target="_top">
                        <? echo $form->error("user"); ?>
                        <? echo $form->error("pass"); ?>
                        Username:
                        <input type="text" name="user" maxlength="20" size='15' class="inputbox" value="<? echo $form->value("user"); ?>"><br>
                        Password:
                        <input type="password" name="pass" maxlength="20" size='15' class="inputbox" value="<? echo $form->value("pass"); ?>"><br>
                        <input type="checkbox" name="remember" checked>
                        <font size="2">
                        Remember me
                        <input type="hidden" name="sublogin" value="1">
                        <Div align=right><input class="inputbox" class="button" type="submit" value="Login"></div><br>
                        [ <a href="forgotpass.php" target="_top">Forgot Password?</a> ]<br>
                        [ <a href="register.php" target="_top">Sign-Up!</a> ]
                        </font>
                    </form>
                    <?php
                
}
            
?>


Почему вот эту вставку:

<?
require("admin/conf.php");
if (
$gallery_mode==1) {
   echo 
"[ <a href=\"index.php?action=upload_artist\" target=\"_top\">Upload Artist Images</a> ]<br>";
   echo 
"[ <a href=\"index.php?action=upload_album\" target=\"_top\">Upload Album Images</a> ]<br>";
}
?>

не хочет видеть мой php???

   
 
 автор: ddhvvn   (10.09.2007 в 22:17)   письмо автору
 
   для: Eric   (10.09.2007 в 22:11)
 

>Почему вот эту вставку:
>

><?
>require("admin/conf.php");
>if (
$gallery_mode==1) {
>   echo 
"[ <a href="index.php?action=upload_artist" target="_top">Upload Artist Images</a> ]<br>";
>   echo 
"[ <a href="index.php?action=upload_album" target="_top">Upload Album Images</a> ]<br>";
>}
>
?>
>
>
не хочет видеть мой php???

А где php?

<?
require("admin/conf.php");
if (
$gallery_mode==1) {
   echo 
"[ <a href="index.php?action=upload_artist" target="_top">Upload Artist Images</a> ]<br>";
   echo 
"[ <a href="index.php?action=upload_album" target="_top">Upload Album Images</a> ]<br>";
}
?>

Возможно у Вас просто оключен сокр вариант

   
 
 автор: Trianon   (10.09.2007 в 22:21)   письмо автору
 
   для: Eric   (10.09.2007 в 22:11)
 

как называется этот фрагмент, где именно стоит его вызов, и как он -вызов - оформлен?

   
 
 автор: Eric   (10.09.2007 в 22:28)   письмо автору
 
   для: Trianon   (10.09.2007 в 22:21)
 

Я еще не так хорошо понимаю в php,но могу обьяснить, что в файле conf.php, находится функция $gallery_mode=1, если стоит 1, то должно вставиться:

echo "[ <a href=\"index.php?action=upload_artist\" target=\"_top\">Upload Artist Images</a> ]<br>"; 
   echo "[ <a href=\"index.php?action=upload_album\" target=\"_top\">Upload Album Images</a> ]<br>"; 

если там стоит 0, то ничего!
Простой иклюд, т.е. require с небольшим условием ;)

   
 
 автор: sim5   (10.09.2007 в 22:36)   письмо автору
 
   для: Eric   (10.09.2007 в 22:28)
 

>находится функция $gallery_mode=1

Здесь $gallery_mode=1 - это указание переменной и ее значения, а не функция. Если она определяется в какой-то функции, то в условии должно быть обращение к соответсвующей функции, а не к самой переменной. Вы что-то путаете.

   
 
 автор: Eric   (10.09.2007 в 22:44)   письмо автору
 
   для: sim5   (10.09.2007 в 22:36)
 

Ну я ж ток учусь. Правильно вы меня поравили - это переменная со значением 1. Значит в данной ситуации if ($gallery_mode==1)


   echo "[ <a href=\"index.php?action=upload_artist\" target=\"_top\">Upload Artist Images</a> ]<br>"; 
   echo "[ <a href=\"index.php?action=upload_album\" target=\"_top\">Upload Album Images</a> ]<br>"; 



Но вот не втавляются эти echo :((((

   
 
 автор: sim5   (10.09.2007 в 22:49)   письмо автору
 
   для: Eric   (10.09.2007 в 22:44)
 

Ну значит она не равна 1, можете рповерить это - сразу после подключения, вместо условия и нижеследующего напишите

echo $gallery_mode

и вы увидите значение этой переменной на текущий момент. Если она прописано жестко (не определяется), то значит ошибки в другом. Следует еще учесть (мануал):


require() и include() идентичны почти во всём, за исключением того, 
как они обрабатывают неудачное выполнение. include() выдаёт Warning!, 
а require() выдаёт Fatal Error. Иначе говоря, не бойтесь использовать require(), 
если вам нужно, чтобы отсутствующий файл останавливал обработку страницы. 
include() не работает таким образом: скрипт всё равно продолжит работу. 
Убедитесь также в наличии соответствующей установки include_path.


Ищите причину, а мне спать пора.

   
 
 автор: Eric   (10.09.2007 в 22:55)   письмо автору
 
   для: sim5   (10.09.2007 в 22:49)
 

Спасибо Вам большое, буду разбираться. Я тож спать ;)))

   
 
 автор: Unkind   (10.09.2007 в 22:50)   письмо автору
 
   для: Eric   (10.09.2007 в 22:44)
 

Дык функции вроде в классе мм 5-6 проходят.
:)

   
 
 автор: Eric   (10.09.2007 в 22:56)   письмо автору
 
   для: Unkind   (10.09.2007 в 22:50)
 

По алгебре у меня было 5 все время.
Php ток недавно начал изучать.

   
 
 автор: sim5   (11.09.2007 в 08:33)   письмо автору
 
   для: Eric   (10.09.2007 в 22:56)
 

РНР, это не алгебра, и даже не арифметика, РНР - это хиромантия! Отсюда следует, что вам часто придется колдовать над кодом, ведь его листинг это только аура РНР, а к его духам придется обращаться с помощью "Книги заклинаний" - мануала, хотя бывает, что помогает просто мат (про себя, не на форуме - штраф 500 у.е.).
Мне так кажется, что в итоге вы вернетесь к проблеме свого первого топика потому, что в этом, как следует из поверхностного просмотра ауры (листинга), описывается попытка забраться в самую сущность - зарегиться, получить доступ, а уже после этого все, что далее прописано.
Сама переменная $gallery_mode, ее название (вторая часть), уже говорит о том, что она может изменяться, это логично из названия и из того, что это файл конфигурации, который изменяет Админ сайта. Я это предпологаю исходя из пути получения файла conf.php. Из всего этого следует, что запись (значение переменной) $gallery_mode=1 может модифицироваться админом, либо исходя из некоторых условий во время работы скрипта, поэтому $gallery_mode необязательно может быть равна 1 во время запуска скрипта.
Вот это и есть колдовство - вам надо проверить логику работы всего скрипта, а это уже хиромантия, работа в полной тишине и одиночестве (считайте нирвана).
Возможно, будет полезно временно заменить require() на include(), тогда (при получении ошибок) вам легче будет разобраться.

   
 
 автор: Eric   (11.09.2007 в 16:26)   письмо автору
 
   для: sim5   (11.09.2007 в 08:33)
 

Я так и предполагал. Все так и есть на самом деле. Файл conf.php это один из разделов в админке, где нужно изменять, могут юзеры закачивать картинки альбомов и исполнителя или нет(т.е. 0 или 1). Проблема действительно в require(). Что-то он не хочет вставлять эти две ссылочки. Буду разбираться!
Спасибо еще раз за быстрый ответ и за помощь ;)

   
 
 автор: sim5   (11.09.2007 в 16:31)   письмо автору
 
   для: Eric   (11.09.2007 в 16:26)
 

Навряд-ли проблема в require(). Если вы уверены, что все дело в этой вставке, то запишите эту часть кода временно так:

<? 
//require("admin/conf.php"); 
//if ($gallery_mode==1) { 
   
echo "[ <a href=\"index.php?action=upload_artist\" target=\"_top\">Upload Artist Images</a> ]<br>"
   echo 
"[ <a href=\"index.php?action=upload_album\" target=\"_top\">Upload Album Images</a> ]<br>"
//} 
?>

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

   
 
 автор: Eric   (11.09.2007 в 16:48)   письмо автору
 
   для: sim5   (11.09.2007 в 16:31)
 

Сделал так, как вы сказалии. В таком случае ссылки появляются, но на них не влияют настройки в админке. Т.е. будет стоять в админке on или off(1 или 0) ему все равно, ссылки полюбас видны. Вы правы, в чем то другом тут проблемы.

   
 
 автор: Eric   (11.09.2007 в 17:19)   письмо автору
 
   для: sim5   (11.09.2007 в 08:33)
 

Еще фигня такая, файл conf.php на изменения в админке не влияет, все данные видимо в базе храняться. В ручную пробовал менять 0 на1 и наоборот. Данные из админки попадают в в файл settings1.php и ток потом должны попасть в файл conf.php. Но этого не происходит. Файл не изменяется, а если поменять в ручную, тоже толку мало. Очень все странно.

   
 
 автор: mihdan   (11.09.2007 в 17:25)   письмо автору
 
   для: Eric   (11.09.2007 в 17:19)
 

Потому что условие убрал вот они и появились(ссылки). Видать переопределяется где-то переменная ваша.

   
 
 автор: Eric   (11.09.2007 в 17:32)   письмо автору
 
   для: mihdan   (11.09.2007 в 17:25)
 

Да с условиями то все понятно, что я их слешами убрал!!!!!
Черт, доперло до меня, я ни везде $HTTP_GET_VARS поменял на &_GET, особенно в файлах с настройками!!!!!
Теперь все вроди работает.

   
Rambler's Top100
вверх

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