Witam,
Moim zamysłem jest zrobienie systemu logowania w oparciu o PHP+XML w raz z rejestracją. (sam system potem użyje również w panelu administracyjnym do dodawania innych elementów związanych z zarządzaniem moją stroną)
Samą weryfikację użytkownika względem pliku xml (przeszukiwanie wpisów i porównywanie ich z przekazanymi z formularza danymi już mam). Aczkolwiek, problem pojawił się przy rejestracji (chodzi o modyfikacje pliku xml). Otóż mam coś takiego:
<?xml version="1.0"?>
<users>
<user>
<id>0</id>
<name>User</name>
<pass>1a1dc91c907325c69271ddf0c944bc72</pass>
<level>1</level>
</user>
</users>
Chciałbym, aby dane z formularza rejestracyjnego były dodawane jako kolejny USER czyli tak:
<?xml version="1.0"?>
<users>
<user>
<id>0</id>
<name>User</name>
<pass>1a1dc91c907325c69271ddf0c944bc72</pass>
<level>1</level>
</user>
<user>
<id>1</id>
<name>User2</name>
<pass>1a1dc91c907325c69271ddf0c944bc72</pass>
<level>1</level>
</user>
</users>
Niestety za pomocą kodu:
<?
$login = $_POST['login'];
$haslo = $_POST['haslo'];
$haslo2 = $_POST['haslo2'];
$xml = simplexml_load_file('users.xml');
foreach ($xml->user as $user) // Pętla przeszukująca wszystkie wpisy
{
echo $user->name." = ".$login.="?";
if($user->name == $login) {$login_wolny++;}
$ile++;
}
if ($login_wolny == 0)
{
if($haslo==$haslo2)
{
$xml -> name[$ile+1] = $login;
$xml -> pass[$ile+1] = $haslo;
$str = $xml -> asXML();
$q = fopen('users.xml', 'w+');
fwrite($q, $str);
fclose($q);
}
else
{
echo ("Podałeś różne hasła!");
}
}
else
{
echo ("Ten login jest już zajęty!");
}
?>'
Uzyskuje jedynie :
<?xml version="1.0"?>
<users>
<user>
<id>1</id>
<name>User</name>
<pass>1a1dc91c907325c69271ddf0c944bc72</pass>
<level>1</level>
</user>
<name>login</name><pass>pass</pass></users>
Ktoś ma propozycje jak to wykonać?
Założenia:
- inkrementacja id
- level defaultowo 1 (zmiana ewentualnie potem w panelu przez administratora)