Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]zmienne przerobic na $_post
Forum PHP.pl > Forum > Przedszkole
espanol
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
mike
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
espanol
  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
adonis101
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.
nospor
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...
phpion
$_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">).
espanol
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
phpion
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.
espanol
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
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.