WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Formulär med okänd e-postavsändare (https://www.wn.se/forum/showthread.php?t=27480)

lisa 2008-02-26 13:56

Hej!

Jag har försökt göra ett formulär där besökare ska kunna tipsa kompisar om mitt nyhetsbrev men jag lyckas inte. Problemet för mig är att mailto: ska vara den adress besökaren skriver in i formuläret och som jag alltså inte känner till. Hur löser jag det?

Netikett 2008-02-26 14:25

Det kan vara bra om du skriver vilket språk du programmerar i. Som asp eller php etc.

allstars 2008-02-26 17:45

tipsa en vän:

ditt namn _____________
din epostadress ____________

din väns namn ___________
din väns epostadress ___________

Validera serverside om adresserna verkar riktiga och skicka därefter.

Dennis Holm 2008-02-26 18:38

gör ett formulär som allstar säger. sedan gör ett asp eller php script som tar emot det.

Enkel variant är.
tips_formulär.html

<form method="post" action="skicka_tips.php">
Kompis Email: <input name="email" type="text">

<input type="submit">
</form>

Sedan en skicka_tips.php
<?php
$subject = "Ett tips ifrån en vän";
$email = $_REQUEST['email'] ;
$message = "Ditt meddelande med lite info och blablabla" ;
$headers = "From: [email protected]";
$sent = mail($email, $subject, $message, $headers) ;
if($sent)
{print "Tack, din vän har fått tipset"; }
else
{print "Det blev något fel där. ERROR ERROR!"; }
?>

Hoppas det hjälpte.
koden jag angav för tips_formulär.html kan du helt enkelt lägga in där du vill ha din lilla tipsruta.
Detta kräver dock att din webhost tillåter mail() och har PHP.
Skicka ett PM om det inte funkar som du vill :).

KarlRoos 2008-02-26 20:25

Hört talats om Google? ;)

turboraketti 2008-02-27 09:21

Är det möjligen så att du har ett formulär av den här typen?
Kod:

<form action="mailto:[email protected]?subject=Kolla%20vallingtrasket.se">
Din väns epostadress: <input type=text id=epost name=epost /><br />
<input type=submit id=submit value="Tipsa!" />
</form>

Och att problemet är att få den inmatade epostadressen till action-attributet på form-elementet? Har inte testat (kan finnas säkerhetsspärrar kan gott tänkas) men kanske kan man göra det med javascript:
Kod:

var subm = document.getElementById('submit');
if( subm.attachEvent ) subm.attachEvent( 'onclick', setFormAction ); // The Microsoft way
else subm.addEventListener( 'click', setFormAction, false ); // The W3C way
function setFormAction() {
 var form = document.forms[0]; //if it's the first form in the document
 var epost = document.getElementById( 'epost' );
 form.action = 'mailto:'+epost.value+'?Kolla%20vallingtrasket.se';
}

Är du med på hur jag menar?

@KarlRoos
Du riskerar att uppfattas som tyken... Kan du inte istället skriva något i stil med "Om du googlar på 'tipsa en vän html' hittar du t ex http://www.stadtaus.com/sv/php_scripts/tell_a_friend_script/"? Snabbt gjort, låter trevligare och fyller samma syfte. IMHO...

Redigering: @KarlRoos: Och när jag klickade på din länk inser jag att det var ju så du hade gjort... Ursäkta mitt pekfinger... :)

lisa 2008-03-26 11:27

Tack för era svar! Jag missade att bevaka tråden så det tog mig lite tid innan jag hittade svaren. Nu har jag i det närmaste löst problemet. TACK!

Dennis Holm 2008-03-26 13:12

ett problem som jag aldrig stött på för jag aldrig haft behovet faktist..
när jag fyller innehållet i emailet så vill jag ha in html osv.
vad behöver jag lägga till då?
någon header eller?
för att endast lägga in detta funkar inte för mig.
Citat:

<?php
$subject = "ämne o annan stuff." ;
$email = "[email protected]" ;
$message = ' <html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
</head>
<body>
en länk just de länken!
</body>
</html> ' ;
$headers = "From: från@domänetsomrockar.com" ;
$sent = mail($email, $subject, $message, $headers) ;
if($sent)
{print "mail skickat."; }
else
{print "Det blev något fel där. ERROR ERROR!"; }
?>


lisa 2008-03-26 13:36

Kan man dessutom i formuläret (tips_formular.html) ha en rad för den egna e-postadressen och att denna adress syns som avsändare?

Dennis Holm 2008-03-26 13:59

i det formuläret jag just skrev så är detta din avsändare ifall de ska svara på emailet.
Citat:

$headers = "From: från@domänetsomrockar.com" ;
om du istället gör så det ser ut såhär
Citat:

$headers = "From: . $_POST['avsandare'] . " ;

så får du ha en ruta som kallas "avsandare".

jag tror det var rätt syntax

Dennis Holm 2008-03-26 14:00

eller "request" istället för post beroende på om du använder GET eller POST i ditt formulär.
jag rekommenderar dig att använda post så man inte kan bara ha en url och skicka ett email.

lisa 2008-03-26 14:30

Nu börjar jag fatta - det ska ju vara MIN e-postadress, precis som du gjorde från början. (Eller snarare sajtens e-postadress.) Nu har jag döpt ett fält till "name" och försökte så här:
$message = "Hej! $_REQUEST['name'] vill tipsa dig om sajtens månadsbrev</a>!" ;
Men det funkade ju inte... Bättre förslag?

oddholst 2008-03-26 23:05

Citat:

Originally posted by lisa@Mar 26 2008, 15:30
Nu börjar jag fatta - det ska ju vara MIN e-postadress, precis som du gjorde från början. (Eller snarare sajtens e-postadress.) Nu har jag döpt ett fält till name och försökte så här:
message = Hej _REQUEST[name] vill tipsa dig om sajtens månadsbrev/a ;
Men det funkade ju inte... Bättre förslag?

$message = "Hej! " . $_REQUEST['name'] . " vill tipsa dig om sajtens månadsbrev</a>!" ;

Dennis Holm 2008-03-26 23:41

aa tack oddholst.. kändes som det var något fel där :).
usch va bortskämd man blivit när man har andra som kodar åt en :)

lisa 2008-03-28 08:59

Jamen, det är ju helt underbart vilken hjälp jag får av er! Nu funkar det förstås som det ska!

Bara en liten detalj kvar: Kunde jag lägga in kod i meddelandet också? Jag vill alltså ha en länk med utan att den syns eftersom att den är så lång och ful. Har provat att lägga in månadsbrevmen det funkar inte.

Magnus_A 2008-03-28 09:30

Detalj och detalj, du vill alltså skicka ditt brev i html-format. Det betyder kortfattat att du lägger med det html-formaterade texten som en separat sektion i brevet, och anger en avdelare så att mottagande mailklient vet var textbrevet slutar och html-brevet börjar.
Nu kan du också hänga på bilder, css-formatering och annat kul, tänk på att allt måste vara inline och att speciellt Outlook kan vara rätt så grinigt på att få allt att synas.
Detta är rätt krångligt att göra på egen hand, rekommenderar att använda en färdig class som till exempel phpMailer.

lisa 2008-03-28 10:02

Det där övergår min förmåga. Jag hoppades det bara var några teckens här och där som saknades...


Alla tider är GMT +2. Klockan är nu 09:15.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson