Hjälp med webbformulär!

Tråden skapades och har fått 20 svar. Det senaste inlägget skrevs .
1

När det gäller installationer, felsökning av system, hårdvara och nätverk så är jag ett ess. Men, när det kommer till hemside-byggande så är jag totalt komplett värdelös.
Kan någon hjälpa mig tillrätta med följande problem så vore jag oerhört tacksam.

Följande länk:

http://www.lemshaga.se/omvarld/email.html

.....innehåller ett litet formulär och meningen är att man fyller i det och klickar på "Skicka". Detta har fungerat utmärkt förut men nu när man klickar på "Skicka" så öppnas e-mail klienten istället.

Vad är fel?

Sidan ligger på en Mac OS X Server 10.2.8.

  • Oregistrerad
  • 2004-03-10 20:25

Du har i actionattributet för form-taggen angivit en epostadress och då kommer det skickas via epost-klient. Förstår inte riktigt hur du fått det att fungera innan?

I vilket fall, lösningen på ditt problem är att skicka datan till någon form av script, tex PHP. Ett förslag är som följer (obs: otestad kod):

<?
$email = ""; // definera variabeln
while(list($key , $variable) = each($_POST)){ // gå igenom allt som postats till formulätet och dela upp nyckel och värde i varsin variabel
$email .= $_POST[$key] . ":" . $_POST[$key] = $variable . "\n"; // lägg varje skickad variabel till formuläret på en egen rad
}

mail("name@host.com", "formulärdata" , $email);

?>

Hoppas det löser sig!

//P

(edit: kom på att du kanske ville veta vad varje värde kom från för fält också)

Det är det som är det lustiga. Jag fattar inte heller hur det har fungerat tidigare. Men skaparen av formuläret säger att det har fungerat, ända tills hemsidan uppdaterades. Vid uppdateringen så byttes hela web-mappen ut, men just detta formulär är orört och ligger på exakt samma plats i mappstrukturen.

Det jag undrar är hur en webservern ska kunna skicka ett mail utan att själv ha ett mailkonto, men det kanske funkar så, eller?

  • Oregistrerad
  • 2004-03-10 20:49
Citat:

Det jag undrar är hur en webservern ska kunna skicka ett mail utan att själv ha ett mailkonto, men det kanske funkar så, eller?

Om det är mitt script du syftar på så skickar den ofta från root@ eller något liknande. Det kan du dock ställa in genom att sätta dina egna headers:

$headers ="MIME-Version: 1.0\r\n"; 
$headers.="From: Webformuläret <formular@webben.com>\n"; 
$headers.="Reply-To: no-reply@unknown.com <no-reply@unknown.com>\n"; 
$headers.="X-Priority: 1\n";
$headers.="X-MSMail-Priority: High\n"; 
$headers.="X-Mailer: Mitt Egenhändigt Gjorda Mailprogram i PHP\n"; 

Sen använder du bara ...

mail("name@host.com" , $subject , $email , $headers);

... för att skicka. Det hela bygger givetvis på att servern (och PHP) är konfigurerat för att skicka mail. Men av din första post att döma är det inget större problem för dig.

Och för att svara jättetydligt på din fråga; ja det går ändå

//P

PHP är så vitt jag vet inte konfigurerat eller installerat.....(Det är jag som har installerat servern så jag borde veta)

Tack för hjälpen. Jag ska tänka lite mera på saken och testa mig omkring.

  • Oregistrerad
  • 2004-03-10 21:03

Jag skulle rekommendera en installation av det om du vill kunna posta saker genom formulär. Alla andra språk (på *NIX-system iaf) som jag har sätt är milsvidder svårare att göra sådana här enkla saker med.

Jajaj, vielen glück!

//P

Ursprungligen av Patrick Lindgren:

Jag skulle rekommendera en installation av det om du vill kunna posta saker genom formulär. Alla andra språk (på *NIX-system iaf) som jag har sätt är milsvidder svårare att göra sådana här enkla saker med.

Vilka språk då? C? Assembler?

Nej men allvarligt, att det skulle bli "milsvidder svårare" att skicka ett mail om man använder ett annat språk än PHP är helt enkelt inte sant. På en OS X-burk finns både Ruby, Perl och Python förinstallerade, och att skicka e-post är barnsligt enkelt i åtminstone Ruby och Python. I båda de språken räcker det med mellan två och fyra rader kod för att ansluta till smtp-servern och skicka iväg ett mail, så det är absolut inte särskilt krävande.

