We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 644
    • 2 Posts
    Добрый день, уважаемые.
    Есть вопрос: как вставить и\или что дописать в скрипте, чтобы он нормально отображался в шаблоне? Скрипт берёт инфу из удалённой базы. Пока что скрипт(либо ошибка при отсутствии соединения с базой) отображается не в шаблоне, а отдельно, полностью убрав элементы шаблона.
    <?php  
    
    // Настройка базы 
    
    $dbuser = "root"; // Пользователь  
    $dbpass = "root"; // Пароль  
    $dbhost = "127.0.0.1"; // Адресс БД  
    $dbname = "l2"; // Имя базы данных  
    
    // Настройка скрипта  
    $savedata = "true"; //Сохранять или нет пользовательские данные, пароль логин, icq , email. По умолчанию включено.  
    
    // Начало скрипта  
    $fsname = $_SERVER['SCRIPT_NAME'];  
    $msconn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Ошибка соединения");  
    MYSQL_SELECT_DB($dbname) or die ("БД не найдена");  
    if ($_GET[act]==""){  
    echo ('<center><a href="'.$fsname.'?act=registration&step=1">Регистрация</a></center>');  
    }  
    if ($_GET[act]=="registration"){  
    if ($_GET[step]=="1"){  
    echo ('<form name="form1" method="post" action="'.$fsname.'?act=registration&step=2">  
    <div align="center">  
    <table width="266" border="0" cellspacing="0" cellpadding="0">  
    <tr>  
    <td width="105" align="right">Логин</td>  
    <td width="161"><label>  
    <input name="login" type="text" id="login">  
    </label></td>  
    </tr>  
    <tr>  
    <td align="right">Пароль</td>  
    <td><label>  
    <input name="pass" type="password" id="pass">  
    </label></td>  
    </tr>  
    <tr>  
    <td align="right">Повтор</td>  
    <td><label>  
    <input name="repeat" type="password" id="repeat">  
    </label></td>  
    </tr>  
    <tr>  
    <td align="right">ICQ</td>  
    <td><label>  
    <input name="icq" type="text" id="icq">  
    </label></td>  
    </tr>  
    <tr>  
    <td align="right">E-mail</td>  
    <td><label>  
    <input name="email" type="text" id="email">  
    </label></td>  
    </tr>  
    <tr>  
    <td align="right"><label>  
    <input type="reset" name="Submit2" value="Сброс">  
    </label></td>  
    <td align="center"><label>  
    <input type="submit" name="Submit" value="Регистрация">  
    </label></td>  
    </tr>  
    </table>  
    </div>  
    </form>  
    <p> </p>  
    ');  
    }  
    if ($_GET[step]=="2"){  
    $login = $_POST[login];  
    $pass = $_POST[pass];  
    $pass2 = $_POST[repeat];  
    $icq = $_POST[icq];  
    $email = $_POST[email];  
    if ($login == "") {  
    echo ("<center>Вы не ввели логин</center>");  
    }else{  
    if ($pass == "") {  
    echo ("<center>Пароль не может быть пустым</center>");  
    }else{  
    if ($pass == $pass2) {  
    $q = mysql_query("SELECT * FROM accounts WHERE login='{$login}'");  
    if(!mysql_numrows($q) > "0") {  
    $gamepass = base64_encode(pack("H*", sha1(utf8_encode($pass))));  
    mysql_query("INSERT INTO accounts(login, password, lastactive, access_level) VALUES('$login' , '$gamepass', '$lastactive', '0')");  
    if ($savedata == "true") {  
    mysql_query("INSERT INTO account_info(login, password, icq, email) VALUES('$login' , '$pass', '$icq', '$email')");  
    }  
    echo ("<center>Аккаунт <font color='red'>".$login."</font> успешно зарегистрирован</center>");  
    } else {  
    echo ("<center>Имя <font color='red'>".$login."</font> уже зарегистрировано, попробуйте другое.</center>");  
    }  
    }else {  
    echo ("<center>Пароли не совпадают</center>");  
    }  
    }  
    }  
    }  
    }  
    ?>
      • 20380
      • 118 Posts
      В каком смысле "скрипт"? Это сниппет? По-нормально это должно быть сниппет, вызываемый на странице, как я понимаю.
        • 785
        • 2,113 Posts
        Кстати скрипт небезопасен с точки зрения SQL инъекций.
          Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
          Статьи о MODx, регулярно новые публикации
          • 9085
          • 630 Posts
          Видимо, ожидается ответ вроде:

          1. создать сниппет (Меню-элементы-сниппеты) myscript (в который вставить нужный код, или include ’myfile.php’;)
          2. создать страницу (искать в меню с деревом) с нужным шаблоном, в которой прописать [!myscript!]

          ps. предположительно, версия Evo..
          pps. Наверное, не помешает прочитать про базовые понятия МОДх
            Правильно заданный вопрос повышает вероятность получения нужного ответа.
            Что-то не работает? Загляните в лог ошибок!
            Есть проблема? "Локализуйте" её!
            Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
            • 644
            • 2 Posts
            Ну этот код, собственно, и находится в сниппете. Вызывается на нужной странице. При отсутствии соединения с базой, к которой скрипт обращается, шаблон слетает.
            Если бы всё было так просто, то я бы не спрашивал.
              • 785
              • 2,113 Posts
              Quote from: agrip666 at Oct 16, 2010, 04:45 AM

              При отсутствии соединения с базой, к которой скрипт обращается, шаблон слетает.
              А что ожидалось? Возникает ошибка PHP и программа на сервере аварийно завершается. Если хотите, чтобы работа программы продолжалась, обрабатывайте ошибку.
                Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                Статьи о MODx, регулярно новые публикации
                • 9085
                • 630 Posts
                $msconn = mysql_connect($dbhost, $dbuser, $dbpass) or die (’...’);
                grin вот скрипт и "умирает" )))
                  Правильно заданный вопрос повышает вероятность получения нужного ответа.
                  Что-то не работает? Загляните в лог ошибок!
                  Есть проблема? "Локализуйте" её!
                  Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx