php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 12.01.2011, 18:15  
Neuer Benutzer
 
Registriert seit: 27.07.2008
Beiträge: 9
Blackeye befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Kodierung von GET-Übergabeparametern

Hallo liebe Freunde!

Ich habe ein Formular mit drei Input-Feldern die jeweils eine Auto-Suggest-Funktion besitzen. Wenn man nun das Formular abschickt wird der Inhalt der drei Felder mit einer mySQL-Datenbank verglichen und Datensätze die alle Suchkriterien erfüllen werden angezeigt.

Wenn ich nun in diese Input-Felder etwas hineinschreibe, werden die per GET übergeben. Dies funktioniert für Buchstaben und Umlaute (verwenden für die Datenbank, HTML und JavaScript eine UTF-8-Kodierung). Diese werden mir danach in der URL richtig angehängt, also nicht kodiert. Sobald ich aber ein '+' in ein Input reinschreibe, wird dies nach dem Abschicken mit '%2B' ersetzt. Dies ist bei der Auswahl der Datensätze kein Problem. Der Haken an der Sache ist jedoch folgender:

Diese Ergebnisliste kann sortiert werden (nach Name, Datum, ...). Bei diesen Links werden die GET-Parameter wieder übergeben. Und sobald ich nun den Datensatz, den die '+'-Anfrage ausgibt, sortieren will, wird daraus wieder ein '+' und es werden keine Datensätze mehr angezeigt. Klick ich nochmal auf sortieren wird aus dem '+' ein Leerzeichen.

Kodiere ich da wo die Daten die ich per GET Anhänge falsch, oder wo liegt hier das Problem?
Blackeye ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.01.2011, 19:12  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Warum benutzt du kein POST für dein Formular?

GET Parameter werden normalerweise url-kodiert...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 12.01.2011, 19:25  
Neuer Benutzer
 
Registriert seit: 27.07.2008
Beiträge: 9
Blackeye befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Warum benutzt du kein POST für dein Formular?
Weil ich der Funktion, die für die Auto-Suggest überprüft welche Vorschläge vorhanden sind, die Value der Felder per GET übergebe. Die kann ich ihr doch nicht per POST übermitteln, oder?

Zitat:
Zitat von lstegelitz Beitrag anzeigen
GET Parameter werden normalerweise url-kodiert...
Muss ich diese dann Dekodieren vor dem weiterverwenden?
Blackeye ist offline   Mit Zitat antworten
Alt 12.01.2011, 19:40  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Ich kenne deine Auto-Suggest Funktion nicht, sollte das aber ein AJAX Call sein, kann man auch POST verwenden... Ob es dann funktioniert hängt auch immer davon ab, woher das Zielscript seine Daten bezieht (aus $_GET oder aus $_POST).

Zitat:
Muss ich diese dann Dekodieren vor dem weiterverwenden?
Muss wohl, da die Werte ja kodiert bei dir ankommen...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 12.01.2011, 21:47  
Neuer Benutzer
 
Registriert seit: 27.07.2008
Beiträge: 9
Blackeye befindet sich auf einem aufstrebenden Ast
Standard

Hier mal meine Auto-Suggest-Funktion:

PHP-Code:
 $("#womit").attr("autocomplete""off").keyup(function() {
        $(
"#eintraege_womit").children().remove();
        var 
suche= $("#womit").val();
        $.
get("inc/suchewomit.inc.php?womit="+suche+"",
        function(
text){
            var 
str text.split("\n");
            $(
"#eintraege_womit").html("");
            $.
each(str, function(indexvalue) {
                if (
value == "") { return false; }
                $(
'<div>' str[index] + '</div>').appendTo("#eintraege_womit").addClass("suggest").mouseover(function() {
                    $(
this).addClass("suggestover");
                }).
mouseout(function() {
                    $(
this).removeClass("suggestover");
                }).
click(function() {
                    $(
"#womit").val($(this).text());
                });
            });
        });
    }); 
Und hier mein Formular:

PHP-Code:
<form action="index.php" method="get" accept-charset="UTF-8">
                    <
input type="text" id "wen" name="wen" value="" />
                    <
div id="eintraege_wen"></div>
                    <
input type="text" id="wo" name="wo" value="" />
                    <
div id="eintraege_wo"></div>
                    <
input type="text" id="womit" name="womit" value="" />
                    <
div id="eintraege_womit"></div>
                    <
input class="button" type="submit" value="FINDEN" /> 
                </
form
Ist es besser die Werte beim Absenden des Formulars per Post zu übergeben?
Blackeye ist offline   Mit Zitat antworten
Alt 13.01.2011, 11:36  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Ob besser oder schlechter kann ich nicht sagen, vermutlich wird GET genausogut funktionieren wie POST, sofern du dich nicht im Encoding-Dschungel verirrst

Bleib mal bei GET und dekodier im PHP die erhaltenen Werte mit urldecode() (oder rawurldecode())
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 13.01.2011, 20:21  
Benutzer
 
Registriert seit: 03.07.2009
Beiträge: 58
PHP-Kenntnisse:
Fortgeschritten
Thalo befindet sich auf einem aufstrebenden Ast
Standard

Hi,

Zitat:
GET Parameter werden normalerweise url-kodiert
post ebenfalls
Thalo ist offline   Mit Zitat antworten
Alt 14.01.2011, 11:20  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Aber in Formularen ist die Kodierung implizit, bei Übergabe über einen URI nicht ... soweit ich weiß
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 14.01.2011, 18:36  
Benutzer
 
Registriert seit: 03.07.2009
Beiträge: 58
PHP-Kenntnisse:
Fortgeschritten
Thalo befindet sich auf einem aufstrebenden Ast
Standard

Sollte ebenfalls durch http://de.selfhtml.org/javascript/ob..._uri_component gejagt werden
Thalo ist offline   Mit Zitat antworten
Alt 18.01.2011, 01:25  
Neuer Benutzer
 
Registriert seit: 27.07.2008
Beiträge: 9
Blackeye befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Bleib mal bei GET und dekodier im PHP die erhaltenen Werte mit urldecode() (oder rawurldecode())
wenn ich jetzt urldecode() hernehme streicht er mir gleich die ++ weg

und wenn ich rawurldecode() hernehme funktionierts beim ersten decoden, danach streicht er mir aber wieder die ++ weg ...
Blackeye ist offline   Mit Zitat antworten
Antwort


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
Kodierung im Kontaktformular invidicult PHP Tipps 2010 21 21.10.2010 12:52
[Erledigt] Hex Kodierung ? puwu PHP Tipps 2010 4 16.10.2010 22:30
[Erledigt] Welche Kodierung ist das ... puwu PHP Tipps 2010 8 30.09.2010 23:53
Kodierung einer Datei bei Upload ändern goldschatz PHP Tipps 2010 2 10.09.2010 16:03
Server erkennt UTF-8 Kodierung nicht DJ_RhoxxZ PHP Tipps 2010 21 31.08.2010 18:18
UTF8 Kodierung goldschatz PHP Tipps 2010 6 11.08.2010 20:30
Kodierung Russich omex PHP Tipps 2010 4 08.07.2010 16:43
Verschiedene Kodierung innerhalb der selben Seite Frank HTML, Usability und Barrierefreiheit 4 26.06.2010 03:05
Kodierung in exif raupe_90 PHP Tipps 2009 24 27.12.2009 23:45
[Erledigt] utf8 kodierung Screeze Datenbanken 48 27.02.2009 17:35
Link mit Übergabeparametern und img-tag sams9 PHP Tipps 2008 5 15.04.2008 14:30
Kodierung UTF-8 Russisch anegin PHP-Fortgeschrittene 8 24.03.2008 13:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
get parameter sonderzeichen, php get parameter, php übergabeparameter, php get parameter encoding, get parameter umlaute, php utf8 get, get parameter codierung, get parameter übergeben, datum per get übergeben, umlaute formular get parameter, php url richtig kodieren, php post parameter sonderzeichen, html übergabeparameter, umlaute get parameter php, url get kodierung, get parameter codieren, get kodierung, http://www.php.de/php-fortgeschrittene/76047-kodierung-von-get-ssoebergabeparametern.html, form paramter sonderzeichen encode post, html get parameter umlaute übergeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:52 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