Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Cannot generate system identifier for general entity
Forum PHP.pl > Forum > Przedszkole
propage
Nie wiem do jakiej kategori ma należeć ten temat

kiedy puszczam stronę przez validator dostaje taki komunikat
"
  1. Line 246, Column 372: cannot generate system identifier for general entity "c" . …_koszyka" href="index.php?p=cetegory&c=Narzdzia_czce&s_c=Narzdzia_Laserowe_i_

    An entity reference was found in the document, but there is no reference by that name defined. Often this is caused by misspelling the reference name, unencoded ampersands, or by leaving off the trailing semicolon (winksmiley.jpg. The most common cause of this error is unencoded ampersands in URLs as described by the WDG in "Ampersands in URLs".

    Entity references start with an ampersand (&) and end with a semicolon (winksmiley.jpg. If you want to use a literal ampersand in your document you must encode it as "&" (even inside URLs!). Be careful to end entity references with a semicolon or your entity reference may get interpreted in connection with the following text. Also keep in mind that named entity references are case-sensitive; &Aelig; and æ are different characters.

    If this error appears in some markup generated by PHP's session handling code, this article has explanations and solutions to your problem.

    Note that in most documents, errors related to entity references will trigger up to 5 separate messages from the Validator. Usually these will all disappear when the original problem is fixed.
"
Linki "index.php?p=cetegory&c=Narzdzia_czce&s_c=Narzd .. " są tworzone w htaaccesie, jeśli zaminie "&" na "&" wtedy plik hta przestaje działać i cała strona nie dziła, co jest przyczyną wyświetlania tego błędu ?
phpion
No przecież pisze jak byk:
Cytat
If you want to use a literal ampersand in your document you must encode it as "&" (even inside URLs!).

czyli trzaskasz:
  1. <a href="index.php?p=cetegory&amp;c=Narzdzia_czce&amp;s_c=Narzdzia_Laserowe_i">Link</a>
szopen
Cytat(propage @ 30.08.2008, 09:38:25 ) *
Linki "index.php?p=cetegory&c=Narzdzia_czce&s_c=Narzd .. " są tworzone w htaaccesie, jeśli zaminie "&" na "&amp;" wtedy plik hta przestaje działać i cała strona nie dziła, co jest przyczyną wyświetlania tego błędu ?

Nie wiem czy dobrze zrozumiałem. & kodujesz jako &amp; _tylko_ w plikach XML (XHTML). W htaacces zwykły &.
propage
"Nie wiem czy dobrze zrozumiałem. & kodujesz jako &amp; _tylko_ w plikach XML (XHTML). W htaacces zwykły &."

Tak ale jak daje w ktaacces zwykly & to wyskakuje mi ten blad w walidatorze, jeśli dam &amp; w hataacces to validator nie wywala błedu, jednak wartosci z GET sa złe, więc zrobi coś takiego
  1. <?
  2. foreach($_GET as $key => $value)
  3. {
  4. if(substr($key, 0, 4) == 'amp;'){
  5. $new_key = substr($key, 4, strlen($key));
  6. unset($_GET[$key]);
  7. $_GET[$new_key] = $value;
  8. }
  9.  
  10. }
  11. ?>

Troche to bezsensu, no ale działa

Dodatkowo walidator wywala mi błąd na tej samej podstronie, ale co ktoreś odświeżenie że nie może orczytać kodowania, chodzi mu o poleski litery, strona jest kodowana zapisana utf-8 i pisze ja uzywając tego kodowania, więc nie wiem o co chodzi
phpion
.htaccess nie ma żadnego wpływu na walidację strony! W .htaccess wpisujesz regułki z wykorzystaniem zwykłego & (coprawda Eclipse PDT oznacza to jako błąd ale tym się nie przejmuj). Następnie na stronie, jak napisał @szopen, podajesz linki w postaci &amp; Po kliknięciu w link w adresie przeglądarki zobaczysz samo &, bez amp;.
szopen
Dokładnie. Do serwera ma iść zapytanie ze znakiem & . Można sobie podejrzeć pakiety, albo nawet logi serwera -- linijki z GET. & jest tylko zakodowanym znakiem & w plikach XML. Jeśli w zapytaniu, jakie idzie do serwera masz ?zm1=wart1&zm2=wart2 , to PHP widzi
Kod
array(2) {
  ["zm1"]=>
  string(5) "wart1"
  ["amp;zm2"]=>
  string(5) "wart2"
}

a tego raczej nie chcemy.
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.