Hvordan sende en nettside på e-post? Den enkleste formen for å sende data på e-post ved hjelp av HTML og PHP Hvordan sende et bokmerke på e-post

En av de mest populære funksjonene på nettstedet er søknads- eller bestillingsskjemaet, hvorfra dataene sendes via e-post til nettstedets eier. Som regel er slike skjemaer enkle og består av to eller tre felt for dataregistrering. Hvordan lage et slikt bestillingsskjema? Dette krever bruk av språk HTML-oppmerking og programmeringsspråket PHP.

HTML-markeringsspråket i seg selv er enkelt; du trenger bare å finne ut hvordan og hvor du skal plassere visse tagger. Med PHP-programmeringsspråket er ting litt mer komplisert.

For en programmerer er det ikke vanskelig å lage et slikt skjema, men for en HTML-layoutdesigner kan noen handlinger virke vanskelige.

Lag et datainnsendingsskjema i html

Den første linjen vil være som følger

Dette er et veldig viktig element i skjemaet. I den angir vi hvordan dataene skal overføres og til hvilken fil. I dette tilfellet overføres alt POST metode filen send.php. Programmet i denne filen må følgelig motta dataene, det vil være i post-arrayet og sende det til den angitte e-postadressen.

La oss gå tilbake til formen. Den andre linjen vil inneholde et felt for å skrive inn ditt fulle navn. Har følgende kode:

Skjematypen er tekst, det vil si at brukeren vil kunne skrive inn eller kopiere tekst hit fra tastaturet. Navnparameteren inneholder navnet på skjemaet. I dette tilfellet er det fio; det er under dette navnet at alt som brukeren skrev inn i dette feltet vil bli overført. Plassholderparameteren spesifiserer hva som skal skrives i dette feltet som en forklaring.

Neste linje:

Her er nesten alt likt, men navnet på feltet er e-post, og forklaringen er at brukeren legger inn e-postadressen sin i dette skjemaet.

Den neste linjen vil være "send"-knappen:

Og den siste linjen i skjemaet vil være taggen

La oss nå sette alt sammen.





La oss nå gjøre feltene i skjemaet obligatoriske. Vi har følgende kode:





Lag en fil som godtar data fra HTML-skjemaet

Dette vil være en fil som heter send.php

I filen, på det første stadiet, må du godta data fra postmatrisen. For å gjøre dette lager vi to variabler:

$fio = $_POST["fio"];
$email = $_POST["email"];

Variablenavn i PHP innledes med et $-tegn, og et semikolon er plassert på slutten av hver linje. $_POST er en matrise som data fra skjemaet sendes inn i. I html-skjemaet er sendemetoden spesifisert som method="post". Dermed er to variabler hentet fra html-skjemaer. For å beskytte nettstedet ditt, må du sende disse variablene gjennom flere filtre - php-funksjoner.

Den første funksjonen vil konvertere alle tegnene som brukeren vil prøve å legge til i skjemaet:

I dette tilfellet opprettes ikke nye variabler i php, men eksisterende brukes. Det filteret vil gjøre er å transformere tegnet "<" в "<". Также он поступить с другими символами, встречающимися в html коде.

Den andre funksjonen dekoder URL-en hvis brukeren prøver å legge den til i skjemaet.

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

Med den tredje funksjonen vil vi fjerne mellomrom fra begynnelsen og slutten av linjen, hvis noen:

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

Det er andre funksjoner som lar deg filtrere php-variabler. Bruken av dem avhenger av hvor bekymret du er for at en angriper vil prøve å legge til programkode i dette html-skjemaet for e-postinnsending.

Validering av data overført fra HTML-skjema til PHP-fil

For å sjekke om denne koden fungerer og om data overføres, kan du ganske enkelt vise den på skjermen ved hjelp av ekkofunksjonen:

ekko $fio;
ekko "
";
echo $email;

Den andre linjen her er nødvendig for å skille utdataene til php-variabler i forskjellige linjer.

Sende mottatte data fra et HTML-skjema til e-post ved hjelp av PHP

For å sende data på e-post må du bruke e-postfunksjonen i PHP.

mail("til hvilken adresse skal sendes", "emne for brevet", "Melding (brevets brødtekst)","Fra: fra hvilken e-post brevet sendes \r\n");

Du må for eksempel sende data til e-posten til nettstedets eier eller leder [e-postbeskyttet].

Emnet for brevet skal være klart, og budskapet i brevet skal inneholde det brukeren spesifiserte i HTML-skjemaet.

