nfssister Forsker
07. oktober 2019 - 14:40 Der er 14 kommentarer og
1 løsning

Forms på hjemmeside

Hej eksperter

Jeg er lidt rusten i det her efter mange års fravær fra HTML programmering.

Men jeg forsøger at laver nogle forms, hvor den så sender en mail til en bestemt mail.

Jeg har kigget på dette:
https://www.w3schools.com/howto/howto_css_contact_form.asp

Alt giver mening, på nær den der hedder action_page.php.
Hvordan finder jeg ud af hvad UnoEuro bruger der ? - syntes ikke deres hjemmeside kan oplyse mig dette ?

Og hvis jeg vil have den til at sende det på et givent tidspunkt, f.eks. kl 21 om aftnen fast. Kan man så lave en form der gemmer det indtastet man taster ind kl. 11 og så taster en ny kl 14. At den så sender disse 2 på en gang kl 21. ?
ejvindh Professor
07. oktober 2019 - 15:07 #1
action_page.php er en fil, du selv skal oprette, og som skal håndtere de data, som brugeren har indtastet i din form.

Hvis du vil have dit webhotel til at afsende emails på bestemte tidspunkter, skal du ligeledes oprette en php fil, der afsender emailen. Denne php-fil "starter" imidlertid ikke sig selv. Dertil skal du hos UnoEuro oprette et cronjob, som peger på den php-fil, du vil have sat i gang. Hos UnoEuro opretter man cronjob ved at gå ind i controlpanelet, klikke på på "Website" yderst til venstre, og så vælge "Cronjobs" under Webservices.
ejvindh Professor
07. oktober 2019 - 15:28 #2
Php-filer til at håndtere inputs fra html-forms kan du finde her:
https://www.w3schools.com/php/php_forms.asp
nfssister Forsker
07. oktober 2019 - 18:30 #3
Har du evt. et færdigt script jeg kan kigge på, tænker også hvis der findes nogle evt. med lidt sikkerhed i.

Kan man evt. lave en pinkode, så man skal kende pinkoden for at kunne trykke send ?
ejvindh Professor
07. oktober 2019 - 18:44 #4
Jeg tænker, at hvis du følger det sidste link, jeg lagde, så får du en del bud på færdige scripts du kan arbejde med. Heri finder du også valideringsprocedurer.

Man kan godt indlægge et check for en bestemt pinkode, men så kan det naturligvis ikke umiddelbart bruges i et cronjob.
nfssister Forsker
08. oktober 2019 - 07:10 #5
Jeg har ramt en mur... jeg har lånt et script på nettet, men når jeg forsøger at sende med det får jeg følgende fejl:

arse error: syntax error, unexpected '"' in /var/www/DOMÆNE/public_html/FOLDER/contact-form-handler.php on line 44


Linie 44 er den linie med bodytekst ifølge note++ - Kan ikke se hvad der er galt :(

<?php
$errors = '';
$myemail = 'MAIL;//<-----Put Your email address here.
if(empty($_POST['kage1']) ||
  empty($_POST['kage2']) ||
  empty($_POST['kage3']) ||
  empty($_POST['kage4']) ||
  empty($_POST['kage5']) ||
  empty($_POST['kage6']) ||
  empty($_POST['kage7']) ||
  empty($_POST['kage8']) ||
  empty($_POST['kage9']) ||
  empty($_POST['kage10']) ||
  empty($_POST['kage11']) ||
  empty($_POST['kage12']) ||
  empty($_POST['kage13']) ||
  empty($_POST['kage14']) ||
  empty($_POST['kage15']) ||
  empty($_POST['kage16']) ||
  empty($_POST['kage17']) ||
  empty($_POST['kage18']) ||
  empty($_POST['kage19']) ||
  empty($_POST['navn']))
{
    $errors .= "\n Fejl: Alle felter skal udfyldes";
}

$name = $_POST['name'];
$email_address = $_POST['email'];
$message = $_POST['message'];

if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",
$email_address))
{
    $errors .= "\n Fejl: Mailadressen er forkert";
}

if( empty($errors))
{
    $to = $myemail;
    $email_subject = "Bagerbestilling fra Shell Assens";
    $email_body = "Vi vil gerne bestille følgende:"
    "Hindbærsnitter: $kage1 \n Træstammer: $kage2 \n Sveskesnitter: $kage3 \n Nøddesnitter: $kage4 \n Dag/Natsnitte: $kage5 \n Drømmekage (Skærekage): $kage6 \n Drømme Chokoladekage (Skærekage): $kage7 \n Nøddekage (Skærekage): $kage8 \n Romkugler Kokos: $kage9 \n Romkugler Multi Mix: $kage10 \n Romkugler Chokolade: $kage11 \n Marcipansnitter: $kage12 \n Nougat Drøm: $kage13 \n Makronsnitter: $kage14 \n Softkernebrød (I Skiver): $kage15 \n Græskarbrød (I Skiver): $kage16 \n Landmandsbrød (I Skiver): $kage17 \n Pakke Rugbrød u/ kerner (I Skiver): $kage18 \n Pakke Rugbrød m/ kerner (I Skiver): $kage18 \n Med venlig hilsen: $navn ";
   
    $headers = "From: $myemail\n";
    $headers .= "Reply-To: $email_address";
   
    mail($to,$email_subject,$email_body,$headers);
    //redirect to the 'thank you' page
    header('Location: contact-form-thank-you.html');
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Contact form handler</title>
</head>

<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>


</body>
</html>
ejvindh Professor
08. oktober 2019 - 07:45 #6
Ved emailbody afslutter du strengen, uden at fortælle at du vil binde den næste sammen med den forudgående. Så enten fjern det afsluttende anførselstegn og den begyndende anførselstegn i næste linje, eller sæt et punktum efter det afsluttende, så script-fortolkeren ved, at næste linje også er en del af emailbody.
nfssister Forsker
08. oktober 2019 - 18:46 #7
Tak det hjalp

Nu er mit eneste problem, at POST ikke rigtig virker med det der kommer frem på mailen. Den skriver alt det tekst jeg har forud defineret, men værdierne kommer ikke med over....

så alt det med $NAME det kommer ikke frem. Nogle der har et godt bud på dette ?
nemlig Forsker
08. oktober 2019 - 21:07 #8
Du mangler at definere dine variabler......

$kage1 = $_POST['kage1'];
$kage2 = $_POST['kage2'];
osv..

Du kan også bare skrive din POST-variabler direkte i teksten...

"Hindbærsnitter: $_POST['kage1'] \n Træstammer: $_POST['kage2'] \n
osv.
ejvindh Professor
08. oktober 2019 - 21:11 #9
I den kode, du har lagt ud her, er der ingen steder, du fylder indhold i dine $kage variabler.

Måske skulle du udskifte $kage1 med $_POST['kage1']
... Og tilsvarende med de andre kager?
ejvindh Professor
08. oktober 2019 - 21:12 #10
Nå, crosspost :-)
nfssister Forsker
08. oktober 2019 - 21:51 #11
Hvordan definere jeg "kagerne". Jeg antog at den tog variablerne (kagerne) fra min første side med form'en og så lagde den værdierne over i PHP scriptet ?
nfssister Forsker
09. oktober 2019 - 06:55 #12
Tak for svaret, jeg var bare stære blind ! - Tak - alt virker som det skal :D
nfssister Forsker
15. oktober 2019 - 21:06 #13
Ja så kom der alligevel lidt skår i glæden. Jeg er nødt til at have lavet scriptet om, så det sender gennem en SMTP server jeg definere, mange mails ender i spam + yahoo, gmail og outlook tillader ikke den her slags mail fra script.

Nogle der kender et script hvor jeg kan benytte min egen SMTP server som afsender ?
ejvindh Professor
15. oktober 2019 - 22:00 #14
Det med SMTP har jeg ingen erfaring med. Men jeg ved, at det nogle gange kan betale sig, at udfærdige de afsendte emails lidt grundigt -- fx i headeren, hvis man vil undgå at de ryger i spam. Det har jeg i hvert fald selv erfaret. Se evt. mere her:

http://www.velvetblues.com/web-development-blog/avoid-spam-filters-with-php-mail-emails/
nemlig Forsker
16. oktober 2019 - 06:02 #15
Jeg benytter PHPmailer() til afsendelse af mail.
Her kan du nemt opsætte, at du sender gennem en SMTP server.
Der findes mange vejledninger på nettet og fx på YouTube.
Det er nemt gjort.
Du skal også i din DNS opsætning definere en SPF record.

Du kan efterfølgende teste din mail med
https://www.mail-tester.com/
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Test: Kæmpestort gaming-headset er perfekt til dine lange Teams-møder - men har også nogle besværligheder
Længe før vi andre blev slået hjem til hjemmekontorets endeløse webmøder har gamerne gennemskuet behovet for komfortabelt grej. Så vi tog danske EPOS top gamingheadset med på arbejde. Læs testen her.
Computerworld
Biden sender skjult besked til kode-folket: "Hvis du læser dette, har vi brug for din hjælp”
En stående invitation er blevet opdaget i kildekoden på Det Hvide Hus' hjemmeside. Men den er kun til de eksperter, der selv kan finde den.
CIO
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
White paper
Sådan kan du arbejde effektivt uanset tid, sted og type af enhed
Hvad nu hvis dit arbejde, din information, dine processer og teknologien bag ved, var organiseret på en måde så det passede til din organisation – alt sammen guidet af en intelligent udgave af det digitale arbejdsrum? Det er visionen bag Atea og Citrix´s samarbejde med digital workspace – en smartere og mere effektiv måde at arbejde på. I dette whitetpaper kan du derfor læse om, hvordan du kan skabe et mere effektivt og brugervenligt arbejdsrum uanset tid, sted og enhed. En løsning der på en gang er både enkel og som sætter brugeren i centrum.