Hur skickar man en webbsida via e-post? Den enklaste formen för att skicka data via e-post med HTML och PHP Hur man skickar ett bokmärke via e-post

En av de mest populära funktionerna på webbplatsen är ansöknings- eller beställningsformuläret, varifrån data skickas via e-post till webbplatsägaren. I regel är sådana formulär enkla och består av två eller tre fält för datainmatning. Hur skapar man en sådan beställningsblankett? Detta kräver användning av språk HTML-uppmärkning och programmeringsspråket PHP.

HTML-markeringsspråket i sig är enkelt; du behöver bara ta reda på hur och var du ska placera vissa taggar. Med PHP-programmeringsspråket är saker och ting lite mer komplicerade.

För en programmerare är det inte svårt att skapa ett sådant formulär, men för en HTML-layoutdesigner kan vissa åtgärder verka svåra.

Skapa ett datainlämningsformulär i html

Den första raden blir som följer

Detta är en mycket viktig del av formuläret. I den anger vi hur uppgifterna kommer att överföras och till vilken fil. I det här fallet överförs allt POST-metoden filen send.php. Programmet i denna fil måste följaktligen ta emot data, den kommer att finnas i postarrayen och skicka den till den angivna e-postadressen.

Låt oss gå tillbaka till formen. Den andra raden innehåller ett fält för att ange ditt fullständiga namn. Har följande kod:

Formulärtypen är text, det vill säga användaren kommer att kunna skriva in eller kopiera text hit från tangentbordet. Namnparametern innehåller namnet på formuläret. I det här fallet är det fio, det är under detta namn som allt som användaren angett i detta fält kommer att överföras. Platshållarparametern anger vad som kommer att skrivas i det här fältet som en förklaring.

Nästa rad:

Här är nästan allt sig likt, men namnet på fältet är e-post och förklaringen är att användaren anger sin e-postadress i detta formulär.

Nästa rad kommer att vara "skicka"-knappen:

Och den sista raden i formuläret kommer att vara taggen

Låt oss nu sätta ihop allt.





Låt oss nu göra fälten i formuläret obligatoriska. Vi har följande kod:





Skapa en fil som accepterar data från HTML-formuläret

Detta kommer att vara en fil som heter send.php

I filen, i det första steget, måste du acceptera data från postarrayen. För att göra detta skapar vi två variabler:

$fio = $_POST["fio"];
$email = $_POST["e-post"];

Variabelnamn i PHP föregås av ett $-tecken och ett semikolon placeras i slutet av varje rad. $_POST är en array till vilken data från formuläret skickas. I html-formuläret anges sändningsmetoden som method="post". Således är två variabler hämtade från html-formulär. För att skydda din webbplats måste du skicka dessa variabler genom flera filter - php-funktioner.

Den första funktionen konverterar alla tecken som användaren försöker lägga till i formuläret:

I det här fallet skapas inte nya variabler i php, utan befintliga används. Vad filtret kommer att göra är att omvandla tecknet "<" в "<". Также он поступить с другими символами, встречающимися в html коде.

Den andra funktionen avkodar URL:en om användaren försöker lägga till den i formuläret.

$fio = urldecode($fio);
$email = urldecode($email);

Med den tredje funktionen tar vi bort mellanslag från början och slutet av raden, om några:

$fio = trim($fio);
$email = trim($email);

Det finns andra funktioner som låter dig filtrera php-variabler. Deras användning beror på hur orolig du är för att en angripare ska försöka lägga till programkod till detta html-formulär för e-postinlämning.

Validering av data överförd från HTML-formulär till PHP-fil

För att kontrollera om denna kod fungerar och om data överförs kan du helt enkelt visa den på skärmen med hjälp av ekofunktionen:

echo $fio;
eka"
";
echo $email;

Den andra raden här behövs för att separera utdata från php-variabler i olika rader.

Skicka mottagen data från ett HTML-formulär till e-post med PHP

För att skicka data via e-post måste du använda e-postfunktionen i PHP.

mail("till vilken adress som ska skickas", "brevets ämne", "Meddelande (brevets brödtext)","Från: från vilken e-post brevet skickas \r\n");

Till exempel måste du skicka data till e-posten till webbplatsägaren eller chefen [e-postskyddad].

Ämnet för brevet ska vara tydligt och brevets budskap ska innehålla det som användaren angav i HTML-formuläret.