post(" [e-postbeskyttet]", "Søknad fra nettstedet", "Fullt navn:".$fio.". E-post: ".$email ,"Fra: [e-postbeskyttet]\r\n");

Det er nødvendig å legge til en betingelse som vil sjekke om skjemaet ble sendt med PHP til den angitte e-postadressen.

if (mail(" [e-postbeskyttet]", "Bestill fra nettstedet", "Fullt navn:".$fio.". E-post: ".$email ,"Fra: [e-postbeskyttet]\r\n"))
{
echo "melding sendt vellykket";
) annet (
}

Dermed vil programkoden til send.php-filen, som sender HTML-skjemadataene til e-post, se slik ut:

$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
//ekko $fio;
//ekko "
";
//echo $email;
if (mail(" [e-postbeskyttet]", "Søknad fra nettstedet", "Fullt navn:".$fio.". E-post: ".$email ,"Fra: [e-postbeskyttet]\r\n"))
( ekko "melding sendt vellykket";
) annet (
echo "feil oppstod under sending av meldingen";
}?>

Tre linjer for å sjekke om dataene blir overført til filen blir kommentert ut. Om nødvendig kan de fjernes, siden de bare var nødvendig for feilsøking.

Vi legger HTML- og PHP-koden for innsending av skjemaet i én fil

I kommentarene til denne artikkelen stiller mange mennesker spørsmålet om hvordan man sørger for at både HTML-skjemaet og PHP-koden for å sende data til e-post er i én fil, og ikke to.

For å implementere dette arbeidet må du plassere HTML-koden til skjemaet i send.php-filen og legge til en betingelse som vil sjekke for tilstedeværelsen av variabler i POST-matrisen (denne matrisen sendes fra skjemaet). Det vil si at hvis variablene i matrisen ikke eksisterer, må du vise brukeren skjemaet. Ellers må du motta data fra arrayet og sende det til mottakeren.

La oss se hvordan du endrer PHP-koden i send.php-filen:



Søknadsskjema fra nettstedet


//sjekk om det finnes variabler i POST-matrisen
if(!isset($_POST["fio"]) og !isset($_POST["email"]))(
?>





) annet (
//vis skjemaet
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
if (mail(" [e-postbeskyttet]", "Søknad fra nettstedet", "Fullt navn:".$fio.". E-post: ".$email ,"Fra: [e-postbeskyttet]\r\n"))(
echo "Melding sendt vellykket";
) annet (
echo "Det oppstod feil under sending av meldingen";
}
}
?>

Vi sjekker eksistensen av en variabel i POST-matrisen med isset() PHP-funksjonen. Et utropstegn før denne funksjonen i en tilstand betyr negasjon. Det vil si at hvis variabelen ikke eksisterer, må vi vise formen vår. Hvis jeg ikke hadde satt et utropstegn, ville tilstanden bokstavelig talt bety "hvis den eksisterer, så vis formen." Og dette er feil i vårt tilfelle. Naturligvis kan du gi det nytt navn til index.php. Hvis du gir nytt navn til filen, ikke glem å gi nytt navn til filnavnet på linjen

. Skjemaet skal lenke til samme side, for eksempel index.php. Jeg la til sidetittelen i koden.

Vanlige feil som oppstår når du sender inn et PHP-skjema fra et nettsted

Den første, sannsynligvis den mest populære feilen, er når du ser en tom hvit side uten meldinger. Dette betyr at du har gjort en feil i sidekoden. Du må aktivere visning av alle feil i PHP og så vil du se hvor feilen ble gjort. Legg til i koden:

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

Send.php-filen må kun kjøres på serveren, ellers vil koden rett og slett ikke fungere. Det anbefales at dette ikke er en lokal server, siden den ikke alltid er konfigurert til å sende data til en ekstern e-postserver. Hvis du kjører koden ikke på serveren, vil PHP-koden vises direkte på siden.

Derfor, for korrekt drift, anbefaler jeg å plassere send.php-filen på webhotellet. Som regel er alt allerede konfigurert der.

En annen vanlig feil er når varselet "Melding sendt vellykket" vises, men brevet kommer ikke i posten. I dette tilfellet må du nøye sjekke linjen:

if (mail(" [e-postbeskyttet]", "Bestill fra nettstedet", "Fullt navn:".$fio.". E-post: ".$email ,"Fra: [e-postbeskyttet]\r\n"))

I stedet for [e-postbeskyttet] det må være en e-postadresse som brevet skal sendes til, men i stedet[e-postbeskyttet] må være en eksisterende e-post for dette nettstedet. For et nettsted vil dette for eksempel være . Bare i dette tilfellet vil et brev med dataene fra skjemaet bli sendt.

Det er mye interessant og nyttig innhold på Internett. Noen ganger er det mye enklere å sende en venn en lenke til interessant informasjon i stedet for å kopiere den fra et nettsted og videresende den på andre måter. Hvordan sende en lenke så praktisk som mulig?

E-post

De fleste moderne e-posttjenester støtter muligheten til å sette inn en lenke. Det vil si at du bare trenger å kopiere den fra adressefeltet til nettleseren din, og deretter lime den inn i brevet, og den vil bli "klikkbar", det vil si etter å ha klikket på den, åpnes den ønskede siden automatisk.

Hvis du skriver inn adressen til et nettsted eller en side manuelt, vil ikke koblingen fungere på denne måten. For å fikse dette, prøv å skrive http:// eller www i begynnelsen av lenken. Det vil si, i stedet for site.com må du skrive http://site.com eller www.site.com. Etter dette vil koblingen være klikkbar.

Du kan også legge ved en lenke til enkelte ord i brevet. For å gjøre dette, må du velge dem og klikke på "Sett inn lenke" på verktøylinjen, og deretter angi adressen til ønsket side i vinduet. Hvis e-posten din støtter bruk av html-tagger, kan du sette inn en lenke som dette: ordene du legger ved lenken.

Klassekamerater

Før du sender en lenke på Odnoklassniki, må du laste ned spesiell programvare som lar deg gjøre dette. Et slikt program er GF Tools. Det er helt gratis og veldig enkelt å bruke. Du kan også bare lime inn lenketeksten i en melding du sender til en annen bruker. Den kan også henges opp på veggen.

I kontakt med

Du kan også sette inn lenken i status og meldinger på veggen. I dette tilfellet vil koblingen også være "klikbar" for alle brukere. Når du setter inn en lenke til en vegg, vil nettstedsskriptet automatisk vise det første bildet fra siden som koblingen er gitt til, samt flere tekstlinjer fra det.

Det er mange måter å "klippe" en nettside på.

Men Pocket krever appen og en Pocket-konto. Dette betyr at du må installere en annen applikasjon, logge på tjenesten, synkronisere osv. Det ville vært fint om du kunne gjøre det samme ved å bruke postkassen din.

Det er ideen bak EmailThis, som er nøyaktig hva navnet antyder. Med ett klikk kan dette bokmerket (eller utvidelsen,
hvis du er en Chrome-bruker) vil levere den gjeldende nettsiden til innboksen din. Og som Pocket, fjerner den alle annonser og mobiluvennlig formatering, og gir deg bare lettlest tekst og bilder. (Den inneholder også den originale lenken nedenfor hvis du vil gå tilbake til nettstedet.)

Når du har fullført det første oppsettet (på engelsk), bruker du Email. Dette er bokstavelig talt et klikk på en knapp: Klikk på bokmerket (eller utvidelsesikonet) når du vil sende deg selv siden du ser på for øyeblikket.

Interessant nok er bokmerket også kompatibelt med Android- og iOS-nettlesere, men å bruke det krever litt mer innsats. Android-brukere må skrive "e-post dette" i adressefeltet, mens iOS-brukere må åpne sine lagrede bokmerker og trykke på "Send dette på e-post".

Selvfølgelig har mange mobilnettlesere et "les senere"-alternativ, som fungerer utmerket. Men hvis du vil at siden skal leveres til innboksen din, er dette den beste måten.

Dessverre er ikke EmailThis kompatibel med Microsoft Edge, som ikke støtter bokmerke. Hvis du finner en løsning, sørg for å gi meg beskjed i kommentarene.

Jeg testet verktøyet med forskjellige nettsider. Det fungerte bra med de fleste av dem. Jeg la merke til at noen av de innebygde bildene ikke ble "klippet", kanskje fordi de var vert hos en tredjepart. Men totalt sett fant jeg at EmailThis var en rask og enkel måte å sende hvilken som helst nettside til innboksen din.

Og jeg liker dette alternativet bedre enn "les senere"-alternativene fordi innboksen min dupliserer oppgavelisten-funksjonaliteten. På denne måten blir ikke nettinnholdet som jeg anser som viktig, glemt eller oversett.

Redaktørens notat: Denne artikkelen ble opprinnelig publisert 25. februar 2014 og har blitt oppdatert i dag.

