Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z zapisem do pliku
Forum PHP.pl > Forum > Przedszkole
Grimor
Witam

Mam taki prosty "CMS'ik" jest w nim kod ktory includuje podstrony.
  1. <?  
  2. $id=$_GET["dzial"];
  3. if(!isset($id)) {
  4. include("news.php");
  5. }
  6. else {
  7. if(is_file("$dzial.php")) {
  8. include("$dzial.php");
  9. }
  10. else
  11. echo "
  12. <h2>Bład 404</h2>
  13. <p>Podana strona nie istnieje lub jest w trakcie budowy";
  14. }
  15. ?>


Skrypt dziala dobrze, ale zrobiel mw panelu admionistarcyjnym skrypt ktory pozwala mi edytowac podstrony np. kontakt.php, lecz gdy wpisuje do formularza dane caly tekst tam gdzie wcisne ENTER nie robi mi nowej lini, to chyba oczywsite wiec dalem
  1. <?php
  2. str_replace("n", "<br />", $tresc);
  3. ?>


Lecz to nie pomaga zamiast <br /> w kodzie nie pokazuje sie nic sad.gif

Ponizej skrypt edycji podstron:

  1. <?
  2. $edycja = $_POST['edycja'];
  3. $submita = $_POST['submita'];
  4. if (isset($edycja)) {
  5. $plik = fopen("../".$edycja.".php", "r+");
  6. $tresc = file_get_contents('../'.$edycja.'.php');
  7. $plike = $edycja;
  8. ?>
  9. <form method="post" action="admin.php?dzial=editpage">
  10. <textarea name="tresca" rows="20" cols="55"><? echo $tresc; ?></textarea>
  11. <input type="hidden" name="plika" value="<? echo $edycja; ?>">
  12. <input type="submit" name="submita" value="Edytuj">
  13. </form>
  14.  
  15. <?
  16. } else {
  17. $msg = "Wybierz strone do edycji";
  18. }
  19.  
  20. if (isset($submita)) {
  21. $plika = $_POST['plika'];
  22. $tresca = $_POST['tresca'];
  23. $terscb = ereg_replace("rn", "<br />", $tresca);
  24. $plik1 = fopen("../".$plika.".php", "w+");
  25. fwrite($plik1, $trescb);
  26. fclose($plik1);
  27. $msg = "Plik został pomyślnie edytowany";
  28. }
  29.  
  30. ?>
  31.  
  32. <form method="post" action="admin.php?dzial=editpage">
  33. <select name="edycja">
  34. <option value="biografia">Biografia</option>
  35. <option value="kontakt">Kontakt</option>
  36. <option value="galeriak">Galeria Katrynka</option>
  37. </select>
  38. <input type="submit" name="submit" value="Wybierz">
  39. </form>
  40. </br><? echo $msg; ?>
php programmer
po pierwsze str_replace, nie zmienia wartości argumentu lecz zwraca wynik swojego działania
wiec powinno być
  1. <?php
  2. $tresc = str_replace("n", "<br />", $tresc);
  3. ?>


a gdyby by to jeszcze nie zadziałało, to daj

  1. <?php
  2. $tresc = str_replace(chr(13).chr(10), "<br />", $tresc);
  3. ?>
Grimor
Niestety nie dziala zaden ze sposbow sad.gif mam w innym skrypcie takie cos:
  1. <?
  2. $tersca = str_replace("n", "<br />", $_POST['tresca']);
  3. ?>

tyle ze dane wysylane sa do bazy danych, a nie do pliku.

Byc moze jest przyczyna to ze jest to plik .php a nie .txt ?


UP

Zna ktos moze przyczyne mojego problemu questionmark.gif
John
  1. <?php
  2. $terscb = ereg_replace("rn", "<br />", $tresca);
  3. ?>


tak jak tu użyłeś tego, tak spróbuj i tam użyć ereg_replace.
Grimor
Uzywalem juz i takiej metody, niestety nie skutkuje sad.gif
nospor
$tersca...$terscb....
mi sie wydaje ze ty potem takiej zmiennej nie uzywasz tongue.gif

pozatym czemu nie uzyjecie poprostu funkcji do tego stworzonej:
http://pl2.php.net/manual/pl/function.nl2br.php
?
Grimor
nospor, uzywalem takze tej funkcji, a te zmiennych juz nie ma smile.gif bo tylko prubowalem w taki sposob, teraz mam tak
  1. <?php
  2. if (isset($submita)) {
  3. $plika = $_POST['plika'];
  4. $tersca = str_replace("n", "<br />", $_POST['tresca']);
  5. $plik1 = fopen("../".$plika.".php", "w+");
  6. fwrite($plik1, $tresca);
  7. fclose($plik1);
  8. $msg = "Plik został pomyślnie edytowany";
  9. }
  10. ?>
nospor
Cytat
a te zmiennych juz nie ma
rety, podaj jak na tacy to jeszcze nie zajarzy tongue.gif
Teraz masz tak:
$tersca
$tresca
czy te zmienne sa takie same? Nie! A uzywasz ich tak jakby byly takie same
Grimor
Teraz mam tak jak podalem wyzej tylko $tresca, ktora pobiera z formularza z <textarea> tresc w ktorej ma zamienic nowe linie na <br /> chyba ten kod jest proprawny, a nl2br tez uzywalem i nie dzialalo, tekst zapisywalo w pliku tak jak w forularzu np.
asd
asd
asd
a, na stronie pokazuje mi: asd asd asd
nospor
czytajac tego posta nie jestem pewien czy zalapales wkoncu ze masz literowki w kodzie:
$tersca
$tresca
Jesli jednak juz to zalapales i poprawiles te literowki, to pokaz jeszcze raz kod juz poprawiony i tym razem z nl2br
Grimor
omg, dzieki smile.gif az mi wstyd za mnie tongue.gif sory za klopot. Ale ze mnei debil ;p Dzieki jeszcze raz i pozdrawiam.

  1. <?php
  2. if (isset($submita)) {
  3. $plika = $_POST['plika'];
  4. $tresca = nl2br($_POST['tresca']);
  5. $plik1 = fopen("../".$plika.".php", "w+");
  6. fwrite($plik1, $tresca);
  7. fclose($plik1);
  8. $msg = "Plik został pomyślnie edytowany";
  9. }
  10. ?>

kod z nl2br ;p z str_replace tez juz dziala smile.gif
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.