Ankündigung

Einklappen
Keine Ankündigung bisher.

Links bei dynamischem Content Aufruf funktioniert nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Links bei dynamischem Content Aufruf funktioniert nicht

    Hallo,
    ich habe ein Problem mit Links bzgl. dynamischen Content.

    Ich lade den Content über den GET-Parameter, allerdings funktionieren dann Links wie

    PHP-Code:
    <a href="?content=test">Zurück zu den Artikeln</a
    nicht.

    index.php
    PHP-Code:
    <?php
    require_once('classes/config.php');
    if(!
    class_exists('frontend')){ require_once('classes/class.frontend.php');}
    $fe = new frontend();    
    ?>


    <!DOCTYPE html>
    <html>

    <head>
    <meta http-equiv="Content-Type" content="UTF-8" />
    <meta charset="utf-8"> 

    <title>order</title>

    </head>

    <body>

        <div id="main">
            <div id="content">
    <?php
    /*
     * Aus der URL auslesen, welcher Contentbereich angezeigt
     * werden soll. Den Namen in Kleinbuchstaben umwandeln, sodass
     * die Groß/Kleinschreibweise egal ist.
     */
    if (isset($_GET['content'])) {
        
    $content strtolower(trim($_GET['content']));
    } else {
        
    $content '';
    }

    /*
     * Angängig vom ausgewählten Content nun den entsprechenden
     * Inhalt einfügen
     */
    switch ($content) {
        
        
    // Falls dynamic_content.php?content=main
        
    case 'main':
            include 
    'template/main.inc.php';
            break;
        
        
    // Falls dynamic_content.php?content=test
        
    case 'test':
            include 
    'template/test.inc.php';
            break;

        
        
    // Falls nichts oder ein undefinierter Wert angegeben ist
        
    default:
            include 
    'template/main.inc.php';

    }

    ?>
            </div>
        </div>

        
    </body>

    </html>
    main.inc.php
    PHP-Code:
            <?php

            
            $fe
    ->textausgabe();
            
    ?>

        <form method="GET" action="" target="_self">
         <input name="textfeld" type="text"><br>
         <input type="submit" value="Go!">
        </form>
    <a href="?content=test">Zurück zu den Artikeln</a>
    class.frontend.php
    PHP-Code:
    <?php
        
    class frontend
        
    {    
            
            function 
    textausgabe()    //Textausgabe
            
    {
                
    $text mysql_escape_string($_GET['textfeld']);
                echo 
    $text;
            }        
            
        }
    ?>
    test.inc.php
    PHP-Code:
    <?php
    echo "Hallo ich bin die Testseite";
    ?>
    Das ganze dient zur Übung von OOP.
    Wenn ich nun den oben genannten Link im Browser anklicke, passiert zunächst nichts, die Adresszeile im Browser ändert sich aber.. wenn ich nun F5 drücke funktioniert der Link. Gebe ich die URL direkt ein, funktioniert es auch.

  • #2
    Hallo Taker

    Ich würde sowieso verzichten auf solche urls wie (?content=test)

    Schreibe doch diese um in z.B content/test oder besser nur den alias

    dann mit einer .htaccess Datei leitest Du alle anfragen auf index.php um.
    Als nächsten holst Du Dir die Url prüfst auf dessen Gültigkeit und Validierung und erst dann holst du Dir den passenden Inhalt oder rufst den passenden Controller auf.

    Kommentar


    • #3
      PHP-Code:
      $text mysql_escape_string($_GET['textfeld']);
                  echo 
      $text
      Kann mir jemand erklären, was der Sinn davon ist?
      [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
      [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

      Kommentar


      • #4
        Hi,

        wie ChrisvA schon schreibt, ist das hier etwas sinnlos, was du mit mysql_real_escape_string machst! Wenn Du daten maskieren wilslt, für Datenbankabfragen, dann nutz nicht mysql_*, da es veraltet ist, sondern gleich mysqli oder PDO. In PDO kannst du dir sowas gleich ersparen, wenn Du mit prepared Statements arbeitest.

        mfg wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          @ strub: Das heißt das wäre nicht mehr der "aktuelle" Weg um dynamischen Content zu erzeugen?
          Ich wollte eben nur den Inhalt dynamisch nachladen..

          Zitat von ChrisvA Beitrag anzeigen
          Kann mir jemand erklären, was der Sinn davon ist?
          Ich wollte eventuell Daten aus einer Datenbank abrufen bzw. einen Datenbankconnect als Klasse hinzufügen.. dazu dachte ich mir, dass ich direkt diese Eingabe escape..

          Kommentar


          • #6
            Das heißt das wäre nicht mehr der "aktuelle" Weg um dynamischen Content zu erzeugen?
            Ja aktuell oder nicht spielt keine Rolle, eher was der Zweck ist. Den vom SEO her gesehen wären die Urls besser.
            Sehe hier:
            http://www.smashingmagazine.com/2011...url-rewriting/

            Kommentar


            • #7
              Zitat von strub Beitrag anzeigen
              Ja aktuell oder nicht spielt keine Rolle, eher was der Zweck ist. Den vom SEO her gesehen wären die Urls besser.
              Sehe hier:
              http://www.smashingmagazine.com/2011...url-rewriting/
              Danke!


              Zum eigentlichen Problem, was ich jetzt natürlich verstehen möchte WIESO.. habe dem href ein target="_self" angehangen.. es funktioniert..

              Scheint wohl daran zu liegen, dass der Browser ja nur erstmal die index.php sieht, welche sich ja bis auf die GET Variable nicht ändert.. somit lädt er die Seite nicht neu..
              edit: Naja nicht so wirklich.. im Browser funktioniert das.. wenn ich die Seite z.B. auf dem iPhone aurfrufe und im Vollbildmodus vom Homescreen starte, dann bewirkt das target="_self", dass sich die Seite im Safari öffnet ..

              Kommentar

              Lädt...
              X