Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Losowanie + część kodu w pliku .txt + formularz
johny11f
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.08.2009

Ostrzeżenie: (0%)
-----


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

Ten post edytował johny11f 17.12.2009, 17:25:28
Go to the top of the page
+Quote Post
piotrekkr
post
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

Ostrzeżenie: (0%)
-----


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.  


Ten post edytował piotrekkr 17.12.2009, 17:43:59
Go to the top of the page
+Quote Post
johny11f
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.08.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
piotrekkr
post
Post #4





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

Ostrzeżenie: (0%)
-----


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']}');"


Ten post edytował piotrekkr 17.12.2009, 19:39:59
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:25