post(" [e-postskyddad]", "Ansökan från webbplatsen", "Fullständigt namn:".$fio.". E-post: ".$email ,"Från: [e-postskyddad]\r\n");

Det är nödvändigt att lägga till ett villkor som kontrollerar om formuläret skickades med PHP till den angivna e-postadressen.

if (mail(" [e-postskyddad]", "Beställ från sajten", "Fullständigt namn:".$fio.". E-post: ".$email ,"Från: [e-postskyddad]\r\n"))
{
echo "meddelande skickat framgångsrikt";
) annat (
}

Således kommer programkoden för send.php-filen, som skickar HTML-formulärdata till e-post, att se ut så här:

$fio = $_POST["fio"];
$email = $_POST["e-post"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
//echo $fio;
//eko"
";
//echo $email;
if (mail(" [e-postskyddad]", "Ansökan från webbplatsen", "Fullständigt namn:".$fio.". E-post: ".$email ,"Från: [e-postskyddad]\r\n"))
( echo "meddelande skickat framgångsrikt";
) annat (
echo "fel uppstod när meddelandet skickades";
}?>

Tre rader för att kontrollera om data överförs till filen kommenteras bort. Om det behövs kan de tas bort, eftersom de bara behövdes för felsökning.

Vi placerar HTML- och PHP-koden för att skicka in formuläret i en fil

I kommentarerna till den här artikeln ställer många människor frågan om hur man ser till att både HTML-formuläret och PHP-koden för att skicka data till e-post finns i en fil, och inte två.

För att implementera detta arbete måste du placera HTML-koden för formuläret i send.php-filen och lägga till ett villkor som kontrollerar förekomsten av variabler i POST-matrisen (denna matris skickas från formuläret). Det vill säga, om variablerna i arrayen inte finns, måste du visa användaren formuläret. Annars måste du ta emot data från arrayen och skicka den till mottagaren.

Låt oss se hur du ändrar PHP-koden i filen send.php:



Ansökningsformulär från sajten


//kontrollera om variabler finns i POST-matrisen
if(!isset($_POST["fio"]) och !isset($_POST["e-post"]))(
?>





) annat (
//visa formuläret
$fio = $_POST["fio"];
$email = $_POST["e-post"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
if (mail(" [e-postskyddad]", "Ansökan från webbplatsen", "Fullständigt namn:".$fio.". E-post: ".$email ,"Från: [e-postskyddad]\r\n"))(
echo "Meddelande skickat framgångsrikt";
) annat (
echo "Fel uppstod när meddelandet skickades";
}
}
?>

Vi kontrollerar förekomsten av en variabel i POST-matrisen med isset() PHP-funktionen. Ett utropstecken före denna funktion i ett villkor betyder negation. Det vill säga om variabeln inte finns, då måste vi visa vår form. Om jag inte hade satt utropstecknet skulle villkoret bokstavligen betyda "om det finns, visa då formen." Och detta är fel i vårt fall. Naturligtvis kan du byta namn på den till index.php. Om du byter namn på filen, glöm inte att byta namn på filnamnet på raden

. Formuläret ska länka till samma sida, till exempel index.php. Jag lade till sidtiteln i koden.

Vanliga fel som uppstår när du skickar ett PHP-formulär från en webbplats

Det första, förmodligen det mest populära misstaget, är när du ser en tom vit sida utan meddelanden. Det betyder att du har gjort ett fel i sidkoden. Du måste aktivera visning av alla fel i PHP och sedan ser du var felet gjordes. Lägg till i koden:

ini_set("display_errors","På");
error_reporting("E_ALL");

Send.php-filen får bara köras på servern, annars kommer koden helt enkelt inte att fungera. Det är tillrådligt att detta inte är en lokal server, eftersom den inte alltid är konfigurerad för att skicka data till en extern e-postserver. Om du kör koden inte på servern kommer PHP-koden att visas direkt på sidan.

För korrekt funktion rekommenderar jag därför att du placerar filen send.php på webbhotellet. Som regel är allt redan konfigurerat där.

Ett annat vanligt misstag är när meddelandet "Meddelande skickat framgångsrikt" visas, men brevet kommer inte med posten. I det här fallet måste du noggrant kontrollera linjen:

if (mail(" [e-postskyddad]", "Beställ från sajten", "Fullständigt namn:".$fio.". E-post: ".$email ,"Från: [e-postskyddad]\r\n"))

Istället för [e-postskyddad] det måste finnas en mailadress som brevet ska skickas till, men istället[e-postskyddad] måste vara en befintlig e-postadress för den här webbplatsen. Till exempel, för en webbplats kommer detta att vara . Endast i detta fall kommer ett brev med uppgifterna från formuläret att skickas.

Det finns mycket intressant och användbart innehåll på Internet. Ibland är det mycket lättare att skicka en länk till en vän till intressant information istället för att kopiera den från en sida och vidarebefordra den på andra sätt. Hur skickar man en länk så bekvämt som möjligt?

E-post

De flesta moderna e-posttjänster stöder möjligheten att helt enkelt infoga en länk. Det vill säga, du behöver bara kopiera den från adressfältet i din webbläsare, klistra in den i brevet och den blir "klickbar", det vill säga efter att ha klickat på den öppnas den önskade sidan automatiskt.

Om du skriver adressen till en sida eller sida manuellt kommer länken inte att fungera på det här sättet. För att fixa detta, försök att skriva http:// eller www i början av länken. Det vill säga, istället för site.com måste du skriva http://site.com eller www.site.com. Efter detta kommer länken att vara klickbar.

Du kan även bifoga en länk till vissa ord i brevet. För att göra detta måste du välja dem och klicka på "Infoga länk" i verktygsfältet och ange sedan adressen till den önskade sidan i fönstret. Om din e-post stöder användningen av html-taggar kan du infoga en länk så här: orden som du bifogar länken till.

Klasskamrater

Innan du skickar en länk på Odnoklassniki måste du ladda ner speciell programvara som låter dig göra detta. Ett sådant program är GF Tools. Det är helt gratis och väldigt lätt att använda. Du kan också helt enkelt klistra in länktexten i ett meddelande som du skickar till en annan användare. Den kan även sättas upp på en vägg.

I kontakt med

Du kan också infoga länken i status och meddelanden på väggen. I det här fallet kommer länken också att vara "klickbar" för alla användare. När du infogar en länk till en vägg kommer webbplatsskriptet automatiskt att visa den första bilden från sidan som länken ges till, samt flera rader text från den.

Det finns många sätt att "klippa" en webbsida.

Men Pocket kräver appen och ett Pocket-konto. Det betyder att du behöver installera en annan applikation, logga in på tjänsten, synkronisera etc. Det skulle vara trevligt om du kunde göra detsamma med din brevlåda.

Det är tanken bakom EmailThis, vilket är precis vad namnet antyder. Med ett klick kan detta bokmärke (eller tillägg,
om du är en Chrome-användare) levererar den aktuella webbsidan till din inkorg. Och precis som Pocket tar den bort alla annonser och mobilovänlig formatering, vilket ger dig bara lättläst text och bilder. (Den innehåller också den ursprungliga länken nedan om du vill gå tillbaka till webbplatsen.)

När du har slutfört den första installationen (på engelska), använder du EmailThis är bokstavligen ett klick på en knapp: Klicka på bokmärket (eller tilläggsikonen) när du vill skicka till dig sidan du tittar på just nu.

Intressant nog är bokmärket också kompatibelt med Android- och iOS-webbläsare, men att använda det kräver lite mer ansträngning. Android-användare måste ange "e-posta detta" i adressfältet, medan iOS-användare måste öppna sina sparade bokmärken och trycka på "E-posta detta".

Naturligtvis har många mobila webbläsare ett "läs senare"-alternativ, vilket fungerar utmärkt. Men om du vill att sidan ska levereras till din inkorg är detta det bästa sättet.

Tyvärr är EmailThis inte kompatibel med Microsoft Edge, som inte stöder bokmärken. Om du hittar en lösning, var noga med att meddela mig i kommentarerna.

Jag testade verktyget med olika webbsidor. Det fungerade jättebra med de flesta. Jag märkte att en del av de inbäddade bilderna inte "klipptes ut", kanske för att de fanns hos en tredje part. Men totalt sett tyckte jag att EmailThis var ett snabbt och enkelt sätt att skicka vilken webbsida som helst till din inkorg.

Och jag gillar det här alternativet bättre än alternativen "läs senare" eftersom min inkorg duplicerar att-göra-listans funktionalitet. På så sätt glöms eller förbises inte webbinnehållet som jag anser vara viktigt.

Redaktörens anmärkning: Den här artikeln publicerades ursprungligen den 25 februari 2014 och har uppdaterats idag.

Vilka är några sätt att skicka en webbsida till e-post?
På olika sätt beroende på vad frågeförfattaren menade.

Om du till exempel har ett program för att ta skärmdumpar kan du ta en skärmdump av en öppen sida och skicka den som en bild till e-postmeddelandet till den person du behöver. I det här fallet kommer bilden att vara död och länkarna kommer inte att fungera.

Jag misstänker att ett mer korrekt svar skulle vara att spara sidan med standardmetoder. Klicka på "Arkiv"-menyn i webbläsaren, sedan "spara som" och spara hela webbsidan. Om personen som denna sida skickas till har internetåtkomst kommer han att kunna följa länkarna från sidan, de kommer att fungera.

I det första fallet blir det lättare att öppna sidan om ett vanligt bildformat väljs - bmp, jpg, gif. I det andra fallet kan det finnas problem med att visa en sida som är sparad i en webbläsare men öppnad i en annan; den kanske inte visas korrekt eller kanske inte öppnas alls.

Båda fallen är designade för bevarande i ett arkiv, för att skickas till en person som inte har konstant tillgång till Internet. I det här fallet är det bättre att bifoga det till brevet.

Men om en person alltid har internet, varför spara och skicka en sida till honom eller bifoga honom? Det är mycket lättare att kopiera länken till den önskade sidan i adressfältet och klistra in den i brevets brödtext.

För att göra detta kan du använda specialiserade onlinearkiveringstjänster, till exempel - Archive.today: arkiv idag

Här behöver du bara placera resursens URL-adress och systemet skapar själv en zip-fil och en URL-länk till en "snapshot" av webbsidan, som alltid kommer att vara online, även om originalversionen försvinner.

En zip-fil kan bifogas till ett e-postmeddelande, en länk till en "snapshot" av en webbsida kan infogas i e-postfältet och det hela kan skickas via e-post eller sparas på annat sätt.

Till exempel finns dagens version av Moskvas FAQ-sida (tillsammans med en zip-fil) tillgänglig här: arkiv idag

Du kan också använda onlinetjänster för att ta skärmdumpar, till exempel Web-capture: web-capture net

Vilka är några sätt att skicka en webbsida till e-post?
På olika sätt beroende på vad frågeförfattaren menade.

Om du till exempel har ett program för att ta skärmdumpar kan du ta en skärmdump av en öppen sida och skicka den som en bild till e-postmeddelandet till den person du behöver. I det här fallet kommer bilden att vara död och länkarna kommer inte att fungera.

Jag misstänker att ett mer korrekt svar skulle vara att spara sidan med standardmetoder. Klicka på "Arkiv"-menyn i webbläsaren, sedan "spara som" och spara hela webbsidan. Om personen som denna sida skickas till har internetåtkomst kommer han att kunna följa länkarna från sidan, de kommer att fungera.

I det första fallet blir det lättare att öppna sidan om ett vanligt bildformat väljs - bmp, jpg, gif. I det andra fallet kan det finnas problem med att visa en sida som är sparad i en webbläsare men öppnad i en annan; den kanske inte visas korrekt eller kanske inte öppnas alls.

Båda fallen är designade för bevarande i ett arkiv, för att skickas till en person som inte har konstant tillgång till Internet. I det här fallet är det bättre att bifoga det till brevet.

Men om en person alltid har internet, varför spara och skicka en sida till honom eller bifoga honom? Det är mycket lättare att kopiera länken till den önskade sidan i adressfältet och klistra in den i brevets brödtext.

För att göra detta kan du använda specialiserade onlinearkiveringstjänster, till exempel - Archive.today: arkiv idag

Här behöver du bara placera resursens URL-adress och systemet skapar själv en zip-fil och en URL-länk till en "snapshot" av webbsidan, som alltid kommer att vara online, även om originalversionen försvinner.

En zip-fil kan bifogas till ett e-postmeddelande, en länk till en "snapshot" av en webbsida kan infogas i e-postfältet och det hela kan skickas via e-post eller sparas på annat sätt.

Till exempel finns dagens version av Moskvas FAQ-sida (tillsammans med en zip-fil) tillgänglig här: arkiv idag

Du kan också använda onlinetjänster för att ta skärmdumpar, till exempel Web-capture: web-capture net