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

Форум PHP

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

 

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

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

тема: Не работают скрипты PHP на сервере
 
 автор: Cergio777   (29.07.2005 в 12:01)   письмо автору
 
 

Приветствую. Не так давно столкнулся с проблемой по работе PHP скриптов. Сам я не дурак, и уже около 3х лет изучаю Веб-дизайн, Фотошоп и всё, что с этим связано. Недавно захотел так же изучить и PHP, но столкнулся со следующей проблемой : на одном хосте скрипт работает, а на другом нет ( Хотя оба хоста поддерживают Мускул и ПХП

У меня есть сайт, который работает довольно давно. Понадобилось сделать на него форму заказа, т.е. установить простейший скрипт форма-почтой. Сам сайт написан под PHP 3 , но на серваке стоит версия 4.3 или что-то подобное.

Перепробовал массу скриптов, перерыл множество настроек, но ни один из скриптов даже не захотел работать. Сайт написан на PHP, страницы генерируются через PHP Nuke.

Вопросов в общем то три :
1. Почему может не работать скрипт (все разрешения Chmod поставил 777, htaccess вообще пустой, разрешения для папок тоже 777).

2. Не могу зайти в систему админки, т.е. когда набираю сайт/admin.php меня переносит на index.php

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

Огромная просьба - помогите решить эту проблему, буду премного благодарен.

   
 
 автор: cheops   (29.07.2005 в 12:11)   письмо автору
 
   для: Cergio777   (29.07.2005 в 12:01)
 

А расширения у файлов какие php, phtml, php3?

   
 
 автор: [CHOL]Scorpion   (29.07.2005 в 12:24)   письмо автору
 
   для: cheops   (29.07.2005 в 12:11)
 

А используемые переменные какие??? посмотри что у тебя в настройках register_globals. Права 777 это ты зря, очень зря. 644 на подключаемые модули и 755 на исполняемые файлы было бы вполне достаточно. На папки конечно 755.

   
 
 автор: Cergio777   (31.07.2005 в 02:22)   письмо автору
 
   для: [CHOL]Scorpion   (29.07.2005 в 12:24)
 

Все файлы с расширением .php , пробовал так же и phtml, но всё равно полный штиль. Хотелось бы поподробнее узнать, что за настройики register_global, т.е. где лежат, и с чем их есть. Я человек неопытный, и могу не знать элементарных вещей. Направьте меня на нужный путь плиз )

   
 
 автор: cheops   (31.07.2005 в 11:58)   письмо автору
 
   для: Cergio777   (31.07.2005 в 02:22)
 

Подробнее об этой настройке можно почитать в статье по ссылке http://www.softtime.ru/info/articlephp.php?id_article=13, а в теме http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1309 рассказывается о причинах, почему сообщество PHP-разработчиков отказывается от прямой передачи параметров методов GET, POST непосредственно в переменные PHP.

   
 
 автор: Cergio777   (31.07.2005 в 20:31)   письмо автору
 
   для: cheops   (31.07.2005 в 11:58)
 

Сенкью, теперь я стал на один шаг ближе к профессионалам. НО есть ещё один вопрос : как сделать так, чтобы когда я заходил в систему админки (admin.php) меня не перекидывало на index.php ?

   
 
 автор: Киналь   (31.07.2005 в 21:58)   письмо автору
 
   для: Cergio777   (31.07.2005 в 20:31)
 

Почитайте admin.php. Там либо есть комментарии, либо что-то типа

if ( ...  )
   die("<meta http-equiv=refresh content='index.php'>");
//или
   Header("index.php");

Посмотрите. что написано в скобках. Там причина выкидывания=)

   
 
 автор: Alex.W   (31.07.2005 в 23:26)   письмо автору
 
   для: Cergio777   (31.07.2005 в 20:31)
 

1. Ну сначала, наверное посмотри phpinfo твоегшо хостера, что у него там и по чем, т.е. создай новый файлик например phpinfo.php В него вставь вот этот код:
<?
phpinfo();
?>
загрузи его куда нибудь на сервер и запусти этот файлик через браузер и ты получишь всю инфу относительно сервера твоего хостера и настроек php т.к. без этих результатов, что то трудно тебе советовать

   
 
 автор: Cergio777   (31.07.2005 в 23:42)   письмо автору
 
   для: Alex.W   (31.07.2005 в 23:26)
 

Сделал, как ты сказал, но пока всё ещё далёк от результата. К сожалению я ничерта не понимаю в этих функциях. Единственное, что я заметил, так это то, что включил регистр_глобал. Посмотри на файл конфы, может это ключ для решения проблемы. В админке ничего похожего не нашёл, возможно просто невнимательно смотрел или там "синоним"

   
 
 автор: Cergio777   (31.07.2005 в 23:44)   письмо автору
 
   для: Cergio777   (31.07.2005 в 23:42)
 

Могу высказать свои предположения, насчёт выкидывания на индекс. Возможно стоит запрет по айпи или куки записан только на один комп. С работы я могу запросто заходить, а с домашнего - *... Если это так - то как разрешить спор мирным путём ?

   
 
 автор: JC_Piligrim   (01.08.2005 в 13:57)   письмо автору
 
   для: Cergio777   (31.07.2005 в 23:44)
 

У меня, когда начинал изучать PHP, и сразу стал ковырять Нюку, тоже были такие глюки. Проблема, насколько помню, заключалась в запрете сохранения cookie файерволом. Дома файервол стоит?

   
 
 автор: Гость   (01.08.2005 в 14:46)   письмо автору
 
   для: Cergio777   (31.07.2005 в 23:44)
 