Annars så är det bara att följa Danne V:s tutorial så har man ett fungerande formmail-skript på ett par minuter. Den enda anpassningen man behöver göra för OS X är att sökvägen till sendmail är "/usr/sbin/sendmail -oi -t" och att skriptet ska läggas i "/Library/WebServer/CGI-Executables/". Snabbt och smärtfritt!

Jag har inte tittat närmare på ditt formulär men formulären med typ:

<form name="anmalan" action="mailto:info@domän.se" method="post" enctype="text/plain" onsubmit="alert('Anmälan är skickad!');">

bla
bla
bla

<input type="Image" src="../Images/skicka.gif" value="Submit" border="0">
</form>

Fungerar bara i vissa browsers/mailprogram. Inte med tex. Safari - OS X - Entourage
Det är inte webbservern som skickar dessa utan mailklienten utan att man ser det.
M.a.o. om du testar detta på en OS 9 maskin med IE så skall du se att det fungerar...

Det räknas som en dålig lösning, helt enkelt

  • Medlem
  • Karlstad
  • 2004-03-11 22:00

"vanliga" formulär med mailto-taggar funkar inte i alla webbläsare och i alla sammanhang. Bl.a. har Mozilla-läsare på Mac en förmåga att starta epostklienten istället för att skicka formuläret.
Dessutom är du beroende av användarnes individuella set-up.
Det enda sättet att verkligen se till att ett formulär blir skickat är att ha ett server-side skript som sköter processandet.
Jag vet inte om en Mac-server funkar som en Linux (borde den inte det?), men jag har en liten anspråkslös tutorial här som kanske kan hjälpa:
http://www.vendel.info/tut/formmail.html

Danne

EDIT: Skulle skriptet som jag rekommenderar inte passa, så finns det en uppsjö av "formmail" skripter, båda såna som kostar pengar och såna som är gratis. Kolla t.ex. på www.hotscripts.com eller gör en Google.

Senast redigerat 2004-03-11 22:56

Tackar....har ordnat fram en PHP-bok som jag ska studera lite närmare. (Förbannat också, jag som lovat mig själv att aldrig sätta mig in i websnickeri)

  • Medlem
  • Karlstad
  • 2004-03-11 23:09
Ursprungligen av Martin Pettersson:

Tackar....har ordnat fram en PHP-bok som jag ska studera lite närmare. (Förbannat också, jag som lovat mig själv att aldrig sätta mig in i websnickeri)

Det behöver du ju inte.
Om du har perl och sendmail (vilket man väl har i Apachen på Mac? Jag vet nada om servrar), så klämmer du in skriptet jag rekommenderade på fem minuter och konfigurerar det på en kvart.
Eller har jag missat nåt?

Danne

Så här gör man i Lasso!

I min pågående kampanj att visa hur vackert och enkelt det är på den ljusa sidan för er som fastnat i PHP-träsket, så har jag knåpat ihop ett litet exempel på detta i Lasso.

Om du har skapat ett formulär som har följande namn på fälten:

From_Email
From_Name
Subject
Message

och sedan har du ställt in din action i formuläret på att vara en fil som du tex döper till send.lasso och den ligger i samma mapp som din forumlärfil, så behöver du bara peta in detta i send.lasso-dokumentet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Skicka epost med Lasso</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>

<BODY>
[Output_None]
Mellan output_none och /output_none så skriver Lasso inte
ut den texten och de saker som står där, men dessa saker
"processas". 


Ta emot innehållet i meddelandet från formuläret
[Var: 'From_Name'=(Action_Param:'From_Name')]
[Var: 'From_Email'=(Action_Param:'From_Email')]
[Var: 'Message'=(Action_Param:'Message')]
[Var: 'Subject'=(Action_Param:'Subject')]

Skapa en snygg avsändare genom att sätta ihop namn
och epost. 

[Var: 'From'=$From_Name + ' <' + $From_Email + '>']

Det blir en avsändare som ser ut sålunda:
'Ola Andersson <Ola@intelligentmammals.se>'

Sätt vissa parametrar för vart meddelandet skall skickas,
normalt läser jag in detta från en "inställningsfil" för
hela siten.

[Var: 'Host'='xxx.immitt.net'] (Mailservern)
[Var: 'To'='Ola@immitt.com'] (Mottagaradressen)

Skicka meddelandet:
[Email_Send: -Host=$Host,
  -To=$Email,
  -From=$From,
  -Subject=$Subject,
  -Body=$Message]

