Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]$PHP SELF
Forum PHP.pl > Forum > Przedszkole
Earth
Gdy napisze coś takiego:
  1. <?php
  2. <A HREF = '".$PHP_SELF."' >Usuń</A>
  3. ?>

Link jest w porządku: /index.php?admin_nr_menu=1&panel=1

Ale jak zrobię tak:
  1. <?php
  2. <A HREF = '".$PHP_SELF."&delete=1' >Usuń</A>
  3. ?>

to link wygląda tak:
/&delete=1

Co robię nie tak?
webdice
1. Nie

  1. <?php
  2. $PHP_SELF
  3. ?>


tylko

  1. <?php
  2. $_SERVER['PHP_SELF']
  3. ?>


2. Powinno być tak:

  1. <?php
  2. print '<a href="' . $_SERVER['PHP_SELF'] . '">Usuń</A>';
  3.  
  4. // lub
  5.  
  6. print '<a href="' . $_SERVER['PHP_SELF'] . '&delete=1">Usuń</A>';
  7. ?>
fiszol
1. Nie
  1. <?php
  2. print '<a href="' . $_SERVER['PHP_SELF'] . '&delete=1">Usuń</A>';
  3. ?>


tylko
  1. <?php
  2. print '<a href="' . $_SERVER['PHP_SELF'] . '&amp;delete=1">Usuń</A>';
  3. ?>
Earth
$_SERVER['PHP_SELF'] - pomogło. Zawsze używałem $PHP_SELF i wszystko działało, czas zmienić przyzwyczajenia.

A co do &amp; chętnie dowiedział bym się do czego to służy.

P.S Dzięki za pomoc.
webdice
&amp; i & to praktycznie to samo, ja nie widzę żadnej róznicy.
kresh
Znak "&" (ampersand) jest zabroniony i przeznaczony do oznaczeń encji. Encją jest na przykład "&nbsp;". Ampersand rozpoczyna encję a ";" (średnik) ją kończy. Nie ma w języku HTML encji "&delete;", stąd na przykład validator zgłosi błąd. Jeśli chcemy użyć ampersanda jako osobnego znaku, należy go zamienić na encję - "&amp;". Dotyczy to także linków.
Jednym słowem wszystkie znaki "&" w HTML zamieniamy na "&amp".

Więcej informacji o encjach
webdice
Szczerze mówiąc tak dawnej myślałem, ale validator nigdy mi takich błędów nie zgłaszał, a nie trafiłem na informacje o tym, więc myślałem że na jedno wychodzi smile.gif
tomilipin
Trzeba jednak pamiętać, że wypisując HTMLa używamy &amp; np:
  1. <?php
  2. print 'black &amp; white';
  3. ?>

ale używamy już zwykłego Ampersanda gdy printujemy java script:
  1. <?php
  2. print '<script language="JavaScript" type="text/javascript">setTimeout("window.location.replace('plik.php&var=value')", 2000);</script>';
  3. ?>


inaczej validator wywala błędy.
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.