Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Odbieranie danych metodą Get
Forum PHP.pl > Forum > Przedszkole
wariusz
Witam mam taki problem:

plik: index.php

  1. <?php
  2. echo '<a href="plik.php?lp_ciagniki='.$dane["opis"].'" target="_blank" width="640" height="480" METHOD="POST">
  3.    <img src="im.jpeg">
  4.    </a>';
  5. ?>


plik: plik.php

  1. <?php
  2. $opis = $_GET["opis"];
  3. echo $opis; // nic się nie wyświetla
  4. strlen($opis);//wyświetla się &nbsp0 - nie mam pojęcia dlaczego
  5. ?>


w pasku adresu cały opis widzę ale go nie wyświetla na stronie, razem ze zmienną $opis wysyłam jeszcze parę innych zmienny i wszystkie są wyświtlane prawidłowo, tylko opis się w ogóle nie wyświetla. Na początku myślałem że może dlatego że jest za długa, ale skoro się wyświetla w pasku adresu to chyba jest ok. Jak ktoś znajdzie chwilę proszę o pomoc.
q3d
1. Po co Ci w znaczniku a atrybut method? Jeszcze mu wartość przypisałeś post...
2. Stosuj znaki apostrofu a nie cudzysłowy w nazwach pól tablicy:

  1. <?php
  2. $_GET['nazwa_zmiennej'];
  3. ?>
Pilsener
1. Podstawy HTML - jak definiujemy odnośniki <a>
2. Podstawy PHP, tablice - zmienna tablicowa ma KLUCZ oraz WARTOŚĆ $_GET['klucz'] = 'wartość'. Powinieneś dojść do tego, co jest kluczem, a co wartością.
wariusz
wiem co jest kluczem a co znacznikiem, wiem że <a></a> jest wysyłany metodą get, jednak chciałem spróbować jeszcze czegoś innego i nie wywaliłem tego w poście. Ale ma ktoś pomysł jak to rozwiązać??
zulus
Ty przesyłasz dane w zmiennej lp_ciagniki

daj
  1. <?php
  2. $opis = $_GET['lp_ciagniki'];
  3. ?>


Po za tym sprawdź czy na pewno link zawiera dane (Czy $dane['opis'] coś zawiera).
debian
Nie lepiej zrobić to prościej?
  1. <?php
  2. if ($_GET['lp_ciagniki']=='oferta')
  3. {
  4. include('sites/oferta.php');
  5. }
  6. ?>

Lub bardziej autmatycznie (plik index.php)
  1. <?php
  2. $dir = 'strony/';
  3.  include('inc/top.inc.php');
  4.  
  5.  
  6. if (empty($_GET['lp_ciagniki'])) readfile($dir.'index.php');
  7. else
  8. {
  9.  if (is_file($dir.$_GET['lp_ciagniki'].'.php')) readfile($dir.$_GET['lp_ciagniki'].'.php');
  10.  else readfile($dir.'404.php');
  11. }
  12. include('inc/footer.inc.php');
  13.  
  14. ?>

Wówczas w drugim sposobie robisz sobie katalog strony umieszczasz w nim pliki .php z treścią newsa/artykułu sformatowanego tagami HTMLa.
a wplikach /inc/top.inc.php i /inc/footer.inc.php umieszczasz kod strony czyli w top wszystko nad newsem a w footer pod.
I jak zrobisz w /strony plik oferta.php to po wpisaniu adresu www.strona.pl/index.php?lp_ciagniki=oferta pokaże się strona z artykułem z /strony/oferta.php
Jeśli wpiszesz www.strona.pl to wyswietli się plik /strony/index.php
jeśli zaś wpiszesz www.strona.pl/?lp_ciagnik=asdfasd czyli coś czego nie ma, wyswietli się plik /strony/404.php
smile.gif proste i funkcjonalne

A jeśli chcesz łądne linki seo to w pliku .htaccess wpisujesz
Kod
RewriteEngine On
RewriteRule ^strona/(.*) index.php?lp_ciagniki=$1

Wtedy postać Twoich linków jest taka www.strona.pl/strona/oferta (tu przyjład oferta to plik z /strony/oferta.php)
Dodawanie linku
  1. <a href="/?lp_ciagniki=oferta">Oferta</a> lub <a href="./strona/oferta">Oferta</a>

Tylko jeśli chcesz mieć postać linków /bleb/ble to pamiętaj aby w ścieżce do CSSa podać tak: ../sciezka/css.css
wariusz
dzięki Debian ciekawe rzeczy napisałeś jednak mi chodzi o coś trochę innego. Problem wydaje się prosty jednak nie potrafię tego poprawić nie wiem gdzie mam błąd a jeszcze źle napisałem w poście.
z pliku index. php

  1. <?php
  2. echo '<a href="plik.php?opis='.$dane['opis'].'>tutaj jest obrazek, którego dotyczą przesyłane dane</a>';
  3. ?>


a w pliku: plik.php chce odebrać opis i go wyświetlić

  1. <?php
  2. $opis = $_GET['opis'];
  3.  
  4. echo $opis; // i tutaj się nic nie wypisuje puste pole
  5. ?>


czyli zmienna $opis jest jakby pusta w pliku plik.php, ale w paku adresu widzę że opis=jakas_wartos, czyli opis posiada jakąś wartość tylko nie wiem czemu nie potrafię jej odczytać
Pilsener
Jak masz w adresie .php?opis=blabla
A w php:
  1. <?php
  2. echo $_GET['opis'];
  3. ?>
- nic się nie wyświetla, to prawdopodobnie próbujesz przesłać w adresie jakieś niedozwolone znaki, np. polskie diaktryczne czy spację. Użyj funkcji urlencode, która zamienia np. spację na znaki dozwolone, następnie analogiczną funkcją urldecode to wyświetlisz:
  1. <?php
  2. echo '<a href="mycgi?foo=', urlencode($userinput), '">';
  3. ?>
- przykład z manuala.
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.