Skriv ett tack till användaren!
[/Output_None]
<P>Tack för ditt meddelande, någon kommer att 
svara på det så fort som möjligt. 
</P>
</BODY>
</HTML>

Enjoy!

(Vi erbjuder abbonemang för kontaktforumlär till epost-lösningar via Lasso som ligger på 83:- per månad.)

/Ola

Ursprungligen av Taz_1999:

Så här gör man i Lasso!

Lasso? Tror mig bestämt har hört dig säga något om det innan...
Seriöst, det vore kul att lära sig. Någon bra bok att rekomendera?

/Kristofer

Ursprungligen av Kristofer G:

Lasso? Tror mig bestämt har hört dig säga något om det innan...
Seriöst, det vore kul att lära sig. Någon bra bok att rekomendera?

/Kristofer

Jag håller i den kurs som Studentlitteratur har om Lasso:

http://www.studentlitteratursoftware.se/utbildning/

Jag har för ändamålet slitit med en ny webbsite om Lasso, men andra projekt kommer ivägen hela tiden, så den är inte klar (har sagt det i mer än ett år nu...). Nu har Lasso 7 kommit, så man för börja jobba med en uppdatering (igen):

http://lassokurs.intelligentmammals.se/

Det finns en bok om Lasso och den tar upp Lasso 5 (vet inget om eventuella uppdateringar):

Pressmeddelande:
http://www.blueworld.com/blueworld/news/06.19.02-LP5DG.html

Utgivaren:
http://www.wordware.com/computer/lasso.shtml

Lasso referens (alla kommandon + syntax + exempel + kommentarer)

http://ldml.blueworld.com/

Mailinglista om Lasso

http://listsearch.blueworld.com/LassoTalk.lasso

Mer länkar på min site. Välkommen över på den ljusa sidan!

/Ola

vet om inte lasso gör det själv, men du kanske borde lägga till lite fler headers, tex, X-Sender, X-Mailer, content-type osv..
Nu kan jag inte mail RFC'n utantill, men jag har för mig att det är mindre chans att fastna i diverse spamfilter om man specificera en mängd mer eller mindre relevanta headers som ska skickas med...

Ursprungligen av johan dansk:

vet om inte lasso gör det själv, men du kanske borde lägga till lite fler headers, tex, X-Sender, X-Mailer, content-type osv..
Nu kan jag inte mail RFC'n utantill, men jag har för mig att det är mindre chans att fastna i diverse spamfilter om man specificera en mängd mer eller mindre relevanta headers som ska skickas med...

Vill man lägga till flera headers så kan man göra det, läs mera här:

http://ldml.blueworld.com/LDMLReference.0.LassoApp?tag=513

/Ola

  • Oregistrerad
  • 2004-03-12 15:50
Citat:

Nej men allvarligt, att det skulle bli "milsvidder svårare" att skicka ett mail om man använder ett annat språk än PHP är helt enkelt inte sant. På en OS X-burk finns både Ruby, Perl och Python förinstallerade, och att skicka e-post är barnsligt enkelt i åtminstone Ruby och Python. I båda de språken räcker det med mellan två och fyra rader kod för att ansluta till smtp-servern och skicka iväg ett mail, så det är absolut inte särskilt krävande.

Hehe, väntade på detta svar Jag syftade specifikt på Perl som jag anser har en högre inlärningströskel än PHP. Vad gäller Ruby och Python har jag inte hört talas om den första och inte använt den andra så det kan jag inte uttala mig om men Perl tycker jag är på tok för komplicerat för sådana här enkla saker.

//P

Ursprungligen av Patrick Lindgren:

Hehe, väntade på detta svar Jag syftade specifikt på Perl som jag anser har en högre inlärningströskel än PHP. Vad gäller Ruby och Python har jag inte hört talas om den första och inte använt den andra så det kan jag inte uttala mig om men Perl tycker jag är på tok för komplicerat för sådana här enkla saker.

Jo, Net::SMTP i Perl är lite mer trasslig att använda, men då har man å andra sidan väldigt bra dokumentation tillgänglig via terminalen. Med kommandot "man Net::SMTP" så får man några väldigt användbara exempel. Som den Perl/PHP->Ruby-switcher jag är så rekommenderar jag å andra sidan hellre Ruby och den eleganta Net::SMTP-klass som finns i standardbiblioteket, men det är ju en smaksak.

  • Oregistrerad
  • 2004-03-13 13:31

