Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z przesyłaniem zmiennych pomiędzy stronami
Forum PHP.pl > Forum > Przedszkole
dawid17
Witam,

Mam następujący problem:

próbuję przesłać zmienną poprzez GET i za każdym razem w pliku docelowym pojawia się:

Notice: Undefined index: nazwa in
Notice: Undefined index: sku in

wiem, że oznacza to iż zmienne są puste i głowię się dlaczego.

Szczegóły:

w pliku x pobieram dane z bazy w postaci tablicy asocjacyjnej i zapisuje poszczególne wiersze pod zmiennymi $nazwa i $sku. Po czym w pliku y (inex.php) za pomocą require ładuję plik x . W tym momencie zmienne działają i wyświetla się lista produktów z tytułami generowanymi ze zmiennej $nazwa. Następnie klikając w tytuł ($nazwa) chcę przenieść się do pliku test.php (docelowo szczegóły produktu) gdzie pojawiają mi się powyżej wspomniane błędy. Próbowałem też sesji i zawsze to samo. Proszę o wyrozumiałość i pomoc. Poniżej załączam kod pliku x

  1. if ($rezultat = @$polaczenie->query("SELECT product.sku, product.nazwa_produktu, product.cena, product.cena_promocyjna, product.promocja, product.zdjecie, zawartosc_zamowienia.ilosc FROM product, zawartosc_zamowienia order by zawartosc_zamowienia.ilosc desc"))
  2. $ile_produktow = $rezultat->num_rows;
  3.  
  4. for($i=0; $i <4; $i++)
  5.  
  6. {
  7. $zl=" zł";
  8. $wiersz = $rezultat->fetch_assoc();
  9. $nazwa=$wiersz['nazwa_produktu'];
  10. $sku=$wiersz['sku'];
  11.  
  12. echo '<h3 class="name">
  13. <a href="test.php?='.$sku.'&'.$nazwa.'" >'.$nazwa.'</a>
  14. </h3>
  15. }




Plik test.php (docelowa strona szczegółów produktu)

  1. <?php
  2.  
  3. $sku = $_GET ['sku'];
  4. $nazwa = $_GET ['nazwa'];
  5. echo $nazwa;
  6. echo $sku;
  7.  
  8. ?>




Zmieniłem kod w pliku test.php i błąd zniknął natomiast nadal nie mogę wyświetlić przesłanych zmiennych (wyświetla się pusta strona)
  1. <?php
  2. $sku = $nazwa = false;
  3. if(isset($_GET['sku'], $_GET['nazwa']) && filter_var($_GET['sku'], Filter_Validate_int, array('min_range' => 1))){
  4.  
  5. $sku = $_GET ['sku'];
  6. $nazwa = $_GET ['nazwa'];
  7. echo $nazwa;
  8. echo $sku;
  9. }


Nie wiem czy ma to znaczenia ale kożystam z netbeansa
viking
Link powinien mieć postać test.php?sku=$sku&nazwa=$nazwa albo oczywiście rewrite.
dawid17
Cytat(viking @ 21.10.2016, 06:29:28 ) *
Link powinien mieć postać test.php?sku=$sku&nazwa=$nazwa albo oczywiście rewrite.


zmieniłem link. Wygląda tak ale nadal to samo ;/ kolejna noc nie przespana;/
  1. echo '<h3 class="name">
  2. <a href="test.php?sku='.$sku.'&'.$nazwa.'" = >'.$nazwa.'</a>
  3. </h3>';


wydaje mi się natomiast że te zmienne są wysyłane ponieważ po kliknięciu w link w adresie pojawia się

http://localhost/maluszek/strona/test.php?sku=9&Śpiochy
nansss93
A może lepiej tak?

  1. echo '<h3 class="name">
  2. <a href="test.php?sku='.$sku.'&nazwa='.$nazwa.'">'.$nazwa.'</a>
  3. </h3>';


?
viking
Oczywiście że poprawny jest zapis 2 chociaż lepiej było by przekazać id produktu.
Tomplus
Notice wyświetlają się gdy nie masz zadeklarowane zmiennej, więc musisz ją zadeklarować np.

  1. $nazwa = isset($_GET['nazwa'])?$_GET['nazwa']:'';
dawid17
Cytat(nansss93 @ 21.10.2016, 08:37:49 ) *
A może lepiej tak?

  1. echo '<h3 class="name">
  2. <a href="test.php?sku='.$sku.'&nazwa='.$nazwa.'">'.$nazwa.'</a>
  3. </h3>';


?

Dzięki mistrzu. Dwie noce nie przespane. uratowałeś moją rodzinę i nareszcie dziecko będzie miało tatę a mama męża smile.gif)
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.