[PHP] Zurückverlinken



  • Schön langsam komme ich mir hier schon nervig vor, aber naja...

    Ist es in PHP überhaupt möglich wieder nach Beenden eines Scripts zu einer Seite zurückzulinken? Habe da nichts entsprechendes gefunden...

    Also contact.html hat Formular -> sendet an mailtome.php -> wertet aus und sendet es an <mail> in schöner Form. Möchte nach ein paar Sekunden wieder zurück auf contact.html linken, geht sowas?

    MfG SideWinder



  • In $_SERVER['HTTP_REFERER'] steht die Seite drin, von der du kommst!



  • Die kenn ich sowieso -> möchte aber wissen wie ich wieder zurück zu ihr komme, so nach dem Motto:

    loadwebsite ( string $ pfad , string $ target );

    MfG SideWinder



  • du machst das mit header:

    header("Location: " . $_SERVER['HTTP_REFERER']);
    


  • Geht wie erwartet nicht, ich glaube du verstehst nicht ganz was ich meine, ich weiß schon welche Seite mein Script aufgerufen hat!

    Nur will ich nach Beenden des Scripts wieder zurück auf diese Seite...

    MfG SideWinder



  • dann mach es wie michamab es sagt..

    aber pass auf: vor header darf es keinen html output geben!

    nicht mal ein leerzeichen im skript



  • Wird sowieso per Formular versandt...

    MfG SideWinder



  • hä??

    ich glaube, du meinst was anderes.. *grins*

    übrigens: zieh dir zusätzlich noch self php ... (genauso aufgebaut wie self html) .. 🙂



  • Suchst du vielleicht die Weiterleitung per META-Tag?



  • hm, das mit dem Header sollte funktioniere, geht auch so:

    header("Location: seite.html");
    


  • Also damit sich jeder auskennt - ich will auf der Kontakt-Seite meiner Homepage einen Formmailer installieren, welcher mir dann die in das dort eingegebene HTML-Forumlar eingefügte Daten mir schln formatiert und zusendet. Das Formular ist in HTML mit den Feldern "name", "email" und "text".

    Gesendet wird per POST an mailtome.php:

    <?php
    
        header ( "content-type: text/plain" );
    
        $fmname = $HTTP_POST_VARS ["name"];
        $fmemail = $HTTP_POST_VARS ["email"];
        $fmtext = $HTTP_POST_VARS ["text"];
    
        $fmsendok = true;
    
        if ( !( eregi( "^[a-z \.-]+$" , $fmname ) ) )
        {
            echo "Kontrollieren Sie das Feld \"Name\".\n";
            $fmsendok = false;
        }
        if ( !( eregi( "^[a-z0-9_\.-]+@[a-z0-9_-]+\.[a-z0-9_\.-]+$" , $fmemail ) ) )
        {
            echo "Kontrollieren Sie das Feld \"E-Mail\".\n";
            $fmsendok = false;
        }
        if ( !( strlen ( trim ( $fmtext ) ) ) )
        {
            echo "Kontrollieren Sie das Feld \"Message\".\n";
            $fmsendok = false;
        }
    
        if ( $fmsendok == true )
        {
    
            $msg = "     $fmname  <$fmemail>  schreibt:
    
         $fmtext";
    
            $mailheader = "From: $name <$email>\r\n";
    
            if ( @mail ("<mail>" , "<page> - Contact" , $msg , $mailheader ) )
            {
                echo "Nachricht wurde versendet.";
            }
            else
            {
                echo "Nachricht konnte nicht gesendet werden.";
            }
        }
    
        echo "\n\nBenützen Sie den Zurück-Button ihres Browsers!";
    ?>
    

    Zuerst wird geprüft ob die eingegebenen Daten korrekt sind, danach wird versendet.

    Nachdem dieses Script beendet ist sieht man eine weiße Seite in der steht "Benützen sie den Zurück-Button ihres Browsers!", dort soll er kurz bleiben und dann wieder zurück zu contact.html linken.

    BTW: Wo ist der Unterschied echo/print?

    MfG SideWinder



  • das würde ich dann mit der obig auch schon genannten html refreshfunktion machen..

    ist aber kein php dann.

    unterschied echo print:
    print kann als ausdruck verwendet werden , echo nicht.

    for ($i=0; $i<12; print("hi") ); //geht
    for ($i=0; $i<12; echo "hi" ); //geht nicht!
    


  • Original erstellt von SideWinder:
    **
    Nachdem dieses Script beendet ist sieht man eine weiße Seite in der steht "Benützen sie den Zurück-Button ihres Browsers!", dort soll er kurz bleiben und dann wieder zurück zu contact.html linken.**

    das geht nicht mit php. mit php kannst du einen header-redirect machen, aber dabei darf, wie schon gesagt, noch nichts anderes an den client gesendet worden sein.

    was du brauchst geht ganz normal in html und zwar so:

    <html>
    <head>
    <meta http-equiv="refresh" content="5; URL=contact.html">
    </head>
    <body>
    [...]deine script ausgaben[...]
    </body>
    </html>
    

    die zahl hinter content=" gibt die sekunden an, die er warten soll.
    am besten gibst du noch einen link aus, falls der user zu ungeduldig ist,
    oder sein browser den "refresh" befehl nicht versteht...


Log in to reply