1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

URL an E-Mail Adresse verschicken

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von pepepy, 16.01.07.

  1. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Hallo,

    ich möchte eine Seite an einen Freund mit der kompletten URL an seine E-Mail Adresse verschicken.
    Bin aber ein PHP-Dummie.

    Auf jeder Seite wollte ich ein Button oder einen Text "An Freund senden".

    Durch einen Klick darauf öffnet sich ein neues Fenster dem die URL der Seite
    von der es kommt weitergegeben wurde.

    Die URL ist auf der jetzigen Seite als Link klickbar.
    Darunter zwei Mailfelder: "geben Sie Ihre E-Mail Adresse ein"
    "geben Sie die E-Mail Adresse Ihres Freundes ein".

    Vielleicht noch ein Textfeld, und Abschicken.

    Für Hilfe wäre dankbar
    Gruß
    pepepy
     
  2. Salzi

    Salzi Prinzenapfel

    Dabei seit:
    29.08.06
    Beiträge:
    555
    übergib doch einfach die aktuelle URL mit ans Forumlar.

    <?php echo $_SERVER['PHP_SELF']?> gibt die aktuelle URL aus.
    Gibt es noch zusätzliche Parameter die übergeben werden sollen: <?php echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']?>

    Hoffe das bringt dich weiter
     
  3. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Danke für Deine Antwort! :)

    So richtig habe ich das noch nicht verstanden.
    Mit der Zeile <?php echo $_SERVER['PHP_SELF']?>
    wird die aktuelle Adresse ausgegeben.

    Ich möchte aber auf Seite A einen Link (diese Seite einem Freund senden)
    auf Seite B setzen, z.B.
    <a href="anfreundsenden.html">diese Seite einem Freund senden</a>
    Seite B wird geöffnet, oben ist als Link die Adresse der Seite A zu sehen, z.B.:
    http://www.meineseite.de/aktuelles/index.php

    Das funktioniert mit Deinem Script so noch nicht - oder?

    Dann noch die Felder zum Eintragen der E-Mail Adressen.
    Ein Formular das den Link der Seite an meinen Freund sendet.

    Danke im Voraus
    pepepy
     
    #3 pepepy, 16.01.07
    Zuletzt bearbeitet: 16.01.07
  4. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Ja, also, ähm, sollen wir das jetzt für Dich programmieren? Versuch's doch mal :)

    Wie würdest Du die Sache angehen?
     
  5. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Ich bin jemand der PHP wahrscheinlich nie in seine Birne krigt.
    Deshalb meine Frage hier im Forum, bisher konnte ich kein Script finden.

    Ich kann wirklich nur kopieren, begreifen kann ich es nicht.

    Also nicht böse sein, ich will auch niemanden ausnutzen.
    Es gibt Leute die haben Spass an so einer Aufgabe. Auf die hoffe ich.

    Gruß
    pepepy
     
  6. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Hier habe ich ein Script:
    <a href="anfreundsenden.php?adresse=<?=str_replace("?", "%_%", $_SERVER['REQUEST_URI'])?>">an Freund senden</a>

    Das funktioniert aber nur von der Index-Seite aus.

    Befinde ich mich in einem Unterverzeichnis funktioniert es nicht mehr, da erst auf das Unterverzeichnis
    und dann auf die Seite B "anfreundsenden.php" verlinkt wird.

    Zum Beispiel:
    http://localhost:8888/referenzen/anfreundsenden.php?adresse=/referenzen/

    Und die Fehlermeldung im Browser dem entsprechend:

    Not Found

    The requested URL /referenzen/anfreundsenden.php was not found on this server.

    Richtig wäre /anfreundsenden.php

    Wo liegt denn hier der Fehler?

    Gruß
    pepepy
     
  7. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Ha - es war der Slash:
    <a href="/anfreundsenden.php?adresse=<?=str_replace("? ", "%_%", $_SERVER['REQUEST_URI'])?>">an Freund senden</a>

    Wie kann man denn variable E-Mail Adressen verschicken?
    Bisher hatte ich nur feste Adressen an die das Formular geschickt werden sollte.

    Hier soll der Link der Seite A an völlig verschiedene E-Mail Adressen geschickt werden können.

    Freue mich über Hilfe :)
    Gruß
    pepepy
     
  8. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Zum Beispiel so wie bei heise.de. Wie es geht? Man erzeugt ein Formular, welches dann auf dem Server zum Beispiel mit PHP verarbeitet wird. Dort wird dann eine E-Mail generiert und versendet. Dafür eine Copy-Paste-Lösung abzuliefern ist nahezu unseriös, da es in einigen Bereichen schon darauf ankommt, wie die Struktur der WebSite und des Servers sich darstellen.
     
  9. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Ich bin jetzt so weit, das die Seite A ihre Adresse an Seite B weitergibt,
    die auch sichtbar ist.
    Formular funktioniert nur halb. Die Mails kommen an.
    Alle Felder werden ausgegeben nur der Link nicht.

    Alle Felder haben im Formular einen Namen nur der Link nicht.

    Liegt es vielleicht daran?

    Das kommt als Mail:
    --------------------------------------------
    Diese Seite ist sehenswert: hier sollte die vollständige URL stehen

    pepe
    Diese Seite musst du dir ansehen.

    Ciao
    --------------------------------------------


    Seite A:

    <a href="/anfreundsenden/index.php?adresse=<?=str_replace("?", "%_%", $_SERVER['REQUEST_URI'])?>">an Freund senden</a>


    Seite B:
    Um die ganze URL zu schicken, muss ich sicher die Zeichenkette "http://www.meineseite.de" vor str_replace einfügen?

    <?php
    //Formulardaten empfangen
    $link = str_replace("%_%", "?", $_GET['adresse']);
    $name = trim($_POST["name"]);
    $email = trim($_POST["email"]);
    $nachricht = trim(substr($_POST["nachricht"],0,150));
    $button = $_POST["button"];

    //include ("../funktionen/funktionen.php");
    function check_email($email) {
    //email nach dem @-Zeichen aufgetrennt
    $addarray = explode("@",$email);

    //gab es mehr oder weniger als ein @-Zeichen? Dann falsch
    if(count($addarray) != 2) return false;

    //ist der Teil vor dem @-Zeichen leer? Dann falsch
    if(strlen($addarray[0]) == 0) return false;

    //ist der Domain_teil nach dem @-Zeichen kleiner als 5 Zeichen? Dann falsch
    if(strlen($addarray[1]) < 5) return false;

    //Punkt f¸r Toplevel-Domain auslesen
    $punktarray = explode(".",$addarray[1]);

    //gab es weniger als einen Punkt, dann ung¸ltig, falsch
    if(count($punktarray) < 2) return false;

    //TopLevelDomain merken
    $tld = $punktarray[count($punktarray)-1];

    //TLD hat mindestens 2, max. 6 Zeichen
    if(strlen($tld) >= 2 && strlen($tld) <= 6) return true;
    }

    //Formulardaten versendet?
    if($button){

    //Pflichtfelder leer?
    if(!$name || !$email || !$nachricht){

    $meldung[] = "Bitte alle * Felder ausfüllen";
    }


    //Email-Adresse falsch?
    $check = check_email($email);
    //$check = true;
    if(!$check){

    $meldung[] = "Bitte geben Sie eine korrekte E-Mail ein";
    }

    //alles in Ordnung?
    if(!$meldung){

    //email versenden!!!
    $subject = "Diese Seite ist sehenswert ".date("d.m.Y H:i:s");

    $mailbody = "Einen Freund informieren: $link\n\n".
    "$name\n$nachricht\n\n".
    "Ciao";

    //Das @-Zeichen vor mail unterdrückt Verbindungsfehler
    $versandt = @mail("$email_empfaenger", $subject, $mailbody, "From: $email");

    if($versandt) header("Location: /anfreundsenden/antwort.php?name=".urlencode($name));
    //eigene Fehlerausgabe
    else $meldung[] = "Verbindungsprobleme! Versuche Sie es später noch einmal.<br /><br />";

    }


    }


    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>Einen Freund informieren</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>

    <h3>An Freund senden:</h3>
    <?php

    if(is_array($meldung)){
    echo implode("<br />", $meldung);
    }

    ?>
    <form action="/anfreundsenden/index.php" method="post">

    <p>
    <!-- HTML-nachricht -->
    Link an Freund senden: http://www.meineseite.de<?php echo $link; ?>
    </p>
    <p>Ihr Name *<br />
    <input type="text" name="name" value="<?php echo $name; ?>" maxlength="50" size="50" />
    <br />

    Ihre E-Mail Adresse *<br />
    <input type="text" name="email" value="<?php echo $email; ?>" maxlength="50" size="50" />
    <br />

    E-Mail Adresse des Empf&auml;ngers*<br />
    <input type="text" name="email_empfaenger" value="<?php echo $email_empfaenger; ?>" maxlength="50" size="50" />
    <br />

    Nachricht *<br />
    <textarea name="nachricht" cols="50" rows="5" wrap="virtual"><?php echo $nachricht; ?></textarea>
    <br />

    <input type="submit" name="button" value="versenden" />

    </p>
    </form>

    </body>
    </html>
     
  10. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    //Formulardaten empfangen
    $link_adresse = str_replace("%_%", "?", $_GET['adresse']);
    $name = trim($_POST["name"]);
    $email = trim($_POST["email"]);
    $nachricht = trim(substr($_POST["nachricht"],0,150));
    $button = $_POST["button"];

    Auf diese Weise sollte die URL mitgegeben werden - oder?

    Link an Freund senden: <a id="link" name="link_adresse">http://www.meineseite.de<?php echo $link_adresse; ?></a>

    Ich kann es leider nicht testen. 1&1 hat Mail-Probleme.

    Kann man das so machen?
     
    #10 pepepy, 18.01.07
    Zuletzt bearbeitet: 18.01.07
  11. musiq

    musiq Gast

    sieht sehr nach einer fünfmaligen HerzOP aus. warum nicht, vorausgesetzt du benutzt deinen mac mit mail, einfach "Apfel+i" drücken? ;D
     
  12. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Wat???
     
  13. musiq

    musiq Gast

    Du nix verstehen? apfel+i drücken und dann gehen alles. Wat gibts in Nordeney.
     
  14. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Die Haben seit Tagen Probleme mit falschen Rechnungen und falschen Absendern.
    Mal funktionert's mal nicht.
    Die Mails von meinem Link-Formular kommen glaube ich nicht mehr an.

    Aber ich wollte ja nur wissen, ob mein Script so funktioneren kann.
    Oder ob es hier eine bessere Lösung gibt.
     
  15. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    So schlimm?
     
  16. musiq

    musiq Gast

    Wenn du bei einer Website bist, und du Apfel+i drückst, dann erscheint mail, mitsamt dem Link, der website. Wirklich bequem. Geht das nicht bei dir?
     
  17. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Iss ja schön, aber ich suche keine Tipps und Tricks für Mac OS X.
     
  18. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Tyler.Durden, die Problemstellung, dessen Lösung sich pepe derzeit nähert, ist, diese Empfehlung als Web-Site-Feature abzubilden (daher auch das Forum »Web-Programmierung«. Dein Hinweis ist hilfreich, jedoch für ein ganz anderes Problem ;)

    Streichen wir also die letzten Dialoge; Äh, pepe, ich habe die Fragestellung zu Deinem Beitrag von 15.03 Uhr nicht ganz verstanden, wo hakt's?
     
  19. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Die Adresse der Seite A wurde an Seite B (Formular) übergeben - wunderbar.
    Auf Seite B erscheint die URL der Seite A als Text, z.B.:
    Link an Freund senden: http://www.meineseite.de/seiteA.php

    Das kam allerdings nicht mit der E-Mail mit. Da stand nur:
    Link an Freund senden:

    Da dachte ich mir, ich müsse an dieser Stelle einen Namen vergeben, den PHP auslesen und mitschicken kann. Nur wie gibt man einem Text einen Namen?
    Also habe ich mir folgendes ausgedacht:

    Link an Freund senden: <a id="link" name="link_adresse">http://www.meineseite.de<?php echo $link_adresse; ?></a>

    Auf diese Weise, so dachte ich wird PHP die Adresse mitschicken.
    Und nun wollte ich wissen ob das so gehen kann oder ob es da eine bessere Lösung gibt.
     
  20. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    285
    Mit Sicherheit würde die URL in der Mail ankommen,
    wenn sie in einem Formular-Element stehen würde:

    Link an Freund senden: <input type="text" name="link_adresse" value="<?php echo $link_adresse; ?>" maxlength="50" size="50" disabled="1" />

    Das sieht aber unschön aus. Deshalb als Text.
     

Diese Seite empfehlen