Здравейте 
Пиша скрипт с познатата на всички начинаещи php дивелъпери (като мен), от рода на
www.site.com/?page=neshto
взимам $page чрез $_GET['page'] или чрез $_REQUEST[], но за request доколкото знам май не се интересува дали е get или post... така ли е или тази функция взима и двата метода и където има нещо идващо от някакъв скрипт го използва?
Та, моят проблем и питане е следното:
Направих си на CSS темплейт с лява и дясна колонка.
Лявата ми е менюто, дясната излиза съдържанието от избраната в менюто опция.
Това би трябвало да е администраторски интерфейс.
Използвах сесии и mysql за да направя идентификация на потребителите.
Но проблема ми идва от хеадърите вероятно т.е. от самата навигация, защото в лявата колонка, където ми е менюто например потребителя клика да редактира страница "За нас". Тогава навигацията подава чрез метода GET променливата page=about и отдясно чрез алгоритъма за вмъкване ми вкарва определената от мен страница в моя случаи с безплатен wysiwyg редактор, който намерих в Гугъл.
Целият проблем е, че когато се зареди wysiwyg редактора още преди самия java script на редактора да е заредил имам свързване с базата данни и извличане с fetch_array на данните от съответната таблица, които после се добавят като стойност на wysiwyg редактора и потребителя ще може спокойно да си редактира, както му харесва страницата т.е. вградих wysiwyg редактора за улеснение на потребителя, за да може по-лесно да си редактира съдържанието на сайта от админ панела. След това wysiwyg редактора се визуализира със стойността, която ми трябва, която вече е изтеглена от базата данни и потребителя вече може да използва опциите на wysiwyg редактора и да редактира.
Тъй като съм задал на формата, където се зарежда wysiwyg редактора, ACTION -> $_SERVER[PHP_SELF] и метод POST , накрая на скрипта след като потребителя редактира извлеченото съдържание в wysiwyg редактора, така както би искал то да се визуализира в сайта му, след натискане на бутона от формата Submit - скрипта ми зацикля и не ъпдейтва базата данни. Вместо това се хващам в "капана" на един от else-овете за навигацията ми.
Ето кода на навигацията ми:
Ето кода на страницата за редактиране:
След като потребителя види във wysiwyg редактора стойността на страницата About us извлечена от базата данни и след като направи съответните промени, които желае, потребителя клика върху Submit обаче тогава му се изписва надписа от капана на else варианта от навигацията т.е. Страницата, която се опитвате да отворите несъществува!
Въпроса ми е защо? Къде ми е грешката?
Нещо с хедърите ли се прецаква?
ob_flush() ли ще ми трябва?
може ли да ми дадете съвет как да проработи скрипта, защото ми е много важно да проработи със ACTION -> $_SERVER['PHP_SELF'], а не да го пращам на отделна страница.
Реално погледнато проблемът не ми е във wysiwyg редактора. Той работи като обикновена text area и стойността, която ми изпраща чрез POST или GET е такава, каквато обикновено си изпраща и всяка text area и може ебз проблемно да се манипулира чрез $HTTP_GET_VARS или $HTTP_POST_VARS...
Очаквам вашите мнения, препоръки и помощ
Благодаря Ви предварително
Пиша скрипт с познатата на всички начинаещи php дивелъпери (като мен), от рода на
www.site.com/?page=neshto
взимам $page чрез $_GET['page'] или чрез $_REQUEST[], но за request доколкото знам май не се интересува дали е get или post... така ли е или тази функция взима и двата метода и където има нещо идващо от някакъв скрипт го използва?
Та, моят проблем и питане е следното:
Направих си на CSS темплейт с лява и дясна колонка.
Лявата ми е менюто, дясната излиза съдържанието от избраната в менюто опция.
Това би трябвало да е администраторски интерфейс.
Използвах сесии и mysql за да направя идентификация на потребителите.
Но проблема ми идва от хеадърите вероятно т.е. от самата навигация, защото в лявата колонка, където ми е менюто например потребителя клика да редактира страница "За нас". Тогава навигацията подава чрез метода GET променливата page=about и отдясно чрез алгоритъма за вмъкване ми вкарва определената от мен страница в моя случаи с безплатен wysiwyg редактор, който намерих в Гугъл.
Целият проблем е, че когато се зареди wysiwyg редактора още преди самия java script на редактора да е заредил имам свързване с базата данни и извличане с fetch_array на данните от съответната таблица, които после се добавят като стойност на wysiwyg редактора и потребителя ще може спокойно да си редактира, както му харесва страницата т.е. вградих wysiwyg редактора за улеснение на потребителя, за да може по-лесно да си редактира съдържанието на сайта от админ панела. След това wysiwyg редактора се визуализира със стойността, която ми трябва, която вече е изтеглена от базата данни и потребителя вече може да използва опциите на wysiwyg редактора и да редактира.
Тъй като съм задал на формата, където се зарежда wysiwyg редактора, ACTION -> $_SERVER[PHP_SELF] и метод POST , накрая на скрипта след като потребителя редактира извлеченото съдържание в wysiwyg редактора, така както би искал то да се визуализира в сайта му, след натискане на бутона от формата Submit - скрипта ми зацикля и не ъпдейтва базата данни. Вместо това се хващам в "капана" на един от else-овете за навигацията ми.
Ето кода на навигацията ми:
Код:
<?php
if ($_GET[page] == 'main')
{
// Ако е отворен просто Index.php отваря главната страница: main.php
include ('source/main.php');
}
else
{
if (file_exists('source/'.$_GET[page].'.php')) {
// Ако файла съществува го отваря
include ('source/'.$_GET[page].'.php');
} else {
// Ако файла не съществува отваряме извежда съобщение за грешка и отваря main.php
print "<center><small><font color=red>"."Страницата, която се опитвате да отворите несъществува!"."</font></small></center>";
}
}
?>
Ето кода на страницата за редактиране:
Код:
<?php
include("editor/editor.php") ;
?>
<html>
<head>
<title>?? ???</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<?php
$username="****";
$password="****";
$database="****";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Unable to select database");
$chars ="SET CHARACTER SET cp1251";
mysql_query($chars);
$query="SELECT * FROM admin_pages where page_id='about'";
$result=mysql_query($query);
$row = mysql_fetch_array($result);
$code_query = $row["code"];
mysql_close();
?>
<?php
$editor = new editor('editor_var') ; // това тук е името на променливата, която все едно е от нормална text area само, че минава пре wysiwyg редактор за удобство на потребителя
$editor->BasePath = 'editor/';
$editor->Value = $code_query;
$editor->Width = '100%' ;
$editor->Height = '400' ;
$editor->Create() ;
?>
<br>
<center><input type="submit" value="Submit"></center>
</form>
<br />
<?php
if ( isset( $_POST ) )
$postArray = &$_POST ;
else
$postArray = &$HTTP_POST_VARS ;
foreach ( $postArray as $sForm => $value )
{
if ( get_magic_quotes_gpc() )
$postedValue = htmlspecialchars( stripslashes( $value ) ) ;
else
$postedValue = htmlspecialchars( $value ) ;
}
if ( isset( $postedValue ) )
{
$username="****";
$password="****";
$database="****";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Unable to select database");
$query = "UPDATE admin_pages SET code = '$postedValue' WHERE page_id = 'about'";
mysql_query($query);
mysql_close();
}
?>
</body>
</html>
След като потребителя види във wysiwyg редактора стойността на страницата About us извлечена от базата данни и след като направи съответните промени, които желае, потребителя клика върху Submit обаче тогава му се изписва надписа от капана на else варианта от навигацията т.е. Страницата, която се опитвате да отворите несъществува!
Въпроса ми е защо? Къде ми е грешката?
Нещо с хедърите ли се прецаква?
ob_flush() ли ще ми трябва?
може ли да ми дадете съвет как да проработи скрипта, защото ми е много важно да проработи със ACTION -> $_SERVER['PHP_SELF'], а не да го пращам на отделна страница.
Реално погледнато проблемът не ми е във wysiwyg редактора. Той работи като обикновена text area и стойността, която ми изпраща чрез POST или GET е такава, каквато обикновено си изпраща и всяка text area и може ебз проблемно да се манипулира чрез $HTTP_GET_VARS или $HTTP_POST_VARS...
Очаквам вашите мнения, препоръки и помощ
Благодаря Ви предварително