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

Форум PHP

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

 

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

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

тема: Скрип и глобальные переменные.
 
 автор: Gubichev   (04.09.2009 в 14:09)   письмо автору
 
 

Всем привет. У меня следующая проблема... Есть скрипт гостевой книги, который НЕ работает у меня на сервере без PHP.ini с REGISTER-GLOBALS. НО у меня на странице скрипт который работает только без без PHP.ini с REGISTER-GLOBALS.
Так вот вопрос. Можно ли отключить REGISTER_GLOBALS для определённого скрипта?

  Ответить  
 
 автор: Sergeich   (04.09.2009 в 14:54)   письмо автору
 
   для: Gubichev   (04.09.2009 в 14:09)
 

нельзя, или для всего сервера со всеми файлами, или переписать просто скрипт. Второй вариант оптимальнее - мало ли какие там у Вас еще скрипты есть что они требуют?

  Ответить  
 
 автор: Gubichev   (04.09.2009 в 15:07)   письмо автору
 
   для: Sergeich   (04.09.2009 в 14:54)
 

В скрипте переменных столько, что я буду их исправлять год.... вот к примеру:

<?php
session_start
();

error_reporting(0);
include (
"config.inc.php");
if (!isset(
$messref)) $messref=0;
function 
replace ($string,$id)
{
        global 
$exech;
        
$string " ".$string;
        if (
$id=="answ")
        {
        
$string eregi_replace ("[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*","<a href=\"mailto:\\0\" class=answ>\\0</a>"$string);
        
$string eregi_replace ('([[:space:]]|\n|<br>)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)''\\1<a href="http://\\2" target="_blank" class=answ>\\2</a>'$string);
        
$string eregi_replace ('([[:space:]]|\n|<br>)(http://.[-a-zA-Z0-9@:%_\+.~#?&//=]+)''\\1<a href="\\2" target="_blank" class=answ>\\2</a>'$string);
        }
        else if (
$id=="dark")
        {
        
$string eregi_replace ("[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*","<a href=\"mailto:\\0\" class=dark>\\0</a>"$string);
        
$string eregi_replace ('([[:space:]]|\n|<br>)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)''\\1<a href="http://\\2" target="_blank" class=dark>\\2</a>'$string);
        
$string eregi_replace ('([[:space:]]|\n|<br>)(http://.[-a-zA-Z0-9@:%_\+.~#?&//=]+)''\\1<a href="\\2" target="_blank" class=dark>\\2</a>'$string);
        }
        else
        {
        
$string eregi_replace ("[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*","<a href=\"mailto:\\0\">\\0</a>"$string);
        
$string eregi_replace ('([[:space:]]|\n|<br>)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)''\\1<a href="http://\\2" target="_blank">\\2</a>'$string);
        
$string eregi_replace ('([[:space:]]|\n|<br>)(http://.[-a-zA-Z0-9@:%_\+.~#?&//=]+)''\\1<a href="\\2" target="_blank">\\2</a>'$string);
        }
        
$string eregi_replace ('(\[img\])(http://.[-a-zA-Z0-9@:%_\+.~#?&//=]+)(\[/img\])''<img src="\\2">'$string);
        
$autochange file ($exech);
        
$lines count ($autochange);
        for(
$i=0;$i<$lines;$i++)
                {
                list(
$change1,$change2)=explode("|"$autochange[$i]);
                
$string eregi_replace("$change1","$change2",$string);
                }
        return 
trim($string);
}

function 
replace_short ($string)
        {
        global 
$exech;
        
$string " ".$string;
        
$autochange file ($exech);
        
$lines count ($autochange);
        for(
$i=0;$i<$lines;$i++)
                {
                list(
$change1,$change2)=explode("|"$autochange[$i]);
                
$string eregi_replace("$change1","$change2",$string);
                }
        return 
trim($string);
        }

