Avatar billede Asky Forsker
03. juni 2022 - 20:24 Der er 6 kommentarer

Formmail i PHP

Har oprettet flere formmails, der kalder en selvstændig resoponse.fil (hedder altid response). Kan man her indsætte en variabel, der forhindrer uautoriseret brug af den maildel, der ligger i responsen? responsen sender mails til kunde og firma.

<form action="response.php" method="post" onsubmit="return validate(this)">
<input name="context" value="opret" type="hidden">
<input name="return_page" value="<?php echo $_SERVER['PHP_SELF'] ?>" type="hidden">
<input type="hidden" name="subject" value="Firmabestillingt" >
Avatar billede jakobdo Ekspert
03. juni 2022 - 21:24 #1
Altså at du laver et input hidden, betyder bare dette felt ikke vises på skærmen, men man kan stadig se det, hvis man kigger i "source koden" til siden.
Så det er nok bedre at indføre noget Captcha eller lignende.

Du kunne f.eks. bruge: https://www.google.com/recaptcha/about/
Avatar billede ejvindh Ekspert
07. juni 2022 - 08:04 #2
Hvis dette er en fortsættelse herfra:
https://www.computerworld.dk/eksperten/spm/1039852
... så var min tanke, at når du kalder email-formen, så kan du i den forrige php-fil sætte en variabel, som du så tjekker for inden ovenstående kode bliver afviklet. På den måde kan du forhindre at udefrakommende aktiverer din emailform uden at have bestilt noget.

Hvis dit problem på den anden side er, at brugerne når de bestiller noget, samtidig afskiber spam-emails, så skal du nok ud i noget, der ligner løsningen fra #1. Og den virker naturligvis også kun, hvis det er bots -- og ikke reelle brugere...
Avatar billede Asky Forsker
07. juni 2022 - 14:54 #3
Det er ikke det sidste. Så tænker du på at inden Form action at sætte en if $x = et tal
<form action="response.php" method="post" onsubmit="return validate(this)">
<input name="context" value="opret" type="hidden">
<input name="return_page" value="<?php echo $_SERVER['PHP_SELF'] ?>" type="hidden">
<input type="hidden" name="subject" value="Firmabestillingt" >
Avatar billede ejvindh Ekspert
07. juni 2022 - 21:00 #4
Hmja, hvis du i den php-fil, der kalder ovenstående, har sat variablen $x til (fx) 1, så kan du omkranse ovenstående php-kode med en if, der tester for $x's værdi:

if ($x === 1) {
  [din kode ovenfor]
}

Og som nævnt i #1, så giver dine hidden-variabler i koden herover ikke ekstra-sikkerhed, da de som nævnt vil kunne findes vha. en "vis koder" i browseren.
Avatar billede Asky Forsker
07. juni 2022 - 22:43 #5
Har prøvet det lidt af. Det giver kun uexpectede fejl i php-en. Måske laver jeg ikke koden korrekt
Avatar billede ejvindh Ekspert
08. juni 2022 - 08:50 #6
Ja, det kunne godt lyde sådan.
Avatar billede 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. Der sættes "nofollow" på alle links.

Loading billede 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