[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод and ввод, save?
ksk.wolk
[font=verdana]Добрый вечер уважаемые гуру php программирования. Совсем небольшая предыстория:

Необходимо было написать файл настроек сайта, который бы брал необходимую информацию из файла config.php, выводил её на экран и затем после внесения правок сохранял новую информацию.

Ввиду своего незнания, столкнулся с проблемой следующего содержания:

Мой сценарий не выводит информацию config файла, но вот информацию сохраняет. Само содержание сценария представлено ниже.



<?php
session_start ();
if (!$_SESSION['admin']) die ( Запрещено );
############################################
include("astyle/head.tpl");
include("astyle/menu.tpl");
############################################
require_once("../core/config.php");
require_once("../core/dbconfig.php");
############################################
?>
<table border="0" width="100%" cellpading=5 cellspacing=0>
<
tr><td class="titleborder maintitle" bgcolor=#C4BFB9 height="40" colspan="3"><b> Настройка системы:</b></td></tr>
</table>
<
br>
<?php
if (!empty($_POST['title'])) {

$wqs_title = $_POST['title'];
$wqs_name = $_POST['name'];
$wqs_copy = $_POST['copy'];
$wqs_post = $_POST['post'];
$wqs_theme = $_POST['theme'];
}
$config = <<<HTML
<?php
\$wqs_title = '$wqs_title';
\$wqs_name = '$wqs_name';
\$wqs_copy = '$wqs_copy';
\$wqs_post = '$wqs_post';
\$wqs_theme = '$wqs_theme';
?>

HTML;

if (!file_put_contents('../core/config.php', $config))
{ die('Нет прав доступа на config.php');}
?>
<br>
<
table VALIGN="top" cellSpacing="5" cellPadding="5"
border="0" width="21%">
<
tr>
<
td valign="top" width="200">
<
form action="options.php" method="post">
Заголовок сайта: <br>
<
input class="comment" type="text" name="title" /><br><br>
Название сайта: <br>
<
input class="comment" type="text" name="name" /><br><br>
Копирайт: <br>
<
input class="comment" type="text" name="copy" /><br><br>
Новостей на страницу: <br>
<
input class="comment" type="text" name="post" /><br><br>
Тема сайта: <select name="theme">
<?php
$temps = scandir('../themes');
$result = count($temps);
$i = 0;
while ($i < $result - 2) {
if ($temps[2 + $i] == $wqs_theme) {
echo "<option value='".$temps[2 + $i]."'selected>".$temps[2 + $i];
}
if ($temps[2 + $i] != $wqs_theme) {
echo "<option value='".$temps[2 + $i]."'>".$temps[2 + $i];
}
$i++;
}
?>
</form>
</
select>
</
tr>
</
table>
<
br><br><br>
<
input name="sub" value="Сохранить" type="submit" class="unit_button" />
<?php
############################################
include("astyle/footer.tpl");
?>


Прошу помочь мне, указать на мои ошибки и изложить суть проблемы, чтобы я смог вникнуть и в дальнейшем не совершать такого рода ошибок.</span>



Спустя 49 минут, 24 секунды (7.06.2011 - 20:51) Nikitian написал(а):
А так?

<?php
session_start ();
if (!$_SESSION['admin']) die ( Запрещено );
############################################
include("astyle/head.tpl");
include("astyle/menu.tpl");
############################################
require_once("../core/config.php");
require_once("../core/dbconfig.php");
############################################
?>
<table border="0" width="100%" cellpading=5 cellspacing=0>
<
tr><td class="titleborder maintitle" bgcolor=#C4BFB9 height="40" colspan="3"><b> Настройка системы:</b></td></tr>
</table>
<
br>
<?php
if (!empty($_POST['title'])) {

$wqs_title = $_POST['title'];
$wqs_name = $_POST['name'];
$wqs_copy = $_POST['copy'];
$wqs_post = $_POST['post'];
$wqs_theme = $_POST['theme'];
$config = <<<HTML
<?php
\$wqs_title = '$wqs_title';
\$wqs_name = '$wqs_name';
\$wqs_copy = '$wqs_copy';
\$wqs_post = '$wqs_post';
\$wqs_theme = '$wqs_theme';
?>

HTML;
if (!file_put_contents('../core/config.php', $config))
{ die('Нет прав доступа на config.php');}

}


include('../core/config.php');


?>
<br>
<
table VALIGN="top" cellSpacing="5" cellPadding="5"
border="0" width="21%">
<
tr>
<
td valign="top" width="200">
<
form action="options.php" method="post">
Заголовок сайта: <br>
<
input class="comment" type="text" name="title" value="<?=$wqs_title;?>" /><br><br>
Название сайта: <br>
<
input class="comment" type="text" name="name" value="<?=$wqs_name;?>" /><br><br>
Копирайт: <br>
<
input class="comment" type="text" name="copy" value="<?=$wqs_copy;?>" /><br><br>
Новостей на страницу: <br>
<
input class="comment" type="text" name="post" value="<?=$wqs_post;?>" /><br><br>
Тема сайта: <select name="theme">
<?php
$temps = scandir('../themes');
$result = count($temps);
$i = 0;
while ($i < $result - 2) {
if ($temps[2 + $i] == $wqs_theme) {
echo "<option value='".$temps[2 + $i]."'selected>".$temps[2 + $i];
}
if ($temps[2 + $i] != $wqs_theme) {
echo "<option value='".$temps[2 + $i]."'>".$temps[2 + $i];
}
$i++;
}
?>
</form>
</
select>
</
tr>
</
table>
<
br><br><br>
<
input name="sub" value="Сохранить" type="submit" class="unit_button" />
<?php
############################################
include("astyle/footer.tpl");
?>


Спустя 22 часа, 53 минуты, 8 секунд (8.06.2011 - 19:44) ksk.wolk написал(а):
Благодарю, помогло. Вот ещё одна проблема из этой оперы, только в данном сценарии всё наоборот - информация выводится, но после правки не сохраняется.

Нажмите для просмотра.


<?php
session_start();

if(!$_SESSION['admin'])
{
die(Запрещено);
}

############################################
include 'astyle/head.tpl';
include 'astyle/menu.tpl';

############################################
require_once '../core/config.php';
require_once '../core/dbconfig.php';

############################################?>
<table border="0" width="100%" cellpading=5 cellspacing=0>
<
tr><td class="titleborder maintitle" bgcolor=#C4BFB9 height="40" colspan="3"><b>  Редактировать шаблоны:</b></td></tr>
</table>
<
br>
<
center>
<?
function
get_file_list($wqs_theme)
{
// Открываем каталог и выходим в случае ошибки.
chdir("../themes/". $wqs_theme);
$d = @opendir(".");

if(!$d)
{
return ;
}
while(($e = readdir($d)) !== false)
{
// Игнорируем элементы .. и .

if($e == '.' || $e == '..')
{
continue;
}

if(@is_dir($e))
{
continue;
}
$mod[] = $e;
flush();
}
closedir($d);
chdir("..");
return $mod;
}
function rewrite_file($file)
{
$f = fopen("../themes/$wqs_theme/". $file, "w");

if(!$f)
{
$r = 'Ошибка открытия файла.';
}
else
{
$w = fwrite($f, $_REQUEST['text']);

if(!$w)
{
$r = 'Не возможно записать файл.';
}
else
{
fclose($f);
$r = 'Файл "'. $file .'" перезаписан.';
}
}

return $r;
}

#### #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### ####

#### Поехали ->

$t = $wqs_theme;
$file_list = get_file_list($t);

if(@$_REQUEST['act'] == "edit")
{
$file = htmlspecialchars(file_get_contents('../themes/'. $t .'/'. $_REQUEST['file']));
}
//echo '<pre>'; print_r($file_list); echo '</pre>';
echo '
<form action="themes.php" method="post">
<INPUT TYPE="hidden" NAME="action" VALUE="themes">
<INPUT TYPE="hidden" NAME="file" VALUE="'
. $_REQUEST['file'] .'">
<INPUT TYPE="hidden" NAME="act" VALUE="edit">'
;
echo '<table border="0">
<tr>
<td>'
;

if(isset($_REQUEST['sub']))
{
echo ' <span class="mes">'. $report .'</span><br />';
}
echo '<textarea class="edit" name="text" cols="100" rows="25" >'. $file .'</textarea></td>
<td valign="top">'
;

foreach($file_list as $file)
{
echo '<p><a href="?action=themes&act=edit&file='. $file .'">'. $file .'</a></p>';
}
echo '</td></tr></table>
<input name="sub" type="submit" value="Отправить" class="unit_button" />'
;

if(isset($_REQUEST['file']))
{
echo '<span class="mes"> Права доступа: '. decoct(0777&fileperms('../themes/'. $t .'/'. $_REQUEST['file'])) .'</span>
<a target="_blank" href="'
. $help['chmod'] .'">[Что это?]</a>';
}
echo '</form>';

############################################
include 'astyle/footer.tpl';
?>


Спустя 13 часов, 41 минута, 51 секунда (9.06.2011 - 09:26) ksk.wolk написал(а):
UP темы, вопрос всё ещё актуален.

Спустя 10 часов, 40 минут, 19 секунд (9.06.2011 - 20:06) ksk.wolk написал(а):
Неужели никто не может помочь в элементарной правке кода? huh.gif

Спустя 13 часов, 4 минуты, 45 секунд (10.06.2011 - 09:11) ksk.wolk написал(а):
Вот видоизменил код, уже выводится сообщение, что файл перезаписан. Но отредактированная информация по порежнему не сохраняется
<?php 
session_start();

if(!$_SESSION['admin'])
{
die(Запрещено);
}

############################################
include 'astyle/head.tpl';
include 'astyle/menu.tpl';

############################################
require_once '../core/config.php';
require_once '../core/dbconfig.php';

############################################?>
<table border="0" width="100%" cellpading=5 cellspacing=0>
<
tr><td class="titleborder maintitle" bgcolor=#C4BFB9 height="40" colspan="3"><b>  Редактировать шаблоны:</b></td></tr>
</table>
<
br>
<
center>

<?php

function
get_file_list($theme) {
// Открываем каталог и выходим в случае ошибки.
chdir('../themes/'.$theme);
$d = @opendir(".");
if (!$d) return;
while (($e=readdir($d)) !== false) {
// Игнорируем элементы .. и .
if ($e=='.' || $e=='..') continue;
if (@is_dir($e)) continue;
$mod[] = $e;
flush();
}
closedir($d);
chdir("..");
return $mod;
}

function rewrite_file($file) {
$f = fopen ('../themes/'.$wqs_theme.'/'.$file, "w");
if (!$f) $r = 'Ошибка открытия файла.';
else {
$w=fwrite ($f, $_REQUEST['text']);
if (!$w) $r='Не возможно записать файл.';
else {
fclose ($f);
$r='Файл "'.$file.'" перезаписан.';
}
}

return $r;
}

#### Поехали ->

$t = $wqs_theme;

if (isset($_REQUEST['change_theme'])) {
change_theme ($_REQUEST['theme']);
$t = $_REQUEST['theme'];
}
if (isset($_REQUEST['sub'])) {
$report = rewrite_file($_REQUEST['file']);
}


##### Редактор ->

$file_list = get_file_list($t);
if (@$_REQUEST['act'] == "edit") {
$file = htmlspecialchars(file_get_contents('../themes/'.$t.'/'.$_REQUEST['file']));
}

//echo '<pre>'; print_r($file_list); echo '</pre>';
echo'
<form action="themes.php" method="post">
<INPUT TYPE="hidden" NAME="action" VALUE="theme_list">
<INPUT TYPE="hidden" NAME="file" VALUE="'
.$_REQUEST['file'].'">
<INPUT TYPE="hidden" NAME="act" VALUE="edit">'
;


echo '<table border="0">
<tr>
<td>'
;
if (isset($_REQUEST['sub'])) echo ' <span class="mes">'.$report.'</span><br />';
echo '<textarea class="edit" name="text" cols="100" rows="25" >'.$file.'</textarea></td>
<td valign="top">'
;

foreach ($file_list as $file) {
echo '<p><a href="?action=theme_list&act=edit&file='.$file.'">'.$file.'</a></p>';
}



echo '</td></tr></table>
<input name="sub" type="submit" value="Отправить" class="unit_button" />'
;
if (isset($_REQUEST['file'])) {
echo '<span class="mes"> Права доступа: '.decoct(0777 & fileperms('../themes/'.$t.'/'.$_REQUEST['file'])).'</span>';
}
echo '</form>';

############################################
include 'astyle/footer.tpl';
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.