function 
cutty ($string)
        {
        
$string trim($string);
        
$string stripslashes($string);
        
$string str_replace ("<""&lt;"$string);
        
$string str_replace (">""&gt;"$string);
        
$string ereg_replace ('\\\"'"&quot;"$string);
        
$string ereg_replace ("\\\'""&quot;"$string);
        
$string ereg_replace ("\&quot;""&quot;"$string);
        
$string ereg_replace ("\'""'"$string);
        
$string ereg_replace ("'""`"$string);
        
$string str_replace ("\r"""$string);
        
$string str_replace ("\n""<br>"$string);
        
$string str_replace ("%""&#37;"$string);
        
$string str_replace ("!""&#33;"$string);
        
$string str_replace ("^ +"""$string);
        
$string str_replace (" +$"""$string);
        
$string str_replace ("|""l"$string);
        return (
$string);
        }

function 
getHTMLtags($text)
    {
    
$text str_replace("","<strong>",$text);
    
$text str_replace("
"
,"</strong>",$text);
    
$text str_replace("","<i>",$text);
    
$text str_replace("
","</i>",$text);
    
$text str_replace("[font=red]","<font color=ff0000>",$text);
    
$text str_replace("[font=blue]","<font color=003399>",$text);
    
$text str_replace("[/font]","</font>",$text);
    return 
$text;
    }

function 
cutHTMLtags($text)
    {
    
$text str_replace("","",$text);
    
$text str_replace("
","",$text);
    
$text str_replace("","",$text);
    
$text str_replace("
","",$text);
    
$text str_replace("[font=red]","",$text);
    
$text str_replace("[font=blue]","",$text);
    
$text str_replace("[/font]","",$text);
    return 
$text;
    }
function 
mydate($date)
        {
        
$min date ($date);
        
$date getdate ($date);
        
$mymon = array ("","01","02","03","04","05","06","07","08","09","10","11","12");
        
$m $date[mon];
        
$myday = array( "","","","","","","");
        
$d $date[wday];
        
$real_month $mymon[$m];
        if (
$real_month==""$real_month="декабря";
        
$date "".$myday[$d].$date[mday].".$real_month.".$date[year]";
        return 
$date;
        }

if (isset(
$name) and $name != "") { setcookie("cookname",cutty($name),time()+15552000); }
if (isset(
$mail) and $mail != "") { setcookie("cookmail",cutty($mail),time()+15552000); }
if (isset(
$url) and $url != "") { setcookie("cookurl",cutty($url),time()+15552000); }
if (isset(
$city) and $city != "") { setcookie("cookcity",cutty($city),time()+15552000); }

if (!isset(
$add)):
        if (!isset(
$cookname)) { $cookname ""; }
        if (!isset(
$cookmail)) { $cookmail ""; }
        if (!isset(
$cookurl)) { $cookurl ""; }
        if (!isset(
$cookcity)) { $cookcity ""; }
        if (!isset(
$name) or $name == "") { $name $cookname; }
        if (!isset(
$mail) or $mail == "") { $mail $cookmail; }
        if (!isset(
$url) or $url == "") { $url $cookurl; }
        if (!isset(
$city) or $city == "") { $city $cookcity; }
        if (!isset(
$mess) or $mess == ""
            {
                if (isset(
$_COOKIE['cookmess'])&&$messref==1)
                {
                    
$mess $_COOKIE['cookmess'];
                    
$_COOKIE['cookmess'] = "";
                }
            }
endif;

function 
mess($name,$mess,$mail,$url,$city,$date,$answer)
        {
        global 
$BORDER$DARK$LIGHT$ANSW$anti_email$PICHEIGHT$PICWIDTH;
        if ((
$mail!="")&&($anti_email<>"yes"))
        {
            
$mess_mail replace($mail,"dark");
        }
        else if ((
$mail!="")&&($anti_email=="yes"))
        {
            list(
$mm2,$mm1) = explode("@"$mail);
            
$mess_mail "<a href=\"javascript:;\"  onClick=\"openBrWindow('send_mail.php?mm1=$mm1&mm2=$mm2','send_mail','scrollbars=no,resizable=yes,width=420,height=270');return false;\"><img src=\"mail.php?mm1=$mm1&mm2=$mm2\" align=\"absmiddle\" border=0 /></a>";
        }

        
 echo 
"\n<table border=0 width=500 align=center cellspacing=0 cellpadding=0 bordercolor=000000>
<tr><td width=150 align=center valign=top><font size=2 color=FF0000>
$name:<br></font><font size=1>".mydate($date)."</font></td>
<td width=350><font size=2>
$mess<br><br><br><br></td>
</tr>\n"
;


if(!(
$answer=="")) {
                echo 
"<tr><td width=150 align=center valign=top><font size=2 color=FF0000>Ответ:</font></td>";
                echo 
"<td>$answer<br><br>";
                echo 
"</td></tr>\n"; }


echo 
"</table>\n";

        echo 
"<table border=0 cellpadding=0 cellspacing=0 width=500 height=10 align=center><tr><td height=4><hr width=100%></td></tr></table>\n";
        }
        if (
getenv('HTTP_X_FORWARDED_FOR')) { $ip=getenv('HTTP_X_FORWARDED_FOR'); }
        else { 
$ip=getenv('REMOTE_ADDR');}

if (isset(
$add)):
        if ((isset(
$name) && $name == "") || (isset($mess) && cutHTMLtags($mess) == "")) { $error[] = "Вы заполнили не все обязательные поля."; }
        if (isset(
$name) && strlen($name) > $maxword) { $error[] = "Имя должно быть не длиннее $maxmail символов."; }
        if (isset(
$mail) && strlen($mail) > $maxmail) { $error[] = "Адрес e-mail не должен превышать $maxmail символов."; }
        if (isset(
$mail) && $mail != "" && !eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$",$mail)) { $error[] = "Неверный e-mail."; }
        if (isset(
$mess) && strlen($mess) > $maxlenght) { $error[] = "Сообщение не должно превышать $maxlenght символов."; }
        if (isset(
$mess) && eregi("[^ ]{".$maxword.",}",$mess)) { $error[] = "Слова в сообщении не должны превышать $maxword символов."; }
        
$data_array file("$data");
        
$cnt count($data_array) - 1;
        
$ch_name cutty($name);
        
$ch_mess cutty($mess);
        for (
$i $cnt$i >= 0$i--)
                {
                list(
$cname,$cmess,$cmail,$curl,$ccity,$cdate,$canswer) = explode("|"$data_array[$i]);
                
$check "$ch_name|$ch_mess";
                if(
$check == "$cname|$cmess") { $error[] = "Такое сообщение уже есть!."; }
                }
        
$temp_string $mess;

endif;

$banip=file("$banlist");
$banlines=count($banip);
for(
$i=0;$i<$banlines;$i++)
        {
        list(
$badip,$why,$who)=explode("|"$banip[$i]);
        if(
strstr($ip,$badip))
        {
                include(
"$header");
                echo 
"<table width=1 border=0 cellspacing=0 cellpadding=0 class=p align=center><tr><td align=center>";
                echo 
"<table width=300 bgcolor=$BORDER border=0 cellspacing=1 cellpadding=3 class=p><tr><td bgcolor=#FF0000 align=center style=\"color:#FFFFFF\"><b>Доступ запрещен!</b></td></tr>";
                echo 
"<tr><td bgcolor=$LIGHT align=center>Для Вас консультация закрыта.<br>Причина: $why</td></tr></table>";
                include(
"$footer");
                exit;
        }
        if ((
cutty($name)==cutty($who))&&(cutty($name)<>"")) { $error[] = "Вам запрещено добавлять сообщения. Причина: $why"; }
        }

if (
$name != "" && $mess != "" && isset($add) && $error == "")
{
    include(
"write.php");
    exit;
}

include(
"$header");
echo 
"<table border=0 cellspacing=0 cellpadding=0 class=p align=center><tr><td align=center>";

if (
$name != "" && $mess != "" && isset($add) && $error == ""):
elseif (isset(
$error) &&  $error != ""):
        echo 
"<table width=\"350\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"$BORDER\">";
        echo 
"<tr><td align=\"center\" class=\"error\" bgcolor=\"#c9c9c9\"><b>Ошибка!</b></td></tr>";
        echo 
"<tr><td align=\"left\" class=\"p\" bgcolor=\"$LIGHT\">";
        foreach (
$error as $value)
                {
                echo 
"<li>$value<br>";
                }
        echo 
"</td></tr>";
        echo 
"</table>";
        echo 
"<table border=0 cellpadding=0 cellspacing=0 width=500 height=4><tr><td height=4></td></tr></table>";
endif;

if (!
eregi("\%"$TABWIDTH)) $SENDWIDTH $TABWIDTH-300;
else 
$SENDWIDTH 300;
include(
"$send_form");

$file_array file("$data");
$lines count($file_array);

if (!isset(
$page)) { $page 1; }

function 
getPages($total$page$link$perpage)
        {
        
$mpp $perpage;
        
$prev_page $page 1;
        
$next_page $page 1;
        if (
$total <= $mpp$pages 1;
        elseif(
$total $mpp == 0$pages $total $mpp;
        else 
$pages $total $mpp 1;
        
$pages = (int) $pages;
        
$s_pages    $page<floor($page 7) * 7;
        
$e_pages    $page 6;
        if (
$e_pages $pages) { $e_pages $pages; }
        
$s "";
        if (
$pages 6){
        if(
$prev_page != 0) { $s "<a href=\"".$link."page=1\" class=\"mid\"> &lt;&lt; </a>| \n"; }
        if(
$prev_page) { $s .= "<a href=\"".$link."page=$prev_page\" class=\"mid\"> &lt; </a>| \n"; }}
        for(
$i=$s_pages;$i<=$e_pages;$i++)
                {
                if (
$i != $page) { $s .= "<a href=\"".$link."page=$i\" class=\"mid\"> $i </a>| \n"; }
                elseif (
$i != 1) { $s .= " <b> $i |</b> "; }
                elseif (
$page != $pages) { $s .= " <b> 1 |</b> "; }
                }
        if(
$page != $pages && $pages 6)
                {
                
$s .= "<a href=\"".$link."page=$next_page\" class=\"mid\"> &gt; </a>| \n";
                
$s .= "<a href=\"".$link."page=$pages\" class=\"mid\"> &gt;&gt; </a>| \n";
                }
        if (!isset(
$s) || $s == "") { $s " <b> 1 |</b> "; }
        return 
$s;
        }
$print_pages getPages($lines$page"$PHP_SELF?"$maxmess);

echo 
"<br><br><table bgcolor=$BORDER border=0 cellpadding=2 cellspacing=1 width=500 align=center><tr><td bgcolor=$LIGHT align=center><b><font size=1>Страницы : |$print_pages</font></b></td></tr></table>";
echo 
"<table border=0 cellpadding=0 cellspacing=0 width=500 height=4><tr><td height=4></td></tr></table>";

$from $lines - ($page $maxmess 1);
$to $lines - (($page 1) * $maxmess);
if(
$from 0) { $from 1; }

for(
$i $to 1$i >= $from 1$i--)
        {
        list(
$name,$mess,$mail,$url,$city,$date,$answer) = explode("|"$file_array[$i]);
        if(!(
$name==""&&$mess=="")):
                
$name replace_short($name);
                
$mess replace($mess,"light");
                
$mess getHTMLtags($mess);
                
$url replace($url,"dark");
                
$city replace_short($city);
                
$answer replace($answer,"answ");
                
mess($name,$mess,$mail,$url,$city,$date,$answer);
        endif;
        }

echo 
"<table bgcolor=$BORDER border=0 cellpadding=2 cellspacing=1 width=500 align=center><tr><td bgcolor=$LIGHT class=pmid align=center><b><font size=1>Страницы : |$print_pages</font></b></td></tr><tr><td bgcolor=$LIGHT class=pmid align=center><b><font size=1>Всего сообщений : $lines</font></b></td></tr></table><a href=admin.php><br><br><font color=ffffff>Администрирование</font></a>";
include(
"$footer");
?>

  Ответить  
 
 автор: Sergeich   (04.09.2009 в 15:11)   письмо автору
 
   для: Gubichev   (04.09.2009 в 15:07)
 

А сколько их может быть в других скриптах, которые могут требовать другого?

  Ответить  
 
 автор: Gubichev   (04.09.2009 в 15:20)   письмо автору
 
   для: Sergeich   (04.09.2009 в 15:11)
 

Второй скрипт довольно короткий

<?php
/*
Название скрипта: Скрипт формы обратной связи на PHP
Версия скрипта: v3.0
Автор: FlashRipper
Домашняя страница автора: http://flashripper.net/
Лицензия: Creative Commons 3.0 License
Примечание на использование скрипта: Вы можете спокойно использовать данный скрипт, но размещять на своих ресурсах без оставления копирайта автора категорически запрещено. Вы должны сохранить эти строчки:
Автор скрипта: FlashRipper
Домашняя страница автора: http://flashripper.net/
 */
include('kcaptcha/kcaptcha.php');
session_start();
require_once(
"config.php");


if (
$_POST['act']== "y")
{
    if(isset(
$_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] ==  $_POST['keystring'])
    {
        
        if (isset(
$_POST['posName']) && $_POST['posName'] == "")
        {
         
$statusError "$errors_name";
        }
        elseif (isset(
$_POST['posEmail']) && $_POST['posEmail'] == "")
        {
         
$statusError "$errors_mailfrom";
        }  
        elseif (isset(
$_POST['posRegard']) && $_POST['posRegard'] == "")
        {
         
$statusError "$errors_subject";
        }
        elseif (isset(
$_POST['posText']) && $_POST['posText'] == "")
        {
         
$statusError "$errors_message";
        }

elseif (!empty(
$_POST))
{   

 
$headers .= "Дата: ".date("Y-m-d (H:i:s)",time())."\r\n";
 
$headers .= "Имя: ".$_POST['posName']."\r\n";
 
$headers .= "Телефон: ".$_POST['posEmail']."\r\n";
 
$headers .= "Сообщение: ".$_POST['posText']."\r\n";


 
mail("$mailto","$subject","$headers");

 unset(
$name$posText$mailto$subject$posRegard$message);

 
$statusSuccess "$send";
}

       }else{
             
$statusError "$captcha_error";
             unset(
$_SESSION['captcha_keystring']);
        }
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Обратная связь</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <link href="style/main.css" rel="stylesheet" type="text/css" media='screen,projection' />
    
</head>
<body><center>
    
        <p id="emailSuccess">
        <strong style="color:green;"><?php echo "$statusSuccess?></strong>
    </p>
<p id="emailError">
        <strong style="color:red;"><?php echo "$statusError?></strong>
    </p><br><br>
<form>
<INPUT TYPE="button" VALUE="Вернуться Назад" onClick="history.go(-1)">
</form>

</center>
</body>
</html>


Но тут подключается kcaptcha которую видимо также нужно переписывать.
В нете находил строки вроде:


for ($i=0; $i<count($_POST); $i++) {list($key,$val)=each($_POST);$$key=$val;};
for ($i=0; $i<count($_GET); $i++) {list($key,$val)=each($_GET);$$key=$val;};

или

extract($_REQUEST)

Но всё равно с ними скрипт нормально не работает..

  Ответить  
 
 автор: @ndry   (05.09.2009 в 01:12)   письмо автору
 
   для: Gubichev   (04.09.2009 в 15:20)
 

Код ужасен, не используйте это.

  Ответить  
 
 автор: Trianon   (04.09.2009 в 15:38)   письмо автору
 
   для: Gubichev   (04.09.2009 в 15:07)
 

выкиньте.

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

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