Админка на PHP для XML+FLASH

Z-13

Новичок
Админка на PHP для XML+FLASH

Здравствуйте всем!
У меня такой вопрос:

Мне нужно написать админку на PHP которая будет править XML-файл(ы). А этот XML будет читать Flash.
Чтение Flash'em XML-файл - это мы умеем, а вот написание админки на PHP - вот это проблема(для меня).

Что можете посоветовать?
XML-файл, например Новостей, должен выглядеть вот так:


<?xml version="1.0" encoding="utf-8"?>
<data>
<news total_news="1" type="news" pg="1" path="http://yandex.ru/index.php?c=5&year=2007">
<ns date="13 октября" img="http://yandex.ru/upload/news_1.jpg">
<short><![CDATA[Открытие!]]></short>
<full><![CDATA[<p>Долгожданное открытие! </p><p>Поздравляем всех.</p>]]></full>
</ns>
</news>
<years current="2007">
<year lb="2007" lnk="http://yandex.ru/index.php?c=5&year=2007"/>
</years>
</data>


XML-галереи:


<data>
<gallery img_lnk="http://yandex.ru/gallery/gallery_ee1.jpg" lb="Галерея 1">
<img preview="http://yandex.ru/gallery/gallery_1p.jpg" full="http://yandex.ru/gallery/gallery_1.jpg" pic_w="500" pic_h="400"/>
<img preview="http://yandex.ru/gallery/gallery_2.jpg" full="http://yandex.ru/gallery/gallery_2p.jpg" pic_w="640" pic_h="480"/>
</gallery>
</data>


Помогите пожалуйста!

Можно примерами статей(или уроками) на эту тему, или советами.

Заранее благодарю.
 

AmdY

Пью пиво
Команда форума
тогда наверное http://www.php.net/manual/ru/ref.simplexml.php
 

Фанат

oncle terrible
Команда форума
ты бы с этим разобрася, дружок.
а потом другие искал.
 

Z-13

Новичок
*****
Согласен.
Просто может ещё разжеванее есть!
 

Фанат

oncle terrible
Команда форума
Судя по тому, что формат хранения в общем случае неважен, но вопросы про то, как написать админку, все равно есть, то, похоже, надо объяснять, как вывести форму, как обработать полученные из неё данные, и как записать в файл.
про формы можно почитать здесь http://php5.ru/study/forms

Это будет добавление и удаление.
А читалка xml понадобится только для редактирования, которое является частным случаем добавления.
 

Z-13

Новичок
*****
Благодарю за ссылку, буду изучать.

Если что буду обращаться. ;)
 

GrayHound

Новичок
а зачем флэшу читать xml? не лучше найти билиотеки взаимодействия flash/php?
 

Z-13

Новичок
GrayHound
Просто обновление Новостей, Галереи и т.д удобнее во флеше делать через XML.

-~{}~ 05.11.07 14:19:

*****
Прочитал статьи(http://php5.ru/study/forms) спасибо, супер.

А теперь вопрос - такие же статьи по написанию админки(тоетсь вход через имя и пароль) + редактирование статей(если есть и перевод в XML-файл)

Заранее спасиб
 

Фанат

oncle terrible
Команда форума
вход через имя и пароль - это три строчки http://phpfaq.ru/links#auth

редактирование статей - это то же самое добавление, только надо прочитать статью с диска и заполнить форму.
ничего сложного.

XML файл ничем от других файлов не отличается.
Надо тебе в файл записать строчку "<?xml version="1.0" encoding="utf-8"?>" - ну так и запиши. какие проблемы?
 

Z-13

Новичок
*****
Извини конечно, а можно примерами или уроками создание формы с паролем и именем + добавление удаление.

Может я туплю, но учусь же, а без этого никак. ;)
 

Фанат

oncle terrible
Команда форума
примеров я тебе дал целую гору.
никакой "формы с паролем" тебе не надо.
тебе надо сначала ОДИн раз ввести пароль, а потом в скриптах админки его проверять.
 

Z-13

Новичок
Я нашел отличный ресурс - ibm.com - всем советую.

Пошел изучать.

-~{}~ 05.11.07 23:28:

Появилась проблема!
Проблема:
Я делаю админку+редактирование текста и т.д., по урокам IBM.com, там есть добавление глобальной переменной типа $_SESSION. В текстовый файл top.txt нужно добавить строчку
PHP:
<? session_start(); ?>
.
И на эту строчку в верху каждой страницы(ну это естественно, т.к. шапка) пишет - Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at z:\home\localhost\www\top.txt:1) in z:\home\localhost\www\top.txt on line 2.

Строка вторая - это как раз session_start();

В уроке написано вот что по этому вопросу:

Так же как и $_POST, $_SESSION представляет собой ассоциативный массив. $_SESSION является суперглобальной переменной, этот массив сохраняется в пределах сессии, и вы можете использовать его значения на других страницах.

Если вы используете версию PHP V4.3.2 или старше, то у вас может появиться предупреждение, касающееся области применения переменной $_SESSION. В этом случае нужно внести изменения в настройки сервера, для этого найдите файл php.ini и задайте в нем следующие переменные:

