1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

URL Parameter übergeben und auf Zielseite auslesen

Dieses Thema im Forum "Konfiguration" wurde erstellt von Michael1411, 3. Juni 2012.

Schlagworte:
  1. Michael1411

    Michael1411 Well-Known Member

    Registriert seit:
    11. Mai 2011
    Beiträge:
    74
    Zustimmungen:
    0
    Hallo zusammen,

    ich suche nach einer Möglichkeit in WordPress Parameter an eine Zielseite zu übergeben und dort auszulesen.

    Übergabe als: http://www.beispiel.de?id=beispiel in Kombination mit einem GET Befehl scheint nicht zu funktionieren...

    Gibt es diesbezüglich eine Lösung für WordPress wie Parameter sauber übertragen und ausgelesen werden können?

    Danke und Gruss
    Michael
     
  2. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Klar geht das, warum auch nicht. Du darfst halt nur keinen Parameter benutzen, die Wordpress auch (intern) verwendet, wie z.B. diese: m, p, w, s, page, page_id usw.


    Gruß
    Ingo
     
  3. Michael1411

    Michael1411 Well-Known Member

    Registriert seit:
    11. Mai 2011
    Beiträge:
    74
    Zustimmungen:
    0
    Hallo Ingo,

    vielen Dank für die schnelle Rückmeldung.

    Dann muss ich wohl irgendetwas falsch gemacht haben.

    Konkret möchte ich auf eine andere interne Seite verlinken und dem Link einen Parameter mitgeben, der dann auf der anderen Seite in einem iFrame ausgelesen wird.

    Beispielsweise:

    http://www.beispiel.de/produkte?produkt=34

    -> Auf der Seite "Produkte" sollte im iFrame dann das Produkt mit der ID 34 angezeigt werden.

    Das iFrame würde dann beispielsweise so aussehen:

    <iframe src="http://www.beispiel.de/produkte?w=XXX&h=XXX&produkt=<?php echo $_GET["produkt"]; ?>"></iframe>

    Leider scheint die Übernahme des Parameters allerdings nicht zu funktionieren. Könnte das an WordPress liegen oder mache ich da offensichtlich etwas falsch?

    Gruss
    Michael
     
  4. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Doch, so sollte es eigentlich funktionieren. Es könnte sein, daß irgendein Plugin die GET-Parameter verändert. Ansonsten kannst Du auch einen Query-Parameter bei WP registrieren und anschließend mit der WP-Funktion get_query_var darauf zugreifen.

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Zugriff könnte so aussehen:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Gruß
    Ingo
     
  5. Michael1411

    Michael1411 Well-Known Member

    Registriert seit:
    11. Mai 2011
    Beiträge:
    74
    Zustimmungen:
    0
    Hi Ingo,

    erneut vielen Dank für die freundliche Hilfe.

    Wie es scheint, liegt es an dem PHP Befehl im Code denn sobald ich diesen in das iFrame einfüge und dieses ausführe, erscheint folgende Meldung:

    Server Error in '/' Application.

    A potentially dangerous Request.QueryString value was detected from the client (test="<?php echo $_GET[").

    [FONT=Arial, Helvetica, Geneva, SunSans-Regular, sans-serif] Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. To allow pages to override application request validation settings, set the requestValidationMode attribute in the httpRuntime configuration section to requestValidationMode="2.0". Example: <httpRuntime requestValidationMode="2.0" />. After setting this value, you can then disable request validation by setting validateRequest="false" in the Page directive or in the <pages> configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case. For more information, see http://go.microsoft.com/fwlink/?LinkId=153133.

    Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.QueryString value was detected from the client (test="<?php echo $_GET[").

    Source Error:

    The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL:

    1. Add a "Debug=true" directive at the top of the file that generated the error. Example:

    <%@ Page Language="C#" Debug="true" %>

    or:

    2) Add the following section to the configuration file of your application:

    <configuration>
    <system.web>
    <compilation debug="true"/>
    </system.web>
    </configuration>

    Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode.

    Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario.
    Stack Trace:

    [HttpRequestValidationException (0x80004005): A potentially dangerous Request.QueryString value was detected from the client (test="<?php echo $_GET[").] System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) +11484260 System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) +82 System.Web.HttpRequest.get_QueryString() +209 System.Web.UI.Page.DeterminePostBackMode() +100 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +11439394 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +11438910 System.Web.UI.Page.ProcessRequest() +269 System.Web.UI.Page.ProcessRequest(HttpContext context) +167 ASP.whitelabel_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\3cbac058\2d9bf4f5\App_Web_fnvvsgsq.5.cs:0 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +625 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270
    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272 [/FONT]

    Ist das normal bzw. habe ich was falsch gemacht bzw. vergessen?

    Gibt es eine Alternative zu der PHP Lösung?

    Gruss
    Michael
     
  6. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Die Seite im IFrame hat aber nichts mit Wordpress zu tun, oder?

    Ich bin etwas ratlos oder habe vieleicht doch nicht so richtig verstanden, was Du machen willst.

    Die Seite, die das IFrame enthalten soll, ist eine Wordpress-Seite?
    Gibst Du den HTML-Code für das IFrame direkt im WP-Editor in den Text eines Artikels/einer Seite ein? Wenn ja, dann kann es mit dem <?php echo $_GET["produkt"]; ?> nicht funktionieren. Der Text wird ja nicht von PHP interpretiert.

    Gruß

    Ingo

     
  7. Michael1411

    Michael1411 Well-Known Member

    Registriert seit:
    11. Mai 2011
    Beiträge:
    74
    Zustimmungen:
    0
    Guten Morgen Ingo,

    richtig - die Seite im iFrame hat nichts mit WordPress zu tun.

    Eigentlich hatte ich erst das iFrame samt PHP Code direkt im Template hinterlegt. Dann kam auch nicht die Fehlermeldung, allerdings wurden die Parameter zwar in der URL übermittelt aber nicht im iFrame übernommen.

    Dann habe ich versucht den Code im WordPress-Editor zu hinterlegen, was logischerweise, wie man sieht, ja auch nicht gehen kann.

    Daher bin ich irgendwie ratlos wie ich es schaffen kann, dass der Parameter korrekt übermittelt wird.

    Konkret geht es darum den übermittelten Parameter in die iFrame URL zu integrieren, sodass die Seite im iFrame dann die entsprechenden Daten anzeigt.

    Geht das überhaupt?

    Gruss
    Michael
     
  8. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Es geht ohne Hilfsmittel eigentlich nur im PHP-Code der Template-Datei. Das könnte in etwa so aussehen:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Falls es im Text stehen soll, könnte man einen Shortcode erstellen, der dann des GET-Parameter zurückgibt:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Dieser Code kommt z.B. in die Datei functions.php Deines Themes.
    Dann kannst Du im Editor wie folgt auf GET-Parameter zugreifen:
    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Gruß
    Ingo
     
    umdenker gefällt das.
  9. Michael1411

    Michael1411 Well-Known Member

    Registriert seit:
    11. Mai 2011
    Beiträge:
    74
    Zustimmungen:
    0
    Hallo Ingo,

    vielen, vielen Dank! Das hat funktioniert!!! :D

    Der Fehler war, dass ich das iFrame im Template falsch eingefügt hatte. Ich hatte lediglich das iFrame normal reinkopiert und dann den PHP Befehl für die Parameterübernahme ergänzt, das hat nicht funktioniert.

    Wenn ich jedoch das komplette iFrame wie in deinem Beispiel per PHP einfüge geht's! Spitze!

    Ich wünsche noch einen schönen Abend.

    Gruss
    Michael
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden