De eenvoudigste vorm van het verzenden van gegevens per e-mail met behulp van HTML en PHP. Hoe maak je een feedbackformulier met de mogelijkheid om een bestand te downloaden en te verzenden via PHP-e-mail
Hallo vrienden! Ik wil graag een universeel script onder uw aandacht brengen voor het verzenden van gegevens van formulieren naar e-mail. Het script is ideaal voor sites zoals landingspagina's, visitekaartjessites, enz. Ons Feedback Forms-script onderscheidt zich van de massa andere scripts op internet doordat het de mogelijkheid heeft om een onbeperkt aantal formulieren met verschillende velden op één pagina te verbinden en brieven naar verschillende ontvangers kan sturen.
Dus. Laten we beginnen. Laten we beginnen met de mogelijkheden van het script.
Het script werkt op basis van de bibliotheek, dus het eerste wat we moeten doen is het verbinden. Om dit te doen, raad ik aan Google Hosted Libraries te gebruiken.
Laten we de resterende bestanden in meer detail bespreken:
feedback.js is het hoofdscriptbestand dat verantwoordelijk is voor het indienen van AJAX-formulieren.
jquery.arcticmodal.js,
jquery.arcticmodal.
- Bied de mogelijkheid om formulieren in een modaal venster weer te geven.
jquery.jgrowl.js,
HTML en vereiste attributen.
Een vereist attribuut voor alle formulierelementen is het name="" attribuut - noodzakelijk voor latere formulieraanpassing.
Voor een knop (type="button") moet u class="feedback" opgeven. Ik zou ook uw aandacht willen vestigen op het feit dat elke HTML-tag met de klasse “feedback” als een knop kan fungeren. Een formulier oproepen in een modaal venster Om een formulier in een modaal venster aan te roepen, moet u eerst een actie definiëren voor het klikken op een tag, bijvoorbeeld een div met de klasse modal_btn
Een formulier oproepen in een modaal venster $(document).ready(function() ( $(document).on("click", ".modal_btn", function())( $("#small-modal").arcticmodal (); ));
Omdat het formulier alleen zichtbaar zou moeten zijn in het modale venster, moet het worden verborgen door het in een div te plaatsen met het style="display: none;" attribuut, en ook ingepakt in een paar standaard div's om het modale venster vorm te geven.
We hebben dus de basisinstellingen gevonden voor het verbinden van ons script voor het verzenden van formulieren naar e-mail. Laten we nu eens naar binnen kijken en uitzoeken hoe we velden, meldingen en al het andere dat er is, kunnen configureren.
Voorbeeld van instellingen voor één formulierInstellingen voor alle formulieren worden opgeslagen in het bestand feedback\index.php$form["form-1"] = array("fields" => array("name" => array("title" => "Naam", "validate" => array("preg" => "%% ", "minlength" => "3", "maxlength" => "35",), "messages" => array("preg" => "Veld [ %1$s ] kan een fout bevatten", "minlength " => "De minimale lengte van het veld [ %1$s ] is kleiner dan de toegestane lengte - %2$s", "maxlength" => "De maximale lengte van het veld [ %1$s ] is groter dan de toegestane - %2$s",)), "tell " => array("title" => "Telefoon", "validate" => array("preg" => "/^((8|\+) [\- ]?)?(\(?\d( 3)\)?[\- ]?)?[\d\- ](5,10)$/", "minlengte" => "5", ), "messages" => array("preg" => "Veld [ %1$s ] kan een fout bevatten", "minlength" => "De minimale lengte van veld [ %1$s ] is kleiner dan de toegestane lengte lengte - %2$s",)),), "cfg" => array(" charset" => "utf-8", "subject" => "Onderwerp van de e-mail", "title" => "Heading in de hoofdtekst van de e-mail", "ajax" => true, "validate" => true, "from_email" = > " [e-mailadres beveiligd]", "from_name" => "noreply", "to_email" => " [e-mailadres beveiligd], [e-mailadres beveiligd]", "to_name" => "noreply1, noreply2", "geoip" => true, "referer" => true, "type" => "html", "tpl" => true, "antispam" => "email77 ", "antispamjs" => "address77", "okay" => "Bericht verzonden - OK", "fuck" => "Bericht verzonden - FOUT", "spam" => "Spamrobot", "melden" => "color-modal-textbox", "usepresuf" => false)); // Volgende formulier $form["form-2"] = array("fields" => array(.....
Om instellingen voor een nieuw formulier toe te voegen, moet u het voorbeeld van de array $form["form-1"] volgen om een nieuwe array $form[""] te maken
Weet je nog wat ik zei over het vereiste name="" attribuut?
Het is dus tijd om u te vertellen waarom het nog steeds nodig is.
name="" is de alfanumerieke sleutel voor de array, moet uniek zijn voor de $form[""] array
Voorbeeld html-code voor de duidelijkheid
Laten we nu de arrays begrijpen en waarvoor ze nodig zijn.
$form["formulier-1"] = array();
$form["formulier-2"] = array();
enz.
- "velden" => array();
- "title" => "Uw naam" - de naam van het formulierelement, wordt weergegeven in geval van fouten of in de sjabloon
- "valideren" => array();
- - array, bevat validatieregels voor vormelementen
- "preg" => "%%" - reguliere expressie
- "minlength" => "3" - minimale veldgrootte
- "maxlength" => "35" - maximale veldgrootte
- "substr" => "35" - altijd geknipt tot N tekens
- "berichten" => array();
- - een array met validatieberichten, namelijk:
- "preg" => "Het formulierelement komt niet overeen met de reguliere expressie"
- "maxlength" => "De maximale lengte van het veld [ %1$s ] overschrijdt de toegestane limiet - %2$s" - validatiefout, sleutel (preg) komt niet overeen met de validatiesleutel
- "cfg" => array();
- - Een reeks formulierinstellingen.
- "charset" => "utf-8" - codering
- "onderwerp" => "Onderwerp van de brief", - Onderwerp van de brief
- "title" => "Titel in de hoofdtekst van de brief", - Titel in de hoofdtekst van de brief [e-mailadres beveiligd]
- "ajax" => true, - dit is het Ajax TODO-formulier (indien niet nodig, stel dit in op false)
- "validate" => true, - (true) als we het formulier op de server willen valideren, vervangt js-validatie door "ajax" => true. Indien uitgeschakeld (false), hoeft u de valideer-veldinstellingen niet in te stellen. TODO [e-mailadres beveiligd]"from_email" => "mijnemail", - afzender, specificeer de veldnaam (naam = "mijnemail"), en als u geen e-mail van de gebruiker nodig heeft, dan een stub [e-mailadres beveiligd], [e-mailadres beveiligd], [e-mailadres beveiligd]",)
- "from_name" => "mijnnaam", - afzender, specificeer de veldnaam (naam = "mijnnaam"), en als u geen gebruikersnaam nodig heeft, dan het veld Geen antwoord
- "to_email" => "
- ", - e-mailadres van de ontvanger. Als u naar meerdere adressen wilt verzenden, vermeldt u ze gescheiden door komma's. Voorbeeld ("to_email" => "
- "to_name" => "noreply1", - Naam van de ontvanger. Wanneer u naar meerdere adressen verzendt, vermeldt u de namen van de ontvangers, gescheiden door komma's. Voorbeeld ("to_name" => "noreply1, noreply2, noreply3",)
- "geoip" => true, - ontdek de locatie met behulp van het TODO-type
- "referer" => false, - voeg de URL toe van de pagina waarvandaan het formulier is verzonden
- "antispamjs" => "address77", - Antispammethode is gebaseerd op een verborgen (display:none) veld, aanvankelijk gevuld, waardoor javascript automatisch wordt gewist wanneer de pagina wordt geladen, zelfs een slimme robot kan hier niet op anticiperen, en dan is het geblokkeerd.
- "okay" => "Bericht aan de gebruiker", - Er wordt een bericht aan de gebruiker weergegeven als het formulier succesvol is verzonden. U kunt html-tags gebruiken.
- "fuck" => "Bericht aan de gebruiker", - Een bericht aan de gebruiker, weergegeven wanneer er een fout optreedt bij het verzenden van het formulier, u kunt html-tags gebruiken.
- "spam" => "Bericht aan gebruiker", - Bericht aan de gebruiker, weergegeven als een spamrobot wordt vermoed, u kunt html-tags gebruiken.
- "notify" => "color-modal", - welk type meldingen moeten worden weergegeven, tekstvak - blokken in de bovenhoek van de pagina, kleur - kleuraccentuering in het formulier, modal - modaal venster in het midden van de pagina, geen - uitzetten. Je kunt bijvoorbeeld het volgende combineren: kleur-modaal - fouten bij het invullen van velden met markering, en de status van het verzenden van tekst in het modale TODO-venster
- "usepresuf" => false - Of er een aangepaste toevoeging wordt gebruikt aan het onderwerp of aan de titel van de brief, bij een kleine wijziging kunt u bijvoorbeeld %%cfg.title.suffix%% opgeven, hiervoor moet er een verborgen veld in het formulier, zie f -qiu presuf() voor meer details
Ten eerste moet u, om het formulier in een sjabloon te kunnen verzenden, in de formulierinstellingen het gebruik van een sjabloonbestand inschakelen - "tpl" => true ,
Ten tweede moet u een sjabloonbestand met de extensie *.tpl in de map (feedback/tpl/) maken, in overeenstemming met de naam van het formulier (name="form-1" ).
Voorbeeld: (feedback/tpl/form-1.tpl)
Kop in de hoofdtekst van de e-mail | |
%%naam.titel%% | %%naam.waarde%% |
%%tell.title%% | %%vertelwaarde%% |
benoemen, vertellen enz. - Dit zijn de attributen (name=”) van de velden die de gebruiker invult.
title - De naam van het formulierelement, die is ingesteld in de array met instellingen voor het formulierelement.
waarde - De waarde van het formulierelement.
Dat is alles voor vandaag, maar het script is zeker niet perfect, dus commentaar en beschrijvingen van bugs zijn welkom en zullen in toekomstige versies worden gecorrigeerd.
P.S. Het script is ontwikkeld door het team
In dit artikel leert u hoe u een feedbackformulier kunt maken (we ontvangen de e-mail van de gebruiker), waarmee de gebruiker de mogelijkheid heeft om zijn bestand bij te voegen en naar de server te sturen. Ook in dit artikel leert u hoe u het type en de grootte van het gedownloade bestand kunt controleren.
Html-formulier met veld voor het indienen van bestandenHet HTML-formulier met het veld voor het indienen van bestanden wordt hieronder weergegeven. Door op de knop "bladeren" te klikken, kan de gebruiker een bestand op zijn lokale computer selecteren.
Naam: E-mail: Bericht: Selecteer bestand om te uploaden:
Het formulier ziet er als volgt uit:
Houd er rekening mee dat we in de formulierattributen enctype="multipart/form-data" hebben gespecificeerd. Hierdoor wordt de browser geïnformeerd dat het formulier kan worden gebruikt om bestanden in te dienen. We hebben ook de velden "naam" en "e-mail" toegevoegd om zoveel mogelijk informatie over de gebruiker te verzamelen. Vervolgens komt het veld voor het indienen van bestanden.
Selecteer bestand om te downloaden:
Wanneer u op de knop Verzenden klikt, worden de gegevens, inclusief gegevens over het bestand dat wordt verzonden, naar het handlerbestand verzonden, het pad waarnaar we hebben opgegeven in het actiekenmerk van het formulier.
Informatie verkrijgen over het gedownloade bestandEerst controleren wij de ontvangen gegevens. Als de verificatie succesvol is, sturen wij de gegevens per e-mail.
Alle informatie over gedownloade bestanden kan worden verkregen met behulp van de $_FILES array.
De inhoud van de $_FILES array voor ons voorbeeld wordt hieronder weergegeven. Houd er rekening mee dat de waarde van het naamattribuut (voor ons is dit uploaded_file) in het bestandsselectieveld van alles kan zijn.
- $_FILES["geüpload_bestand"]["naam"]
De oorspronkelijke naam van het bestand op de computer van de gebruiker. - $_FILES["geüpload_bestand"]["type"]
MIME-bestandstype, als de browser dergelijke informatie heeft verstrekt. Voorbeeld: "afbeelding/gif". Dit mime-type is niet gecontroleerd in PHP, dus vertrouw niet op de waarde ervan zonder dit te controleren. - $_FILES["geüpload_bestand"]["grootte"]
Grootte in bytes van het ontvangen bestand. - $_FILES["geüpload_bestand"]["tmp_name"]
De tijdelijke naam waarmee het ontvangen bestand op de server is opgeslagen. - $_FILES["geüpload_bestand"]["fout"]
Foutcode die kan optreden bij het downloaden van een bestand. Dit element is toegevoegd in PHP 4.2.0
We krijgen de naam, het type en de grootte van het gedownloade bestand:
// Haal het laatste onderdeel van de naam van het geüploade bestand op $name_of_uploaded_file = basename($_FILES["uploaded_file"]["name"]);
// bijvoorbeeld index.php //haal de bestandsextensie op (zonder de punt) $type_of_uploaded_file = substr($name_of_uploaded_file, // positie van de punt + 1 strrpos($name_of_uploaded_file, ".") + 1); $size_of_uploaded_file = $_FILES["geüpload_bestand"]["grootte"]/1024;
//grootte in KB'sZoals u kunt zien, is informatie over het geüploade bestand beschikbaar via de array $_FILES.
//Instellingen $max_allowed_file_size = 100; // grootte in KB $allowed_extensions = array("jpg", "jpeg", "gif", "bmp"); //Controleert if($size_of_uploaded_file > $max_allowed_file_size) ( $errors .= "\n Bestandsgrootte moet kleiner zijn dan $max_allowed_file_size"; ) //------ Controleer de bestandsextensie ----- $allowed_ext = vals; for($i=0; $isetTXTBody($text); $message->addAttachment($path_of_uploaded_file); $body = $message->get(); $extraheaders = array("From"=>$from, "Onderwerp "=>$subject,"Reply-To"=>$visitor_email); $headers = $message->headers($extraheaders); $mail = Mail::factory("mail"); $mail->send($ naar, $headers, $body);
De klasse Mail_mime() helpt u bij het maken van een MIME-bericht. In de bovenstaande code hebben we een Mail_mime-object gemaakt, de hoofdtekst van het bericht bijgewerkt ($message->setTXTBody($text);) en het bijgevoegde bestand toegevoegd ($message->addAttachment(file)).
Voordat u de PEAR-klassen kunt gebruiken, moet u PEAR op uw server installeren. Hier is een snelle manier om PEAR te installeren:
Download het PEAR-installatieprogramma
Sla het bestand op als "pear-installer.php". Upload dit bestand naar uw server in een willekeurige map. Schrijf vervolgens het pad naar het bestand in uw browser:
http://www.uwdomein.com/pear-installer.php
Er verschijnt een webinterface waarmee u PEAR op uw site kunt installeren. Volg de installatie-instructies. Nadat u Pear hebt geïnstalleerd, zoekt en installeert u de pakketten "mail" en "mail_mime".
Het archief bevat een eenvoudig formulier waarmee u het gedownloade bestand per e-mail kunt verzenden.
» PHP Sendmail-script
PHPSendMailOm het formulier te gebruiken, hoeft u alleen maar uw e-mailinstellingen in te voeren en dat is alles. Over het algemeen is het script klaar voor gebruik en is dit feedbackformulier voor een site in HTML met een PHP-processor ideaal voor kleine sites, visitekaartjesites.
| Gedownload: tijden
Eenvoudige PHP-mail verzendenMet dit zeer EASY PHP-script kunnen bezoekers van uw website rechtstreeks e-mails naar u sturen via het feedbackformulier.
| Gedownload: tijden
PHP + AJAX-script voor het verzenden van formulieren naar e-mailEen universeel script voor het verzenden van gegevens van formulieren naar e-mail. Het script is ideaal voor sites zoals landingspagina's, visitekaartjessites, enz.
| Gedownload: tijden
PHP Mailer Finale met captchaHet script geeft het formulier weer en stuurt, wanneer u de verplichte velden invult, een bericht naar uw e-mail. Het script heeft ingebouwde bescherming tegen robots: voordat u een brief verzendt, moet u een captcha invoeren.
| Gedownload: tijden
GentleSource-formuliermailU heeft twee opties waaruit u kunt kiezen: óf de gebruiker gaat via een omleiding naar de bedankpagina met uw tekst, óf de gebruiker krijgt informatie te zien dat het bericht succesvol is verzonden.
| Gedownload: tijden
MicromailerMicro Mailer is een klein PHP-script waarmee u en uw websitebezoekers een brief naar elke ontvanger kunnen sturen.
| Gedownload: tijden
Web4you-FMWeb4you-FM Een brief versturen vanaf uw website. Kenmerken: 1 - Selecteer de ontvanger en hoeveel er zullen zijn (van 1 tot 4). 2 - Controleer of het formulier correct is ingevuld. Aan wie. Namen, alleen letters...
| v.1.0 | Gedownload: tijden
Licht PHP-contactformulierHet script voor het versturen van mail via een feedbackformulier is zo eenvoudig dat zelfs iemand die PHP/HTML niet kent het programma zonder problemen kan gebruiken...
| Gedownload: tijden
DodosMailDodosMail is een eenvoudig te installeren PHP-script waarmee u e-mails kunt verzenden via een feedbackformulier op uw website. Je hoeft alleen maar het php-bestand te uploaden.
| v.2.5 | Gedownload: tijden
PHP-contactformulierHet PHP Contact Form-script bevat de volgende functies: 1) spampreventiefunctie. De gebruiker moet een beveiligingscode invoeren, ook wel captcha genoemd.
| Gedownload: tijden
TPCS-contact (e-mailformulier)Met dit TPCS Contact-script kunnen uw bezoekers contact met u opnemen via een feedbackformulier. Alle informatie wordt u per e-mail toegestuurd.
| Gedownload: tijden
FeedbackmailerFeedbackmailer stuurt alle informatie van het feedbackformulier op uw website rechtstreeks door naar uw e-mail. Dit kleine script verwerkt alle verzoeken zeer snel.
| v.1.2 | Gedownload: tijden
Eenvoudig PHP-contactformulierEen eenvoudig maar veilig PHP-script om contact op te nemen met de webmaster via een feedbackformulier met codeverificatie (CAPTCHA) om spam te voorkomen.
| v.2.1 | Gedownload: tijden
PHP-contactformulier (met beeldverificatie)Een contactformulier dat spam voorkomt door de gebruiker te vragen een beveiligingscode uit een afbeelding in te voeren. Als u een heel eenvoudig feedbackformulier gebruikt, zullen spammers vroeg of laat een manier vinden om u automatisch advertenties te sturen.
| Gedownload: tijden
CW3-formuliermailHet script is zeer eenvoudig te installeren en aan te passen aan het uiterlijk van uw site. U kunt de grootte van het feedbackformulier en de tekst van het bericht wijzigen dat wordt weergegeven wanneer de brief succesvol is verzonden.
| v.3.30 | Gedownload: tijden
reCAPTCHA-contactformulierDit gratis PHP-feedbackscript maakt het veel gemakkelijker om e-mails of feedback van uw bezoekers te ontvangen. Uw bezoeker hoeft alleen maar alle benodigde contactvelden in te vullen...
| v.1.4 | Gedownload: tijden
phMailerphMailer is een heel eenvoudig PHP-feedbackscript dat bestandsbijlagen ondersteunt dankzij de ingebouwde mail()-functie van de PHP-taal.
In deze les maken we kennis met de functie mail() aan de hand van het voorbeeld van het maken van een feedbackformulier in PHP en het vervolgens verzenden van de ontvangen gegevens per e-mail.
Om dit te doen, zullen we twee bestanden maken: forma.php en mail.php. Het eerste bestand bevat alleen een formulier met velden voor gebruikersinvoer. In de formuliertag bevindt zich een knop "Versturen" en het action-attribuut, dat verwijst naar de handler - mail.php, waar toegang wordt verkregen tot de gegevens van het formulier wanneer op de knop wordt geklikt "Versturen". In ons voorbeeld worden de formuliergegevens naar een webpagina gestuurd met de naam "/mail.php". Deze pagina bevat een PHP-script dat de formuliergegevens verwerkt:
Formuliergegevens worden verzonden met behulp van de POST-methode (verwerkt als $_POST). $_POST is een array van variabelen die via de POST-methode aan het huidige script worden doorgegeven.
Hieronder ziet u de inhoud van het forma.php-bestand, waarvan de velden op sommige websites door de gebruiker zelf worden ingevuld. Alle velden voor gegevensinvoer moeten een naamattribuut hebben; de waarden schrijven we zelf, op basis van logica.
Feedbackformulier in PHP verzonden per e-mail
Feedbackformulier in PHP
Laat een bericht achter:
Jouw naam:
E-mail:
Telefoonnummer:
Bericht:
Het tekstgebied kan een onbeperkt aantal tekens bevatten-->
Zo ziet het formulier er visueel uit in de browser.
Vervolgens schrijven we de code voor het mail.php-bestand. We bedenken onze eigen namen voor de variabelen. In PHP begint een variabele met een $-teken en vervolgens de naam van de variabele. De tekstwaarde van de variabele staat tussen aanhalingstekens. Met behulp van variabelen wordt de inhoud van het formulier naar de e-mail van de beheerder verzonden door simpelweg de naam van het formulierelement tussen vierkante haakjes te plaatsen: de naamwaarde.
De gegevens uit de $_POST-array worden dus overgebracht naar de overeenkomstige variabelen en naar e-mail verzonden met behulp van de mailfunctie. Laten we ons formulier invullen en op de verzendknop klikken. Vergeet niet uw e-mailadres te vermelden. De brief arriveerde onmiddellijk.
Van de auteur: Gegroet, vrienden. Dit artikel zal een vervolg zijn waarin we het verzenden van een formulier naar e-mail hebben geïmplementeerd met behulp van de PHP mail()-functie. In dit artikel leren we hoe u een formulier kunt maken voor het verzenden van berichten vanaf een website via SMTP van populaire e-maildiensten. Laten we beginnen?.
U kunt de bronbestanden van het huidige artikel downloaden van .
Je kunt een volkomen logische vraag stellen: wat is er mis met de functie mail(), die prima werkt op een lokale server? Het punt is dat de functionaliteit van deze functie op echte hosting momenteel een grote vraag is. Soms schakelt de host eenvoudigweg het verzenden van brieven vanaf zijn server uit; vaak bereiken de brieven de ontvanger eenvoudigweg niet en komen ze in de spam terecht.
Om deze redenen wordt het aanbevolen om populaire SMTP-services van derden te gebruiken voor het verzenden van brieven: gmail.com, yandex.ru, mail.ru, enz. Welnu, verschillende bibliotheken zullen ons helpen een brief te sturen, bijvoorbeeld de prachtige PHPMailer-bibliotheek. Deze bibliotheek is vrij eenvoudig te gebruiken en veelzijdig. Met PHPMailer kunt u niet alleen eenvoudige brieven verzenden, maar ook brieven in HTML-formaat, brieven met bijlagen. Over het algemeen kan de bibliotheek alles doen wat nodig is om berichten vanaf een website te verzenden.
Laten we beginnen met het downloaden van het archief met de bibliotheek en het verbinden met de formulierhandler, voor ons is dit het mail.php-bestand:
vereisen "phpmailer/PHPMailerAutoload.php";
vereisen ; |
Nu moeten we een object van de bibliotheekplug-inklasse maken en dit indien nodig configureren. Hier hebben we een echte brievenbus nodig, die zal worden gebruikt om brieven te verzenden. Ik gebruik een testmailbox geregistreerd bij mail.ru. Door te zoeken op Google mail.ru smtp kun je de benodigde instellingen vinden die wij gebruiken. Op precies dezelfde manier kunnen we de smtp-instellingen van andere maildiensten vinden.
De uiteindelijke handlercode ziet er als volgt uit: