View Single Post
Heisann.

Driver å mekker sammen et påmeldingsskjema for en kursarrangør jeg samarbeider litt med. Har middels kunnskap om php/html etc. Riktignok noen år siden jeg holdt på med dette sist, men det går greit å sette seg inn i det på nytt. (Skjønner at web-utvikling anno 2017 stort sett dreier seg om bruk av framworks etc, det er litt nytt for meg hehe. Men har satt meg litt inn i bootstrap, og fått til en grei responsiv side på denne måten).

Uansett, dette påmeldingsskjemaet skal være av enkleste sort. Det skal ha vanlige felt som Navn, fødselsdato, tlf, epost, adresse og en kommentar til slutt. Tanken er at dette skjemaet så skal sendes til vår firma-epost.

Ønsker også å kjøre en enkel validering på at i hvertfall "navn OG (tlf ELLER epost-adresse)" er fylt ut. Dette hadde kanskje vært greiest å gjøre i javascript, men siden jeg ikke har så mye kunnskap om javascript, så kjører jeg dette via php. Skjønner at dette fører til flere spørringer, men på en nettside som blir besøkt 10-15 ganger i døgnet er vel ikke dette store problemet.

Jeg lurer på to ting.

1. Er denne valideringen god nok? Jeg har ikke noen validering på at tlf-nummeret faktisk er et telefonnummer, men det er ok. Jeg har validering på e-post er en gyldig epost-adresse dog.

Kode

if (isset($_POST['submit'])) {

    $klasse = $_POST['klasse'];
    $name = $_POST['inputName'];
    $bdate = $_POST['inputBDate'];
    $phone = $_POST['inputPhone'];
    $email = $_POST['inputEmail'];
    $address = $_POST['inputAddress'];
    $postnr = $_POST['inputPostnr'];
    $stedsnavn = $_POST['inputStedsnavn'];
    $kommentar = $_POST['inputKommentar'];

    if (!empty($name) && ((valid_email($email)) || !empty($phone))) {

        $subject = "(Fra ***.no)" . " | " . $name . " | " . $klasse . " | " . $email;

        $body = "Navn: " . $name . "\n" . "Fødselsdato: " . $bdate . "\n" . "Telefon: " . $phone . "\n" . "Epost: " . $email . "\n" . "Adresse: " . $address . "\n" . "Postnr: " . $email . "\n" . "Sted: " . $stedsnavn . "\n" . "Kommentar: " . $kommentar . "\n";

        $mailsendt = mail(MAIL_ADRESSE, $subject, $body);

        if ($mailsendt == 1) {
            $melding = "Kontaktskjema er sendt!";
            $success = 0;
        } else {
            $melding = "Noe gikk galt, vennligst kontakt oss på e-post eller prøv igjen(1).";
            $success = 1;
        }

    } else if (empty($name)) {

        $melding = "Vennligst oppgi navn.";
        $success = 2;

    } else if (empty($phone) && empty($email)) {
        $melding = "Vennligst oppgi tlf-nummer eller e-post.";
        $success = 3;
    } else if (!valid_email($email)){
        $melding = "Epost-adressen er ugyldig.";
        $success = 4;
    } else {
        $melding = "Noe gikk galt, vennligst kontakt oss på e-post eller prøv igjen(2).";
        $success = 1;
    }
    
}
2. Er det greit å bruke funksjonen mail() til dette? Jeg skjønner at det finnes bibliotek, typ PHPmail osv, som kanskje har mer funksjonalitet, men har forstått at dette først og fremst er tiltenkt når en skal sende epost med mer avansert innhold. F.eks bilder, html osv.

Det jeg lurer mest på / bekymrer meg mest for, er om man kan føle seg trygg på at skjemaet faktisk blir sendt ved retur-verdi true fra mail()- funksjonen. Kjipt om folk melder seg på, får beskjed om at skjemaet er sendt, men det faktisk ikke er det.

Har PHPmail noen innebygde mekanismer for å fange opp dette kanskje?