Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]zmienne przerobic na $_post, problem z register_globals=off
espanol
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.06.2006
Skąd: toruń

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


to pochdzi z faq yoyo.pl

Jedyną rzeczą, jaką należy poprawić, to Twoja aplikacja. Są dwa rozwiązania:

1. zrezygnowanie z bezspośredniego odwołania się do zmiennych na rzecz odwołań do tablic $_GET, $_POST, etc.
2. dodanie na początku każdego Twojego skryptu php (albo bezpośrednio, albo pośrednio przez include()) następującego kodu:

  1. <?php
  2. if (!ini_get('register_globals')) {
  3. $types_to_register = array(
  4. 'GET','POST',
  5. 'COOKIE','SESSION','SERVER'
  6. );
  7. foreach ($types_to_register as $type) {
  8. if (@count(${'_' . $type}) > 0) {
  9. extract(${'_' . $type}, EXTR_OVERWRITE);
  10. }
  11. }
  12. }
  13. ?>



Ad .2 skrypt powyzej (w pliku yoyo.php umieszcze) kumam ze trzeba go dodac np :
require_once (yoyo.php);

ad.1
czyli zamiast np:
  1. <?php
  2. if($stan=='szukaj') {
  3. ?>


mam napisać :
  1. <?php
  2. if($_POST['stan']='szukaj') {
  3. ?>


jak żle zroumiałem to prosze o wybaczcie w php to nie jestem dobry raczej laik

dodatkowo dodam ze na loclahost zrobiłem register_globals= Off i skrypt tez nie działa ale bez edycji bo nie wiem jak to zrobić

Ps. szukałem na forum i w manualu ( czy jakos tak ) ale jasnej odpowiedzi jak to zrobic nie widziałem a
musze zamienic ten fragment kodu :
  1. <?php
  2. mysql_connect ("localhost","root","r43c8i");
  3. mysql_select_db (slownik);
  4.  
  5.  
  6. if($stan=='szukaj') {
  7.  
  8. $zapytanie = "SELECT * FROM slowa where espanol like "%$znajdz%" or polski like "%$znajdz%"";
  9. $wykonaj = mysql_query ($zapytanie) or die ('zapytanie:'.$zapytanie.'----blad:'.mysql_error());
  10. while($wiersz=mysql_fetch_array ($wykonaj)) {
  11. echo "<div align="justify">
  12. <center><table border="0" width="400">
  13. <tr>
  14. <td width="50%">
  15. <p align="center" ><b>Znaczenie polskie</b></td>
  16. <td width="50%">
  17. <p align="center" ><b>Znaczenie hiszpańskie</b></td>
  18. </tr>
  19. <tr>
  20. <td width="50%">
  21. <p align="center">".$wiersz['polski']."</td>
  22. <td width="50%">
  23. <p align="center">".$wiersz['espanol']."</td>
  24. </tr>
  25. </table></center>
  26. </div>";
  27. }
  28.  
  29. }
  30.  
  31. else {
  32. echo "</table><center><br><form method="get" ><input type="text" name="znajdz" size="20"><br><input type="submit" value="szukaj" name="stan"><br>Wpisz w pole powyżej szukane słowo</form></center>";
  33. }
  34. ?>


prosze o pomoc

Ten post edytował espanol 14.09.2006, 21:37:04
Go to the top of the page
+Quote Post
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Nie:
  1. <?php
  2. if($_POST['stan']='szukaj') {
  3. ?>

tylko:
  1. <?php
  2. if($_POST['stan']=='szukaj') {
  3. ?>


= to co innego niż ==

P.S.
Prosze poprawić temat wątku.
Nie jest on zgodny z zasadami panującymi na forum Przedszkole
Go to the top of the page
+Quote Post
espanol
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.06.2006
Skąd: toruń

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


  1. <?php
  2. require_once('yoyo.php');
  3. mysql_connect ("localhost","root","r43c8i");
  4. mysql_select_db (slownik);
  5.  
  6.  
  7. if($_POST['stan']=='szukaj') {
  8.  
  9. $_POST['zapytanie'] = "SELECT * FROM slowa where espanol like "%$znajdz%" or polski like "%$znajdz%"";
  10. $_POST['wykonaj'] = mysql_query ($_POST['zapytanie']) or die ('zapytanie:'.$_POST['zapytanie'].'----blad:'.mysql_error());
  11. while($_POST['wiersz']=mysql_fetch_array ($_POST['wykonaj'])) {
  12. echo "<div align="justify">
  13. <center><table border="0" width="400">
  14. <tr>
  15. <td width="50%">
  16. <p align="center" ><b>Znaczenie polskie</b></td>
  17. <td width="50%">
  18. <p align="center" ><b>Znaczenie hiszpańskie</b></td>
  19. </tr>
  20. <tr>
  21. <td width="50%">
  22. <p align="center">".$_POST['wiersz']['polski']."</td>
  23. <td width="50%">
  24. <p align="center">".$_POST['wiersz']['espanol']."</td>
  25. </tr>
  26. </table></center>
  27. </div>";
  28. }
  29. ....
  30. ?>


poprawiłem i teraz wyswietla formularz do szukanego słowa ale nie wyswietla wyniku czyli chyba cos nie tak z :
  1. <?php
  2. <p align="center">".$_POST['wiersz']['polski']."</td>
  3. ?>

a orginalnie w woli przypomnienia wygladało tak :
  1. <?php
  2. <p align="center">".$wiersz['polski']."</td>
  3. ?>



Ps. sory za brak [php] w temacie
Go to the top of the page
+Quote Post
adonis101
post
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.09.2006

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


Cytat(espanol @ 14.09.2006, 22:15:57 ) *
dodatkowo dodam ze na loclahost zrobiłem register_globals= Off i skrypt tez nie działa ale bez edycji bo nie wiem jak to zrobić


to wlasnie przestawienie z 'on' na 'off' powoduje, ze musisz sie odwolywac do tablicy a nie bezposrednio do zmienniej. co oczywiscie jest jak najbardziej wlasciwe ze wzgledow bezpieczenstwa.
Go to the top of the page
+Quote Post
nospor
post
Post #5





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




http://forum.php.pl/index.php?showtopic=53599&hl= - crossposting (Regulamin IV.2, podpunkt f) )
Z racji ze tu dyskusja juz sie rozwinela, to nie zamkne tego tylko tamten...


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

"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
phpion
post
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




$_POST['wykonaj'] zamien np. na $query
$_POST['wiersz'] zamien np. na $record
Niepotrzebnie ladujesz wszystko do tablicy $_POST. Poczytaj o jej zastosowaniu (<form method="post">).
Go to the top of the page
+Quote Post
espanol
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.06.2006
Skąd: toruń

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


zamieniłem tak jak sugerowałes :
  1. <?php
  2. if($_POST['stan']=='szukaj') {
  3.  
  4. $_POST['zapytanie'] = "SELECT * FROM slowa where espanol like "%$znajdz%" or polski like "%$znajdz%"";
  5. $_POST['query'] = mysql_query ($_POST['zapytanie']) or die ('zapytanie:'.$_POST['zapytanie'].'----blad:'.mysql_error());
  6. while($_POST['wiersz']=mysql_fetch_array ($_POST['query'])) {
  7. echo "<div align="justify">
  8. <center><table border="0" width="400">
  9. <tr>
  10. <td width="50%">
  11. <p align="center" ><b>Znaczenie polskie</b></td>
  12. <td width="50%">
  13. <p align="center" ><b>Znaczenie hiszpańskie</b></td>
  14. </tr>
  15. <tr>
  16. <td width="50%">
  17. <p align="center">".$_POST['record']['polski']."</td>
  18. <td width="50%">
  19. <p align="center">".$_POST['record']['espanol']."</td>
  20. </tr>
  21. </table></center>
  22. </div>";
  23. }
  24.  
  25. }
  26.  
  27. else {
  28. echo "</table><center><br><form method="post" ><input type="text" name="znajdz" size="20"><br><input type="submit" value="szukaj" name="stan"><br>Wpisz w pole powyżej szukane słowo</form></center>";
  29. }
  30. ?>


to czemu nadal nie działa ....


sam juz sobie odpowiedziałem smile.gif kodzik powyzej działa

Ten post edytował espanol 15.09.2006, 10:40:18
Go to the top of the page
+Quote Post
phpion
post
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(phpion.com @ 15.09.2006, 07:46:47 ) *
$_POST['wykonaj'] zamien np. na $query
$_POST['wiersz'] zamien np. na $record
Niepotrzebnie ladujesz wszystko do tablicy $_POST. Poczytaj o jej zastosowaniu (<form method="post">).

Nie zrobiles jak napisalem, tylko zamieniles same indexy w tablicy $_POST. Chodzilo mi o to, ze powinienes zamiast tablicy $_POST uzyc zwyklych zmiennych ($query oraz $record) czyli nie zamieniac samego 'wykonaj' na 'query', a cale $_POST['wykonaj'] zastapic $query (analogicznie na $record). No ale skoro dziala i tak ci pasuje to ok.
Go to the top of the page
+Quote Post
espanol
post
Post #9





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.06.2006
Skąd: toruń

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


owszem probowałem tak jak ty mowiłes by całe $_POST['wiersz'] (i te drugie) zamienic na $record ale to zadnego rezultatu nie przyniosło wiec zobiłem inaczej
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 - 16:29