session.bug_compat_42 = 1
session.bug_compat_warn = 0

Перезапустите ваш Web-сервер, для того чтобы актуализировать изменения конфигурации.


Всё сделал как написано, исправил числа и перезапустил Apache, но всё равно выдает эту ошибку.

Помогите пожалуйста.

Заранее благодарю.
 

Z-13

Новичок
Спасибо помогло!

Но тут новая проблема:

Вот какие ошибки: Notice: A session had already been started - ignoring session_start() in z:\home\localhost\www\top.txt on line 2(У меня session.auto_start = 0, вроде так должно быть)
Текст top.txt:

<?
session_start();
?>
<html>
<head>
<title>Workflow System</title>
</head>
<body>
<table>
<tr><td colspan="2"><h2>The Workflow System</h2></td></tr>
<tr>
<td width="30%" valign="top">
<h3>Navigation</h3>
<?php
if (isset($_SESSION["username"]) || isset($username)){
?>
<p>You are logged in as <b><?=$_SESSION["username"].$username ?></b>. You can
<a href="logout.php">logout</a> to login as a different user.</p>
<?php
} else {
?>
<p><a href="registration.php">Register</a></p>
<p><a href="login.php">Login</a></p>
<?php
}
?>
</td>
<td>
<td>


И вот такая: You are logged in as Notice: Undefined index: username in z:\home\localhost\www\top.txt on line 17 Z-13. You can logout to login as a different user.

Выкладываю все файлы админки, посмотрите и помогите пожалуйста.

И ещё: При регистрации нового пользователя(в админке), его данные должны заноситься в BD, но BD пустая, тоесть,данные вроде не заносятся туда.
Посмотрите пожалуйста исходники.

Заранее спасибо.

Исходники: Ссылка

-~{}~ 06.11.07 18:47:

Помогите пожалуйста.(Уважаемые модераторы извиняюсь за нетерпеливость, но просто хочется идти дальше, а тут эта ошибка всё стопорит)
 

Фанат

oncle terrible
Команда форума
A session had already been started
простым ведь английским языком написано
session_start у тебя вызывается два раза

а вторая ошибка странная.
и непонятно, нафига тебе переменная $username?
что за блажь писать одновременно $_SESSION["username"] и $username? Пользоваться надо только первым

-~{}~ 06.11.07 19:27:

вообще очень странно это.
пиши тестовый скрипт для работы с сессиями, и разбирайся, куда у тебя девается $_SESSION["username"]
 

Z-13

Новичок
*****
Вот почему надо писать $_SESSION["username"] и $username - http://www.ibm.com/developerworks/ru/edu/os-phptut2/section2.html

У меня почему-то ругается на строчку -
<p>You are logged in as <b><?=$_SESSION["username"].$username ?></b>. You can...

Текст ошибки - You are logged in as
Notice: Undefined index: username in z:\home\localhost\www\adm\top.txt on line 17
roadnick. You can logout to login as a different user.


Вот по ссылке(http://www.ibm.com/developerworks/ru/edu/os-phptut2/section2.html) там всё нормально без всяких ошибок, а у меня как назло.

Помогите пожалуйста.
 

Фанат

oncle terrible
Команда форума
Это писал какой-то идиот. Невменяемый тупорылый идиот. А точнее их даже двое.

Значит так.
Зная вашу ламерскую натуру, я тебя предупреждаю сразу.
Все мои замечания по поводу кода этих двух маразматиков с сайта айбиэм выполняешь молча и беспрекословно.
Любое высказывание на тему "я там прочитал" или "мне так удобнее" влечет за собой мгновенное закрытие темы.

Убираешь $username и из проверки и из вывода.
в login_action.php делаешь следующее:

PHP:
<?php

require("scripts.txt");
db_connect();

$username = mysql_real_escape_string($_POST["username"]);
$password = mysql_real_escape_string($_POST["password"]);
$sql = "select * from users where username='".$username.
                            "' and password='".$password."'";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
if ($row) {
  session_start();
   $_SESSION["username"] = $row["username"];
   $_SESSION["email"] = $row["email"];
   header("Location: admin.php");
} else {
   header("Location: login.php");
}
?>
и создаешь файл admin.php в котором и производишь все свои манипуляции.
предварительно проверив пароль в сессии, разумеется.
 

Z-13

Новичок
*****
Не буду тебе перечить :)
Пошел пробывать, спасибо заранее за помощь.

-~{}~ 07.11.07 18:57:

Вопросы - 1) почему
PHP:
$_SESSION["email"] = $row["email"];
?( мне кажется надо имя и пароль проверять! я конечно могу быть не прав)

2) При Вводе Логина и Пароля, меня login_action.php перенаправляет обратно на login.php, тоесть условие if($row) не выполняется!?

3) Файл scripts.txt, как должен выглядеть? У меня он выглядит вот так:

PHP:
<?
function db_connect($user='wfuser', $password='wfpass', $db='workflow'){
		mysql_connect('localhost', $user, $password)
        or die('I cannot connect to db: ' . mysql_error());
		mysql_select_db($db);
}
?>
 

baev

‹°°¬•
Команда форума
Z-13, Вы в базу-то занесли чего-нибудь?
 
Сверху