php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.11.2006, 16:58  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard http_build_query() liefert falsches ergebnis?

ich hab in meinem cms die variablen $cont für den content und $lang für die sprache.

wenn ich nun folgendes ausgebe:
PHP-Code:
<?php
$arr 
= array('cont' => 'start',
           
'lang' => 'de');
$url http_build_query($arr);
echo 
$url;
?>
erhalte ich folgende ausgabe:
Zitat:
cont=start〈=de
wie kann das sein? bin recht verwirrt im moment. wenn ich statt lang lng tippsle ist das ergebnis korrekt. kann ich ja ohne probleme machen, jedoch würde mich nur diese tatsache hier interessieren.
__________________
mfg Alexander Haim
Promaetheus ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.11.2006, 17:21  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

ist das im html-quellcode auch so? &lang; ist nämlich ein html named entity. möglicherweise kann wiederum dieses nicht dargestellt werden. nur ne vermutung, habs nicht ausprobiert.

[edit]
ist tatsächlich so, habs ausprobiert. könntest also auch 'quot' => 'any' benutzen und hättest den gleichen effekt.
nikosch ist offline  
Alt 09.11.2006, 17:40  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard

mist. dann muss ich wohl auf $lng umsteigen oder noch ein str_replace() einfügen.

sonderbar ist nur dass er das doch umwandelt obwohl ihm ja das ; fehlt: $lang= vs. $lang;

EDIT: es ist mir jetzt aufgefallen dass das bei echo $url nur im mozilla firefox so angezeigt wird. im ie und so weiter wird das normal angezeigt. wenn man url als link weitergibt ist der fehler auch beim mozilla weg. wird also nur bei der stringausgabe an den browser so doof dargestellt.
__________________
mfg Alexander Haim
Promaetheus ist offline  
Alt 09.11.2006, 18:42  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich kann den Fehler nicht nachvollziehen. Was ist denn bei dir als arg_separator.output eingetragen? &amp; oder &?
Es sollte &amp; darin stehen und deshalb auch nicht zu Verwechslungen mit &lang kommen.
Zergling-new ist offline  
Alt 09.11.2006, 19:17  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

versteh das problem nicht. ist doch bloß vom browser so dargestellt. in der uri müßt es doch funktionieren.
nikosch ist offline  
Alt 09.11.2006, 19:42  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Bei header() darfst du http_build_query() übrigens nicht verwenden.
Zergling-new ist offline  
Alt 09.11.2006, 21:09  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard

aha. ich hatte als arg_sep nur ein & drin. werde das auf &amp; ändern. wurde allerdings wie gesagt nur vom browser firefox so dargestellt. in der url hats gepasst. danke für den header hinweis. ist mir nicht ganz klar wieso, denn mit http_build_query wird ja kein einziges zeichen an den browser ausgegeben, sondern nur in einem string gespeichert oder?
__________________
mfg Alexander Haim
Promaetheus ist offline  
Alt 09.11.2006, 21:59  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Schau mal in deine phpinfo() und da auf die Zeilen
Code:
arg_separator.input     &         &
arg_separator.output    & amp;    & amp;
http_build_query() optimiert dir für HTML den Query-String, daher & amp; als Entity.
header() hat aber nichts mit HTML zu tun, sondern sendet nur einen HTTP-Redirect an den Browser. Und in dem Header ist bestimmt kein Formatierungscode ala HTML nötig

Kann aber wie gesagt immernoch nicht nachvollziehen, wieso dein Firefox das falsch darstellt.
Zergling-new ist offline  
Alt 09.11.2006, 23:09  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard

mhm... so ist das. ich hatte die workaround funktion für php von php.net. hab jetzt grad das hier gefunden:
Zitat:
Beachten Sie: Seien Sie vorsichtig bei der Verwendung von Variablen, die HTML-Sonderzeichen enthalten. Zeichen wie &amp, &copy und &pound werden vom Browser geparst und das betreffende echte Zeichen statt des HTML-Namens verwendet. Dies ist eine offensichtliche Schwierigkeit, die das W3C seit Jahren zu verdeutlichen sucht. Die entsprechende Referenz finden Sie hier: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2. PHP lässt die Umstellung des Argument-Separators auf das W3C-empfohlene Semikolon mittels der .ini-Direktive arg_separator zu
bezüglich firefox kann ich nichts sagen. hab die version 1.5.0.8 (von heute ) und da wird das in der tat falsch dargestellt. im ie normal. tja... meine phpinfo passt.
Zitat:
arg_separator.input & &
arg_separator.output &amp; &amp;
auch am server. muss am mozilla liegen.
__________________
mfg Alexander Haim
Promaetheus ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
Volltextsuche liefert kein Ergebnis xarok PHP Tipps 2007 10 02.01.2007 13:44
mysql_fetch_assoc falsches ergebnis cycap Datenbanken 10 16.06.2006 15:14
strpos() liefert kein Ergebnis PHP Tipps 2006 2 02.04.2006 20:09
Oracle decode - Bei Select ohne Ergebnis ? Cyberbob_at_tot Datenbanken 6 09.03.2006 12:04
Zufäliges Ergebnis ermitteln PHP Tipps 2006 1 09.01.2006 16:58
Überprüfung ob Afrage Ergebnis liefert PHP Tipps 2007 4 21.11.2005 15:54
SQL liefert falsches Ergebnis Plague Datenbanken 2 29.09.2005 22:45
Ergebnis einer DBabfrage in HTML Dateien Suchen u. anzeigen PHP Tipps 2005-2 0 15.08.2005 22:35
get_cfg_var liefert kein Ergebnis zurück PHP Tipps 2005 3 05.01.2005 13:31
Berechnung gibt falsches Ergebnis aus stefan-miti PHP Tipps 2004-2 13 26.12.2004 15:30
is_dir liefert falsches Ergebnis PHP-Fortgeschrittene 9 05.11.2004 16:11
falsches ergebnis von @fsockopen <- flasches ergebnis Filewalker PHP Tipps 2004 0 07.10.2004 17:33
nach ergebnis sortieren PHP Tipps 2004 15 11.09.2004 14:15
distinct liefert falsches Ergebnis! PHP Tipps 2004 4 03.07.2004 20:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http_build_query umlaute, http_build_query, http_build_query amp, http_build_query lang, php http_build_query, http_build_query php, http_build_query &amp;, http_build_query entities, named query liefert falsche ergebnisse, php http_build_query umlaute, http_build_query umlauts, \&\ . http_build_query, http_build_query \[]\, http_build_query default, umlaute http_build_query, http_build_query no umlauts, http_build_query nicht semikolon, http_build_query(, http_build_query umlaut ie firefox, http_build_query umlaub ie firefox

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.