Имею 2 файла index.php: Code: <form action="enter.php" method="post" name="form1 " target="_blank"> <p>Логин: <br><input name="login" type="text" size="20"></p> <p>Пароль: <br><input name="pass" type="text" size="20"></p> <p><input name="submit" type="submit" value="Вход"></p> </form> enter.php: Code: <?php echo "бла бла $login и $pass"; ?> Проблема: Не выводит переменные $login и $pass
А откуда он тебе возьмет эту переменную? enter.php: PHP: <?php echo "бла бла " . $_POST['login'] . " и " . $_POST['pass']; ?>
Насколько безопасен такой код. PHP: $t=new test; if(method_exists($t,$_GET['function']) { eval('$t->'.$_GET['function'].'();'); } else { echo 'Неверная команда.'; }
Есть файл configbase.php который нужно переписать, точнее изменить значения переменных.... Написал маленький скрипт и назвал его index.php CODE index.php PHP: <?php if(isset($_POST['subbase'])){ $body= <<<EOD <?php //GLOBALS BLOCK //включить выключить ЧПУ $CPU="true"; //Полный урл вашего сайта, в конце не забуьте поставить / - обратный слэш $URLPATH=$_POST["URLPATH"]; //Путь к шаблону $PATH_TEMPLATE=$_POST["PATH_TEMPLATE"]; //Заголовок на сайте $TITLE=$_POST["TITLE"]; //Описание сайта $DESCR=$_POST["DESCR"]; //Ключевые слова для вашего сайта $KEYWORDS=$_POST["$KEYWORDS"]; //Копирайты в поддоне $COPYRIGHTS=$_POST["COPYRIGHTS"]; ?> EOD; $base=fopen("config/configbase.php","w"); fwrite($base,$body); fclose($base); echo "Saved!"; } include("configbase.php");// что бы видеть реальные значения переменных в value ?> <html> <head> <title>Установка</title> <style type="text/css"> body {background-color: #fff; color: #000; font-family: verdana, arial; font-size: small;} a:link, a:visited { color: #1D3565; font-weight: bold; text-decoration: none;} a: hover { text-decoration: underline;} h1 { border-bottom: 1px dotted gray; font-size: x-large; color: #596d9d;} h2 { color: #ffffff; font-size: large; margin-left: 20px; text-indent: 10px; border-bottom: 1px solid #ddd;} table td {font-size: 11px;} .td_0 {background: #aaaaaa; height: 25px; border-top: 1px solid #d0c7c7; border-bottom: 1px solid #808080; border-left: 1px solid #d0c7c7; border-right: 1px solid #808080; vertical-align: top;} .td_1 {background: #eeeeee; height: 25px; width: 50%; border-top: 1px solid #d0c7c7; border-bottom: 1px solid #808080; border-left: 1px solid #d0c7c7; border-right: 1px solid #808080; vertical-align: top;} .td_2 {background: #dddddd; height: 25px; width: 50%; border-top: 1px solid #d0c7c7; border-bottom: 1px solid #808080; border-left: 1px solid #d0c7c7; border-right: 1px solid #808080; vertical-align: top; } .f_input {background: #f0ebeb; width: 50%; color: #808080; font-size: 11px; border-top: 1px solid #808080; border-bottom: 1px solid #d0c7c7; border-left: 1px solid #808080; border-right: 1px solid #d0c7c7; } </style> </head> <body> <center> <form method="post"> <table width="900" cellpadding="3" cellspacing="1" border="0" > <tr> <td class="td_0" colspan="2" align="center"><h2>ОСНОВНЫЕ ДАННЫЕ</h2></td> </tr> <tr> <td class="td_2">Полный урл вашего сайта, в конце не забуьте поставить / - обратный слэш</td> <td class="td_2"><input class="f_input" type="Text" size="80" value="<?php echo $URLPATH; ?>" name="URLPATH"></td> </tr> <tr> <td class="td_1">Путь к шаблону</td> <td class="td_1"><input class="f_input" type="Text" size="80" value="<?php echo $PATH_TEMPLATE; ?>" name="PATH_TEMPLATE"></td> </tr> <tr> <td class="td_2">Заголовок на сайте</td> <td class="td_2"><textarea class="f_input" name="TITLE" cols="70" rows="3"><?php echo $TITLE; ?></textarea></td> </tr> <tr> <td class="td_1">Описание сайта</td> <td class="td_1"><textarea class="f_input" name="DESCR" cols="70" rows="4"><?php echo $DESCR; ?></textarea></td> </tr> <tr> <td class="td_2">Ключевые слова для вашего сайта</td> <td class="td_2"><textarea class="f_input" name="KEYWORDS" cols="70" rows="4"><?php echo $KEYWORDS; ?></textarea></td> </tr> <tr> <td class="td_1">Копирайты в поддоне</td> <td class="td_1"><textarea class="f_input" name="COPYRIGHTS" cols="70" rows="2"><?php echo $COPYRIGHTS; ?></textarea></td> </tr> <tr> <td class="td_2"></td> <td class="td_2"><input type="Submit" name="subbase" value="Сохранить!"></td> </tr> </table> </form> </center> </body> </html> Но вылетает ошибка, как мне изменять значения переменных в перезаписываемой переменной? или может как-нибудь по другому можно сделать..
на 13 строке... Строка с ошибкой $URLPATH=$_POST["URLPATH"]; Вообще внутри Heredoc текста переменные будут меняться?
PHP: if(isset($_POST['subbase'])){ $body= <<<EOD <?php //GLOBALS BLOCK //включить выключить ЧПУ $CPU="true"; //Полный урл вашего сайта, в конце не забуьте поставить / - обратный слэш $URLPATH={$_POST['URLPATH']}; //Путь к шаблону $PATH_TEMPLATE={$_POST['PATH_TEMPLATE']}; //Заголовок на сайте $TITLE={$_POST['TITLE']}; //Описание сайта $DESCR={$_POST['DESCR']}; //Ключевые слова для вашего сайта $KEYWORDS=$_POST["$KEYWORDS"];//!!!!!!!!!!!!!!!!!!!????????? может $_POST["KEYWORDS"]; тогда так {$_POST['KEYWORDS']}; //Копирайты в поддоне $COPYRIGHTS={$_POST['COPYRIGHTS']}; ?> EOD; Попробуй так.
мб так? Code: <?php if(isset($_POST['subbase'])){ $body= ' <?php //GLOBALS BLOCK //включить выключить ЧПУ $CPU=\"true\"; //Полный урл вашего сайта, в конце не забуьте поставить / - обратный слэш $URLPATH=$_POST[\"URLPATH\"]; //Путь к шаблону $PATH_TEMPLATE=$_POST[\"PATH_TEMPLATE\"]; //Заголовок на сайте $TITLE=$_POST[\"TITLE\"]; //Описание сайта $DESCR=$_POST[\"DESCR\"]; //Ключевые слова для вашего сайта $KEYWORDS=$_POST[\"$KEYWORDS\"]; //Копирайты в поддоне $COPYRIGHTS=$_POST[\"COPYRIGHTS\"]; ?> '; $base=fopen("config/configbase.php","w"); fwrite($base,$body); fclose($base); echo "Saved!"; } include("configbase.php");// что бы видеть реальные значения переменных в value ?> <html> <head> <title>Установка</title> <style type="text/css"> body {background-color: #fff; color: #000; font-family: verdana, arial; font-size: small;} a:link, a:visited { color: #1D3565; font-weight: bold; text-decoration: none;} a: hover { text-decoration: underline;} h1 { border-bottom: 1px dotted gray; font-size: x-large; color: #596d9d;} h2 { color: #ffffff; font-size: large; margin-left: 20px; text-indent: 10px; border-bottom: 1px solid #ddd;} table td {font-size: 11px;} .td_0 {background: #aaaaaa; height: 25px; border-top: 1px solid #d0c7c7; border-bottom: 1px solid #808080; border-left: 1px solid #d0c7c7; border-right: 1px solid #808080; vertical-align: top;} .td_1 {background: #eeeeee; height: 25px; width: 50%; border-top: 1px solid #d0c7c7; border-bottom: 1px solid #808080; border-left: 1px solid #d0c7c7; border-right: 1px solid #808080; vertical-align: top;} .td_2 {background: #dddddd; height: 25px; width: 50%; border-top: 1px solid #d0c7c7; border-bottom: 1px solid #808080; border-left: 1px solid #d0c7c7; border-right: 1px solid #808080; vertical-align: top; } .f_input {background: #f0ebeb; width: 50%; color: #808080; font-size: 11px; border-top: 1px solid #808080; border-bottom: 1px solid #d0c7c7; border-left: 1px solid #808080; border-right: 1px solid #d0c7c7; } </style> </head> <body> <center> <form method="post"> <table width="900" cellpadding="3" cellspacing="1" border="0" > <tr> <td class="td_0" colspan="2" align="center"><h2>ОСНОВНЫЕ ДАННЫЕ</h2></td> </tr> <tr> <td class="td_2">Полный урл вашего сайта, в конце не забуьте поставить / - обратный слэш</td> <td class="td_2"><input class="f_input" type="Text" size="80" value="<?php echo $URLPATH; ?>" name="URLPATH"></td> </tr> <tr> <td class="td_1">Путь к шаблону</td> <td class="td_1"><input class="f_input" type="Text" size="80" value="<?php echo $PATH_TEMPLATE; ?>" name="PATH_TEMPLATE"></td> </tr> <tr> <td class="td_2">Заголовок на сайте</td> <td class="td_2"><textarea class="f_input" name="TITLE" cols="70" rows="3"><?php echo $TITLE; ?></textarea></td> </tr> <tr> <td class="td_1">Описание сайта</td> <td class="td_1"><textarea class="f_input" name="DESCR" cols="70" rows="4"><?php echo $DESCR; ?></textarea></td> </tr> <tr> <td class="td_2">Ключевые слова для вашего сайта</td> <td class="td_2"><textarea class="f_input" name="KEYWORDS" cols="70" rows="4"><?php echo $KEYWORDS; ?></textarea></td> </tr> <tr> <td class="td_1">Копирайты в поддоне</td> <td class="td_1"><textarea class="f_input" name="COPYRIGHTS" cols="70" rows="2"><?php echo $COPYRIGHTS; ?></textarea></td> </tr> <tr> <td class="td_2"></td> <td class="td_2"><input type="Submit" name="subbase" value="Сохранить!"></td> </tr> </table> </form> </center> </body> </html>
До сих пор неразобрался как это сделать $menu = "<a href=\"#\">Меню</a>"; $men = str_replace ("%MENU%", $menu , $shablon ); Вот как сделать чтобы {MENU} Высвечивалась в index.php как это сделать с $shablon
Можно и без smarty, если я так понял: PHP: <?php $shablon = '<html> <head> <title>test</title> </head> <body> {MENU} </body> </html>'; $menu = "<a href=\"#\">Меню</a>"; $men = str_replace ("{MENU}", $menu , $shablon ); echo $men; ?> На smarty: PHP: <?php require_once('./Smarty.class.php'); $smarty = new Smarty(); $smarty->template_dir = './templates/'; $smarty->compile_dir = './templates_c/'; $smarty->config_dir = './configs/'; $smarty->cache_dir = './cache/'; $smarty->assign('menu', 'Меню'); $smarty->display('shablon.tpl'); ?>
Я сделал так PHP: <?php $handle = fopen("tmp.tpl","r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); $shablon.=$buffer; } fclose($handle); $menu = "<a href=\"#\">Меню</a>"; $men = str_replace ("{MENU}", $menu , $shablon ); echo $men; ?> Все ок. Но когда я добавляю еще PHP: $bl = "пипец"; $block = str_replace ("{BLOCK}", $bl , $shablon ); Получается PHP: <?php $handle = fopen("tmp.tpl","r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); $shablon.=$buffer; } fclose($handle); $menu = "<a href=\"#\">Меню</a>"; $bl = "пипец"; $men = str_replace ("{MENU}", $menu , $shablon ); $block = str_replace ("{BLOCK}", $bl , $shablon ); echo $men, $block; ?> То выводиться Почему так?
Хацкер $shablon = str_replace ("{MENU}", $menu , $shablon ); $shablon = str_replace ("{BLOCK}", $bl , $shablon); echo $shablon; так выходит потому как ты берёш шаблан и заменяеш в нём меню НО ты присваеваеш модификацию другой переменой .. поэтому шаблон содержание переменой $shablon не изменяется ... во второй раз ты подставляеш не изменёный шаблон а тот что был в првоначальном виде ... и заменяется там только {BLOCK} а {MENU} остаёца т.к это первоначальный вид переменой $shablon надеюсь ты понел xD