Witam Wszystkich!
Mam problem z którym nijak nie mogę sobie poradzić, mianowicie mam taki oto kod:
<?php
// ----- BOROWSER TEST
if ( !stristr($_SERVER[HTTP_USER_AGENT
], "firefox") ) die ('<html><head><meta http-equiv="content-type" content="text/xml; charset=utf-8" /></head><body>Prosze uruchomić program w przglądarce Firefox!</body></html>'); // -------------------------------------------
// ----- REQUIERMENTS
require_once('classes/templates.php');
// -------------------------------------------
$templateHeader = new Template ();
$templateHeaderTpl = array (); echo $templateHeader -> change ($templateHeaderTpl, 'templateHeader.tpl');
$XMLNr = $_GET['file'];
$XMLFile = 'archive/' . $XMLNr . '.xml';
function nodeEdit ($XMLFile, $addText, $witchone, $tmp)
{
$myXML = simplexml_load_file ($XMLFile);
if ($tmp == 1) $myXML -> product[$witchone] -> de = $addText;
else $myXML -> product[$witchone] -> pl = $addText;
$tmpStr = $myXML -> asXML();
echo '<br /> xml <br />' . $tmpStr; // 1 file_put_contents ($XMLFile, $tmpStr);
echo '<br /> xml <br />' . $tmpStr; // 2 }
function itemCount ($XMLFile)
{
$myXML = simplexml_load_file ($XMLFile);
$i = 0;
foreach ($myXML -> xpath ('//product') as $new) $i++;
return $i;
}
function excNode ($XMLFile, $witchone, $tmp)
{
$myXML = simplexml_load_file ($XMLFile);
if ($tmp == 1)
{
if ($myXML -> product[$witchone] -> de == '')
{
return 'wpisz niemiecką nazwę!';
}
else return $myXML -> product[$witchone] -> de;
}
else
{
if ($myXML -> product[$witchone] -> pl == '')
{
return 'wpisz polską nazwę!';
}
else return $myXML -> product[$witchone] -> pl;
}
}
if ($_GET['go'] != 1)
{
echo 'Proces edycji elementu, poniżej znajdują się wszystki produkty edytowanej faktury:<br /><br />'; echo '<form action="editXML.php?file=' . $XMLNr . '&go=1" method="post">'; echo '<table style="width: 60%">';
for ($i = 0; $i < itemCount ($XMLFile); $i++)
{
echo ' <td style="width: 50%; text-align: right;" valign="top">Polska nazwa produktu: </td>'; echo ' <td style="width: 50%; text-align: center;"><input name="pl' . $i . '" value="' . excNode
($XMLFile, $i, 2) . '" type="text" style="width: 80%" /></td>'; echo ' <td style="width: 50%; text-align: right;" valign="top">Niemiecka nazwa produktu: </td>'; echo ' <td style="width: 50%; text-align: center;"><input name="de' . $i . '" value="' . excNode
($XMLFile, $i, 1) . '" type="text" style="width: 80%" /></td>'; echo ' <td style="width: 50%; border-width: 0px; text-align: right;" valign="top"> </td>'; echo ' <td style="width: 50%; border-width: 0px; text-align: center;"> </td>'; }
echo ' <td style="border-width: 0px;"> </td>'; echo ' <td style="width: 50%; border-width: 0px; text-align: center;"><br /><input value="edytuj" type="submit" style="width: 100px" /></td>'; }
else
{
for ($i = 0; $i < itemCount ($XMLFile); $i++)
{
nodeEdit ($XMLFile, $_POST['de'.$i], $i, 1);
nodeEdit ($XMLFile, $_POST['pl'.$i], $i, 2);
}
echo '<table style="width: 400px;">'; echo ' <td style="background: url(\'theme/images/ok.jpg\'); width: 400px; height: 200px; text-align: center; border: 0px;"> Plik zapisano prawidłowo!<br />
<a href="http://localhost:49151/~FakturPet/print.php?file='.$XMLNr.'">Drukuj!</a>
</td>';
}
$templateHeader = new Template ();
echo $templateHeader -> change (array(), 'templateEnd.tpl');
?>
I niby wszystko jest ok, bo zarówno w //1 jak i //2 na wyjściu funkcji echo jest porawna budowa pliku xml, jednak w samym pliku już jest błąd.. czyści mi węzeł pl i de...
Jest to błąd o tyle dziwny, że występuje tylko podczas pierwszej próby edycji, później już wszystko jest w porządku... jakieś propozycję?
nikt nie zna odpowiedzi?
