Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] a gdy mam wyłączone globalne zmienne..., wyłaczone globalne zmienne
jastu
post
Post #1





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Napisałem prosty skrytp - coś jak księga gości :

  1. <html><body>
  2. <?
  3. $g=fopen("test2.dat","a+");
  4. if($text=="")
  5. {
  6. fflush($g);
  7. fclose($g);
  8. }
  9. else
  10.  {
  11. $text=$text."<hr>";
  12. fwrite($g,$text);
  13. $text="";
  14. fflush($g);
  15. fclose($g);
  16. }
  17. $f=fopen("test2.dat","r") ;
  18. while(!feof($f))
  19. {
  20. $str=fgets($f);
  21. echo $str;
  22. }
  23. fclose($f);
  24.  
  25.  
  26. ?>
  27.  
  28. <form action="test.php">
  29. <input type="text" name="text" maxlength="100"><br>
  30. <input type="submit" value="zapis">
  31. </form>
  32. </body></html>

sad.gif worriedsmiley.gif
Czy może ktoś mi go przepisać pod wyłączone globalne zmienne - chodzi o przenoszenie zmiennych miedzy formularzami (a serwer na który pisze ma register_global=off)- zrozumienie postępowania gdy zmienne są wyłaczone - wielkie dzięki exclamation.gif!!!


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




gdy masz wylaczone zmienne globalne, do zmiennych musisz sie odowlywac bezposrednio z tablic $_POST, $_GET, $_SESSION...
czyli np. $_POST['text']

sam se przepisz winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jastu
post
Post #3





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


  1. <html><body>
  2. <?
  3.  
  4. $g=fopen("test2.dat","a+");
  5. if($_POST['text']=="")
  6. {
  7. fflush($g);
  8. fclose($g);
  9. }
  10. else
  11. {
  12.  $_POST['text']=$_POST['text']."<hr>";
  13.  fwrite($g,$_POST['text']);
  14.  $_POST['text']="";
  15.  fflush($g);
  16.  fclose($g);
  17. }
  18. $f=fopen("test2.dat","r") ;
  19. while(!feof($f))
  20. {
  21. $str=fgets($f);
  22. echo $str;
  23. }
  24. fclose($f);
  25.  
  26.  
  27. ?>
  28. <form action="test.php">
  29. <input type="text" name="text" maxlength="100"><br>
  30. <input type="submit" value="zapis">
  31. </form>
  32.  
  33. </body></html>


Przepisałem - informacja o niezdefiniowanej zmiennej - książke od php 5 będe miał w przyszłym tygodniu - błagam nie każcie mi czekać exclamation.gif


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
błagam nie każcie mi czekać
Blagam, zlituj się nad nami winksmiley.jpg jak dostajesz jakis bląd, to pokaz nam go w calosci, a nie swoje interpretacje robisz smile.gif

a ze ze mnie domyslna bestia... smile.gif :
  1. <form action="test.php">
jak nie okreslisz metody wysylanie formularza, domyslnie jest wysylane url'em, czyli $_GET['text'] a nie $_POST['text']
daj tak:
  1. <form action="test.php" method="post">


  1. <?php
  2.  
  3. if (isset($_POST['text'])){
  4. $g=fopen("test2.dat","a+");
  5. if($_POST['text']=="")
  6. {
  7. fflush($g);
  8. fclose($g);
  9. }
  10. else
  11. {
  12.  fwrite($g,$_POST['text']."<hr>");
  13.  fflush($g);
  14.  fclose($g);
  15. }
  16. }
  17. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jastu
post
Post #5





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Zrozumiałem - Pozdrawiam i obiecuję poprawę exclamation.gif!


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post
DeyV
post
Post #6





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




jeszce jedna zdrowa zasada.
Nie należy nadpisywać wartości zmiennych w POST i GET - w końcu w całym skrypcie chciałoby się mieć pewność, że właśnie to co w nich jest - przyszło od usera.

W sytuacji, gdy potrzebujesz coś dodać - przepisuje się wartość Z $_POST do 'normalnej', prywatnej, zmiennej.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
jastu
post
Post #7





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Poprawiłem - zaraz po pobraniu $_POST[''] przypisuje do zmiennej - ale jescze jedno pytanie dot. wyżej opisanego skryptu - gdy dodam wpis i odświerze stronę powiela się ostatni wpis w pole textowe....pomimo iż po wykonaniu skryptu wartoś przekazana zmiennej jest wartością null ? Dlaczego ?

edit:ale tylko gdy coś wpiszę w input - text - w innym przypadku po f5 nie ma nowego wpisu.? - czy istnieje jakaś funkcja która nie pozwoli skryptowi wysłać POSTDATA ?

Ten post edytował jastu 14.03.2006, 14:38:19


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
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: 19.08.2025 - 07:02