Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Losowanie + część kodu w pliku .txt + formularz
Forum PHP.pl > Forum > Przedszkole
johny11f
Witam

Korzystam ze skryptu na losowanie dwóch danych:

strona.php
  1. <?php
  2. srand((float)microtime()*1000000);
  3.  
  4. include('lista.txt');
  5.  
  6. $txt_rand = $txt[array_rand($txt)];
  7. foreach($txt_rand as $key => $value) { }
  8. ?>


lista.txt
  1. <?
  2. $txt[] = array('a' => 'b');
  3. ?>


Jednak iż kolejne elementy do losowania dodaję do lista.txt za pomocą formularza zapisują się one w nowej lini po znaczniku "?>" przez co nowy element uznawany jest jako zwykły tekst i nie jest losowany.
lista.txt po dodaniu elementu formularzem:
  1. <?
  2. $txt[] = array('a' => 'b');
  3. ?>
  4. $txt[] = array('a1' => 'b1');



formularz.php
  1. <?php
  2. if ($_POST['button'] == "Dodaj") {
  3. $plik = "lista.txt";
  4. if (is_writeable($plik)) {
  5. if (!$handle = fopen($plik, "a")) echo "Błąd...";
  6. if (fwrite($handle, "$"."txt"."["."]"." = array('".$_POST['a']."' => '".$_POST['ab']."');"
  7. ) === FALSE) echo "Nie mogę zapisać danych do pliku...";
  8. else
  9. fclose($handle);
  10.  
  11. } else echo "Błąd zapisu...";
  12. }
  13. ?>
  14. <form action="formularz.php" method="post">
  15. <input type="text" name="a" />
  16. <input type="text" name="b" />
  17. <input type="submit" name="button" value="Dodaj" />
  18. </form>


I teraz moje pytanie:
Jak zrobić, żeby dane z formularza zostały zapisywane pomiędzy znacznikami w lista.txt lub też jak zrobić aby w pliku lista.txt nie było potrzeba żadnych znaczników a żeby elementy z niej były losowane w skrypcie ?



Z góry dziękuję za jakiekolwiek podpowiedzi/rozwiązania/sugestie winksmiley.jpg
piotrekkr
Proponuję zmienić nazwę pliku 'lista.txt' na 'lista.php' i nie wpisywać na końcu pliku znacznika: ?>. Zaincluduje się i będzie łatwo dopisywać smile.gif. Czyli treść początkowa pliku 'lista.php' powinna być taka:
  1. <?php
  2. $txt[] = array('a' => 'b');
  3.  
johny11f
Dzięki ale poradziłem sobie inaczej:
6 linijka formularz.php
  1. if (fwrite($handle, "<?"."$"."txt"."["."]"." = array('".$_POST['a']."' => '".$_POST['ab']."');"."?>"


Wystarczyło ustawić aby formularz wpisywał dane już w obu znacznikach. Koda działa winksmiley.jpg
piotrekkr
No ok dobrze że dałeś rade sam smile.gif Generalnie nie wiem czemu trzymasz kod php w pliku z rozszerzeniem txt wystarczy wejść na http://adres.pl/adres/do/pliku/plik.txt i każdy widzi kod smile.gif gdyby było .php to zobaczył by pusta stronę.

//ps

  1. "$"."txt"."["."]"." = array('".$_POST['a']."' => '".$_POST['ab']."');"
to to samo co
  1. "\$txt[] = array('{$_POST['a']}' => '{$_POST['ab']}');"
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.