Выложи примерно 50 первых строк файла admin.php... наверника в них будет видо проблему

   
 
 автор: Cergio777   (02.08.2005 в 00:59)   письмо автору
 
   для: Гость   (01.08.2005 в 14:46)
 

выкладываю ниже первые 50 строк файлa admin.php :

<?php

@include("./includes/ipbanadm.php");

define('ADMIN_FILE', true);
if($aid AND (!isset($admin) OR empty($admin)) AND $op!='login') {
unset($aid);
unset($admin);
echo "Access denied";
die();
}

@require_once("mainfile.php");

$checkurl = $_SERVER['REQUEST_URI'];
if((stripos_clone($_SERVER["QUERY_STRING"],'AddAuthor')) || (stripos_clone($_SERVER["QUERY_STRING"],'VXBkYXRlQXV0aG9y')) || (stripos_clone($_SERVER["QUERY_STRING"],'QWRkQXV0aG9y')) || (stripos_clone($_SERVER["QUERY_STRING"],'UpdateAuthor')) || (preg_match("/\?admin/", "$checkurl")) || (preg_match("/\&admin/", "$checkurl"))) {
die("Illegal Operation");
}
get_lang(admin);

function create_first($name, $url, $email, $pwd, $user_new) {
global $prefix, $db, $user_prefix;
$first = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_authors"));
if ($first == 0) {
$pwd = md5($pwd);
$the_adm = "God";
$db->sql_query("INSERT INTO ".$prefix."_authors VALUES ('$name', '$the_adm', '$url', '$email', '$pwd', '0', '1', '')");
if ($user_new == 1) {
$user_regdate = date("M d, Y");
$user_avatar = "gallery/blank.gif";
$commentlimit = 4096;
if ($url == "http://") { $url = ""; }
$db->sql_query("INSERT INTO ".$user_prefix."_users (user_id, username, user_email, user_website, user_avatar, user_regdate, user_password, theme, commentmax, user_level, user_lang, user_dateformat) VALUES (NULL,'$name','$email','$url','$user_avatar','$user_regdate','$pwd','$Default_Theme','$commentlimit', '2', 'russian','D M d, Y g:i a')");
}
login();
}
}

global $admin_file;
$the_first = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_authors"));
if ($the_first == 0) {
if (!$name) {
@include("header_adm.php");
title("$sitename: "._ADMINISTRATION."");
OpenTable();
echo "<center><b>"._NOADMINYET."</b></center><br><br>"
."<form action=\"".$admin_file.".php\" method=\"post\">"
."<table border=\"0\">"
."<tr><td><b>"._NICKNAME.":</b></td><td><input type=\"text\" name=\"name\" size=\"30\" maxlength=\"25\"></td></tr>"
."<tr><td><b>"._HOMEPAGE.":</b></td><td><input type=\"text\" name=\"url\" size=\"30\" maxlength=\"255\" value=\"http://\"></td></tr>"
."<tr><td><b>"._EMAIL.":</b></td><td><input type=\"text\" name=\"email\" size=\"30\" maxlength=\"255\"></td></tr>"
."<tr><td><b>"._PASSWORD.":</b></td><td><input type=\"password\" name=\"pwd\" size=\"11\" maxlength=\"10\"></td></tr>"
."<tr><td colspan=\"2\">"._CREATEUSERDATA." <input type=\"radio\" name=\"user_new\" value=\"1\" checked>"._YES."&nbsp;&nbsp;<input type=\"radio\" name=\"user_new\" value=\"0\">"._NO."</td></tr>"
."<tr><td><input type=\"hidden\" name=\"fop\" value=\"create_first\">"
."<input type=\"submit\" value=\""._SUBMIT."\">"
."</td></tr></table></form>";
CloseTable();
@include("footer_adm.php");
}
switch($fop) {
case "create_first":
create_first($name, $url, $email, $pwd, $user_new);
break;
}
die();


ВСЕГО В КОДЕ 554 СТРОКИ!

   
 
 автор: Киналь   (02.08.2005 в 09:38)   письмо автору
 
   для: Cergio777   (02.08.2005 в 00:59)
 

Здесь, вроде бы. нигде нет именно перекидывания на index.php. Есть только

f($aid AND (!isset($admin) OR empty($admin)) AND $op!='login') {
unset($aid);
unset($admin);
echo "Access denied";
die();
}

Должна появиться просто надпись Access denied. Возможно. такое перекидывание имеется в файле ./includes/ipbanadm.php. Там же определяется переменная $admin, которая и определяет. пускать вас в админку или нет=), а также переменные $aid и $op, которые тоже влияют на доступ. ($op - это, наверное, GET-параметр). Давайте теперь ./includes/ipbanadm.php ;-) Или посмотрите его сами. Загвоздка. скорее всего, там.

   
 
 автор: Cergio777   (03.08.2005 в 00:51)   письмо автору
 
   для: Киналь   (02.08.2005 в 09:38)
 

<?php


global $prefix, $db;
$ip = $_SERVER["REMOTE_ADDR"];

if (!stristr($ip, "127.0.0.1") && !stristr($ip, "82.211.") && !stristr($ip, "192.168.207.30") && !stristr($ip, "195.12.30."))
{
Header ("Location: index.php");
die();
}

?>

:)))))) Даже мне стало понятно, что это запрет по айпи ) Большое спасибо, осталось только вписать свой. Хотелось бы узнать, как можно грамотно его добавить 8-(

   
Rambler's Top100
вверх

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