Как вставить PHP код? при выполнении перебрасывает на главную.

Главные вкладки

Аватар пользователя dimetrius dimetrius 1 ноября 2009 в 15:57

Добрый день.
Сразу скажу что только учусь.

Есть скрипт

<?php
    preg_match
("/.*\/(.*\.php)/"$_SERVER['PHP_SELF'], $match);
    
$PHP_SELF $match[1];
    
    if (isset(
$_POST['subnet']))
    {
        
settype($_POST['subnet'], "integer");
        if (
$_POST['subnet'] <|| $_POST['subnet']>255)
        {
            
header("location: " $PHP_SELF);
        }
        else
        {
            
header("Content-Type: cmd/plain");
            
header("Content-Disposition: attachment; filename=route_for_".$_POST['subnet']."_subnet.cmd;");
            echo 
"echo off\r\n";
            echo 
"route -f\r\n";
            echo 
"route add -p 192.168.0.0 MASK 255.255.0.0 192.168." $_POST['subnet'] . ".254\r\n";
            echo 
"pause\r\n";
        }
    }
    else
    {
        echo 
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
        <html>
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
                <title>Маршрутизация для сети....</title>
            </head>
            <body>
            <img src="../sites/default/files/route.PNG" align="right" alt="Пример, как узнать подсеть" />
            <center><b>Эта страница предназначена только для пользователей сети <a target="_blank" href="/">такой-то</a>!!!</b></center>
                <ul>
                    <li>Введите свою подсеть.</li>
                    <li>Нажмите кнопку "Сгенерировать".</li>
                    <li>Скачайте, полученый файл.</li>
                    <li>Запустите его! (Если вы используете <strong>Windows Vista</strong>, или <strong>Windows 7</strong>, запустите файл от имени администратора.)</li>
                    <li>Перезагрузите компьютер.</li>
                </ul>
                <form action="'
.$PHP_SELF .'" method="post">
                    <label for="subnet">Подсеть: </label> <input type="text" name="subnet" value="" id="subnet" />
                    <input type="submit" value="Сгенерировать" name="submit" id="submit" />
                </form><p>
                <div>Спасибо ...</div></p></br>
                <p align="center">
                    <a href="http://example.com" target="_self">http://example.com</a></br>
 <center>
 <blockquote class="style4"><span><b>Роутинг</b> – это набор команд, которые прописываются в статическую таблицу маршрутизации, оптимизируя процесс нахождения оптимального маршрута до указанного сервера сети. Он используется для того, чтобы вы не тратили на локальные ресурсы трафик Интернет. Центральные сервера нашей сети, такие как ftp, radio и другие, доступны только при отключенном Интернет-соединении. Если вы хотите воспользоваться данными ресурсами при включенном Интернет-соединении, вам необходимо прописать маршрут до наших серверов. Если вы этого не сделаете, существует опасность того, что вам придется платить деньги за лишний трафик.</span></blockquote>

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

;
    }
?>

Вставляю в страницу через PHP code, на отдельной странице этот код работает замечательно. А при вставке в страницу Drupal'а при нажатии кнопки "Сгенерировать" перебрасывает на главную страницу, если есть какие-то статьи на главной, а если нет статей, то говорит: Запрашиваемая страница не найдена

будут ли у кого рабочие мысли?

Комментарии

Аватар пользователя Ulitiy Ulitiy 1 ноября 2009 в 16:13

Проверьте в html коде, что у вас в форме правильно получился action. Подозреваю, что неверно присвоился $PHP_SELF. Сделайте die значения $PHP_SELF после присваивания, если там действительно action=''.

Аватар пользователя Ulitiy Ulitiy 1 ноября 2009 в 16:48

Вот ваша ошибка:

                                <form action="index.php" method="post">

Вы используете чистые ссылки. Однако этот скрипт не предназначен для того чтобы использоваться вместе с drupal, его надо модифицировать, а конкретно - вручную прописать action="здесь адрес вашей ноды". Пока только это вижу. Наверняка, появятся другие косяки, когда это изменится. Лучше попросите своего программиста чтобы он сам приделал.