Ola: Utan att på något sätt vara kritisk måste ju Lasso anses vara en lite annorlunda lösning som kräver en del specialprogram för att fungera (väl?). Hur i allsin dar kom du på att du skulle börja programmera i det och inget annat 'vanligt' språk?

//P

Ursprungligen av Patrick Lindgren:

Ola: Utan att på något sätt vara kritisk måste ju Lasso anses vara en lite annorlunda lösning som kräver en del specialprogram för att fungera (väl?). Hur i allsin dar kom du på att du skulle börja programmera i det och inget annat 'vanligt' språk?

//P

Vad menar du med annorlunda? Antalet användare? Huruvida programmet är med i Microsofts standardsortiment?

Lasso är inte mera annorlunda än vad någon av de andra alternativen på marknaden är, som tex PHP, ASP, Cold Fusion, WiTango osv. Alla dessa programvaror är konkurrenter inom samma kategori av programvaror som kallas för Middleware.

För att få Lasso att fungera installerar du ett program på din webbserver (programmet installeras med en riktig installerare som gör alla inställningar som behövs och det installerar även MySQL som medföljer gratis), sedan använder du ett webbaserat gränssnitt för att lägga upp användare, databaser, rättigheter och andra roliga inställningar. Inget konstigt alls.

Att installera PHP + MySQL kräver att man laddar hem och installerar enligt följande:

http://www.entropy.ch/software/macosx/php/#install
http://www.entropy.ch/software/macosx/mysql/#install

(Två paket utvecklade av en privatperson, vilket visserligen är snällt, men varför?)

Sedan installerar man ett annat program som heter PHPMyAdmin, med vilket man kan få ett webbgränssnitt mot sina användare och databaser:

http://www.phpmyadmin.net/home_page/
(Hittar inte vid en snabb sökning installationsinstruktionerna för OS X.)

I Lasso-fallet, efter installationen är det bara att börja skapa databasbaserade webblösningar med Lasso mot MySQL genom att i din HTML-kod skriva in Lasso-kod (som kan skrivas på två sätt, med script-syntax som liknar PHP och andra scriptspråk, eller med Lasso-syntax). Jag gör detta mest i Dreamweaver och ibland jobbar jag lite i BB Edit också. Vet att många andra Lasso-utvecklare jobbar i GoLive. Precis som PHP-utvecklare också gör.

Lasso översätter dina databasförfrågningar som du formulerar i Lasso till vilken databas du nu pratar med, är det MySQL så översätter Lasso till ett språk som den förstår, är det FileMaker, så översätter den till ett språk som den förstår osv. Vill jag byta databas från tex FileMaker till MySQL så behöver jag därför inte ändra i min Lasso-kod.

I PHP-fallet är det något liknande, men där blandar du SQL-kommandon för den databasen du vill prata med PHP-kommandon och med HTML för att göra sidor och prata med databaser.

Att köpa Lasso 7 kostar 8674:- ex moms. Att köpa PHP kostar ingenting och MySQL kostar $200 (den kommersiella licensens som du skall köpa enligt villkoren för MySQL om du skall utveckla kommersiella applikationer, samma kommersiella licens ingår i Lasso-priset ovan.) Lasso kan prata med ca 150 olika databaser varav MySQL, FileMaker Pro och Microsoft SQL Server hör till de som jag testat att bygga lösningar för. Lasso går att installera i Mac OS X, Windows (lite olika varianter).

Det var Joakim Jardenberg på företaget Infinit som visade Lasso på ett seminarium som arrangerades av Apple en gång för mycket länge sedan. Jämfört med alternativen då (ASP, C++), så var förstås Lasso mycket mycket enklare. Sedan kom även PHP och jag har kikat på det några gånger men min åsikt är att PHP-kod är ful och krånglig att skriva och "pratig" i jämförelse med Lasso-kod, alltså tar det längre tid och det är där som man direkt tjänar in den lilla peng som Lasso kostar i sammanhanget. Lasso är mycket enklare än PHP på varenda punkt man kan tänka sig att jämföra och eftersom prestanda, antalet databaser man kan jobba med och den trevliga installationen och administrationen alla talar till Lassos fördel, så tycker jag det är självklart med Lasso. Har använt Lasso sedan version 2.

Det finns en gammal diskussion som heter Lasso vs PHP där du kan läsa mera om mina argument. Du kan också söka på bara Lasso, tror att jag lagt näsan i blöt i varenda diskussion om Lasso som finns (och några till).

1
Bevaka tråden