Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] file_put_contents a simpleXML
Forum PHP.pl > Forum > Przedszkole
newicz
Witam Wszystkich!

Mam problem z którym nijak nie mogę sobie poradzić, mianowicie mam taki oto kod:

  1. <?php
  2.  
  3. // ----- BOROWSER TEST
  4. 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>');
  5. // -------------------------------------------
  6.  
  7.  
  8. // ----- REQUIERMENTS
  9. require_once('classes/templates.php');
  10. // -------------------------------------------
  11.  
  12. $templateHeader = new Template ();
  13. $templateHeaderTpl = array ();
  14. echo $templateHeader -> change ($templateHeaderTpl, 'templateHeader.tpl');
  15.  
  16. $XMLNr = $_GET['file'];
  17. $XMLFile = 'archive/' . $XMLNr . '.xml';
  18.  
  19. function nodeEdit ($XMLFile, $addText, $witchone, $tmp)
  20. {
  21. $myXML = simplexml_load_file ($XMLFile);
  22.  
  23. if ($tmp == 1) $myXML -> product[$witchone] -> de = $addText;
  24. else $myXML -> product[$witchone] -> pl = $addText;
  25.  
  26. $tmpStr = $myXML -> asXML();
  27. echo '<br /> xml <br />' . $tmpStr; // 1
  28. file_put_contents ($XMLFile, $tmpStr);
  29. echo '<br /> xml <br />' . $tmpStr; // 2
  30. }
  31.  
  32.  
  33. function itemCount ($XMLFile)
  34. {
  35. $myXML = simplexml_load_file ($XMLFile);
  36.  
  37. $i = 0;
  38. foreach ($myXML -> xpath ('//product') as $new) $i++;
  39.  
  40. return $i;
  41. }
  42.  
  43.  
  44. function excNode ($XMLFile, $witchone, $tmp)
  45. {
  46. $myXML = simplexml_load_file ($XMLFile);
  47.  
  48. if ($tmp == 1)
  49. {
  50. if ($myXML -> product[$witchone] -> de == '')
  51. {
  52. return 'wpisz niemiecką nazwę!';
  53. }
  54. else return $myXML -> product[$witchone] -> de;
  55. }
  56. else
  57. {
  58. if ($myXML -> product[$witchone] -> pl == '')
  59. {
  60. return 'wpisz polską nazwę!';
  61. }
  62. else return $myXML -> product[$witchone] -> pl;
  63. }
  64. }
  65.  
  66.  
  67. if ($_GET['go'] != 1)
  68. {
  69. echo '<center>';
  70. echo 'Proces edycji elementu, poniżej znajdują się wszystki produkty edytowanej faktury:<br /><br />';
  71. echo '<form action="editXML.php?file=' . $XMLNr . '&go=1" method="post">';
  72. echo '<table style="width: 60%">';
  73.  
  74. for ($i = 0; $i < itemCount ($XMLFile); $i++)
  75. {
  76. echo ' <tr>';
  77. echo ' <td style="width: 50%; text-align: right;" valign="top">Polska nazwa produktu: </td>';
  78. echo ' <td style="width: 50%; text-align: center;"><input name="pl' . $i . '" value="' . excNode($XMLFile, $i, 2) . '" type="text" style="width: 80%" /></td>';
  79. echo ' </tr>';
  80. echo ' <tr>';
  81. echo ' <td style="width: 50%; text-align: right;" valign="top">Niemiecka nazwa produktu: </td>';
  82. echo ' <td style="width: 50%; text-align: center;"><input name="de' . $i . '" value="' . excNode($XMLFile, $i, 1) . '" type="text" style="width: 80%" /></td>';
  83. echo ' </tr>';
  84. echo ' <tr>';
  85. echo ' <td style="width: 50%; border-width: 0px; text-align: right;" valign="top">&nbsp;</td>';
  86. echo ' <td style="width: 50%; border-width: 0px; text-align: center;">&nbsp;</td>';
  87. echo ' </tr>';
  88. }
  89.  
  90. echo ' <tr>';
  91. echo ' <td style="border-width: 0px;">&nbsp;</td>';
  92. echo ' <td style="width: 50%; border-width: 0px; text-align: center;"><br /><input value="edytuj" type="submit" style="width: 100px" /></td>';
  93. echo ' </tr>';
  94. echo '</table>';
  95. echo '</form>';
  96. echo '</center>';
  97. }
  98. else
  99. {
  100. for ($i = 0; $i < itemCount ($XMLFile); $i++)
  101. {
  102. nodeEdit ($XMLFile, $_POST['de'.$i], $i, 1);
  103. nodeEdit ($XMLFile, $_POST['pl'.$i], $i, 2);
  104. }
  105.  
  106. echo '<center>';
  107. echo '<table style="width: 400px;">';
  108. echo ' <tr>';
  109. echo ' <td style="background: url(\'theme/images/ok.jpg\'); width: 400px; height: 200px; text-align: center; border: 0px;">
  110. Plik zapisano prawidłowo!<br />
  111. <a href="http://localhost:49151/~FakturPet/print.php?file='.$XMLNr.'">Drukuj!</a>
  112. </td>';
  113. echo ' </tr>';
  114. echo '</table>';
  115. echo '</center>';
  116. }
  117.  
  118. $templateHeader = new Template ();
  119. echo $templateHeader -> change (array(), 'templateEnd.tpl');
  120.  
  121.  
  122. ?>


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?questionmark.gifquestionmark.gif
CyberDuck_
A sprobuj oczyscic to co chcesz edytowac przed edycja ...
stripslashes();
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.