Hva er noen måter å sende en nettside til e-post?
På ulike måter, avhengig av hva forfatteren av spørsmålet mente.

Hvis du for eksempel har et program for å ta skjermbilder, kan du ta et skjermbilde av en åpen side og sende det som et bilde til e-posten til personen du trenger. I dette tilfellet vil bildet være dødt og koblingene vil ikke fungere.

Jeg mistenker at et mer riktig svar ville være å lagre siden ved hjelp av standardmetoder. Klikk på "fil"-menyen i nettleseren, deretter "lagre som" og lagre hele nettsiden. Hvis personen som denne siden sendes til har Internett-tilgang, vil han kunne følge lenkene fra siden, de vil fungere.

I det første tilfellet vil det være lettere å åpne siden hvis et vanlig bildeformat er valgt - bmp, jpg, gif. I det andre tilfellet kan det være problemer med å vise en side som er lagret i én nettleser, men åpnet i en annen; det kan hende den ikke vises riktig eller ikke åpnes i det hele tatt.

Begge sakene er designet for bevaring i et arkiv, for sending til en person som ikke har konstant tilgang til Internett. I dette tilfellet er det bedre å legge det ved brevet.

Men hvis en person alltid har Internett, hvorfor lagre og sende ham en side eller legge ved et vedlegg? Det er mye lettere å kopiere lenken til ønsket side i adressefeltet og lime den inn i brødteksten.

For å gjøre dette kan du bruke spesialiserte elektroniske arkiveringstjenester, for eksempel - Archive.today: arkiv i dag

Her trenger du bare å plassere URL-adressen til ressursen, så vil systemet selv lage en zip-fil og en URL-lenke til et "øyeblikksbilde" av nettsiden, som alltid vil være online, selv om originalversjonen forsvinner.

En zip-fil kan legges ved en e-post, en lenke til et "øyeblikksbilde" av en nettside kan settes inn i e-postfeltet, og det hele kan sendes via e-post eller lagres på annen måte.

For eksempel er dagens versjon av Moskva FAQ-siden (sammen med en zip-fil) tilgjengelig her: arkiv i dag

Du kan også bruke nettjenester til å ta skjermbilder, for eksempel Web-capture: web-capture net

Hva er noen måter å sende en nettside til e-post?
På ulike måter, avhengig av hva forfatteren av spørsmålet mente.

Hvis du for eksempel har et program for å ta skjermbilder, kan du ta et skjermbilde av en åpen side og sende det som et bilde til e-posten til personen du trenger. I dette tilfellet vil bildet være dødt og koblingene vil ikke fungere.

Jeg mistenker at et mer riktig svar ville være å lagre siden ved hjelp av standardmetoder. Klikk på "fil"-menyen i nettleseren, deretter "lagre som" og lagre hele nettsiden. Hvis personen som denne siden sendes til har Internett-tilgang, vil han kunne følge lenkene fra siden, de vil fungere.

I det første tilfellet vil det være lettere å åpne siden hvis et vanlig bildeformat er valgt - bmp, jpg, gif. I det andre tilfellet kan det være problemer med å vise en side som er lagret i én nettleser, men åpnet i en annen; det kan hende den ikke vises riktig eller ikke åpnes i det hele tatt.

Begge sakene er designet for bevaring i et arkiv, for sending til en person som ikke har konstant tilgang til Internett. I dette tilfellet er det bedre å legge det ved brevet.

Men hvis en person alltid har Internett, hvorfor lagre og sende ham en side eller legge ved et vedlegg? Det er mye lettere å kopiere lenken til ønsket side i adressefeltet og lime den inn i brødteksten.

For å gjøre dette kan du bruke spesialiserte elektroniske arkiveringstjenester, for eksempel - Archive.today: arkiv i dag

Her trenger du bare å plassere URL-adressen til ressursen, så vil systemet selv lage en zip-fil og en URL-lenke til et "øyeblikksbilde" av nettsiden, som alltid vil være online, selv om originalversjonen forsvinner.

En zip-fil kan legges ved en e-post, en lenke til et "øyeblikksbilde" av en nettside kan settes inn i e-postfeltet, og det hele kan sendes via e-post eller lagres på annen måte.

For eksempel er dagens versjon av Moskva FAQ-siden (sammen med en zip-fil) tilgjengelig her: arkiv i dag

Du kan også bruke nettjenester til å ta skjermbilder, for eksempel Web-capture: web-capture net