Avatar billede lefsa62 Seniormester
21. januar 2019 - 19:59 Der er 17 kommentarer

Checbox

Jeg har et sendformular som er contaktet til et php skript. Nu har jeg tilføjet en checbok som jeg har til formål at når en bruger setter et flueben i den så kal det poppe et skrift som “jeg acccepterer data” når han så trykker send så skal jeg også den sammen med de andre data via mail.

Er det nogle som klarer det
Avatar billede ejvindh Ekspert
22. januar 2019 - 11:14 #1
<!DOCTYPE html>
<html>
<body>

<p>Display some text when the checkbox is checked:</p>

Checkbox: <input type="checkbox" id="myCheck"  onclick="myFunction()">

<script>
function myFunction() {
  var checkBox = document.getElementById("myCheck");
  if (checkBox.checked == true){
    window.alert("jeg acccepterer data");
  }
}
</script>

</body>
</html>

(nolet herfra: https://www.w3schools.com/howto/howto_js_display_checkbox_text.asp)
Avatar billede lefsa62 Seniormester
22. januar 2019 - 11:36 #2
Den har jeg prøvet  men uden rslutat, den vil kun skrive hvad der står i taget <p> og ikke det andet. Men det var tanken at den skulle skrive det i en tabel noget lignende en hvor det ikke kan skrive i og når de trykker sen så vil jeg få den sammen med beskeden
Avatar billede ejvindh Ekspert
22. januar 2019 - 15:04 #3
I forhold til at få den til at skrive det direkte på skærmen, så kan du så bruge den løsning, jeg linkede til -- hvis du fx klikker ind på "Try it yourself". Der skrives det direkte på skærmen.

I forhold til at få den sendt med, så tror jeg ikke helt jeg forstår pointen. Men hvis du ønsker det, kan du lægge den ind som value i din checkbox.
Avatar billede lefsa62 Seniormester
22. januar 2019 - 15:28 #4
Ja det er rigtigt nok at det gør den der, Men ikke hos mig selv om jeg tager det hele med og smider den i send formularen hvor jeg vil have den så er det kun p taget som vises. Det som jeg kunne tænke mig er at når brugeren har vinget  af så vil den blive skrevet i en box så lige snart vedkommende har trykket på send så ville jeg gerne have teksten ville følge med på mailen som han sendte til mig så har jeg det på skrift
Avatar billede ejvindh Ekspert
23. januar 2019 - 08:14 #5
Ja, men skal du ikke bare lave en <div> med det id, som du skriver til, som du så lægger derhen, hvor du vil have teksten?
Avatar billede lefsa62 Seniormester
23. januar 2019 - 09:45 #6
Det er ikke bare det. Hvis du går ind på tordvin.dk/contact der finder du formularen. Teksten kommer nederst men jeg vil have den i emne  feltet så vil den blive ydre et i i mailen. Så det er min udfordring
Avatar billede ejvindh Ekspert
23. januar 2019 - 11:10 #7
Linket virker ikke. Og så kan jeg heller ikke lige forstå, hvad du mener med det sidste af din besked her: "feltet så vil den blive ydre et i i mailen"

Men hvis du gerne vil have selve beskeden sendt med til php'en, så handler det jo ikke om, hvor den vises på skærmen, men derimod om, hvad du putter ind i value'en til din checkbox.

Altså noget i stil med:
<input type="checkbox" id="myCheck"  value="jeg acccepterer data" onclick="myFunction()">
Avatar billede lefsa62 Seniormester
23. januar 2019 - 13:02 #8
Nu har jeg prøvet det men texten jeg 'accepterer darapoletik' bliver ikke skrevet i den mail jeg vil modtage. Jeg modtager bare hvad det står i de andre text boxer men ikke omkring checkboxen
Avatar billede lefsa62 Seniormester
23. januar 2019 - 13:06 #9
Undskyldning jeg mangler lige også lave den min php string så den også visses😊
Avatar billede lefsa62 Seniormester
23. januar 2019 - 22:32 #10
Nu er det afprøvet med flere.
prøv at tjek på tordvin.dk/contact
når i setter flueben i boxen sker det kun hvad i ser
herkommer sheckboxen og min php skript
Checkbox: <input type="checkbox"required id="myCheck"  onclick="myFunction()"><br>
                                                                <p id="text" style="display:none">Datapoletik Accept!</p>
                                                                <script>
                                                                function myFunction() {
                                                                  var checkBox = document.getElementById("myCheck");
                                                                  var text = document.getElementById("text");
                                                                  if (checkBox.checked == true){
                                                                    text.style.display = "block";
                                                                  } else {
                                                                    text.style.display = "none";
                                                                  }
                                                                }

<?php
$name = $_POST['name'];
$adress = $_POST['adress'];
$visitor_email = $_POST['email'];
$subject =$_POST['subject'];
$visitor_telephone =$_POST['telephone'];
$choose_city =$_POST['choose_city'];
$message = $_POST['message'];
$checkbox =$_POST['checkbox'];

$email_from = 'mail@tordvin.dk';

$email_subject = "Ny besked fra";

$email_body = "Navn: $name.\n".
                "Adresse : $adress.\n".
                "E-mail: $visitor_email.\n".
                "Telefon: $visitor_telephone.\n".
                "Vælg by: $choose_city.\n".
                "Emne: $subject.\n".
                "Besked: $message.\n".
                "Checkbox : $myFunction.\n";


$to = "mail@tordvin.dk";

$headers .= "From: $email_from\r\n";

$headers .= "Replay-To: $visitor_email \r\n";

mail($to, $email_subject, $email_body, $headers);
header ("Location: contact.php?page=succes");
Den virker bare ikke med checkbox
Avatar billede lefsa62 Seniormester
23. januar 2019 - 22:34 #11
Den skulle skrive det i en mail når den bliver afsendt i stedet for den skriver det i formular boxen
Avatar billede ejvindh Ekspert
24. januar 2019 - 07:51 #12
Du mangler en "name" på din checkbox.

Og som en lille tilføjelse, så faldt jeg lige over, at du staver forkert til "datapolitik".
Avatar billede ejvindh Ekspert
24. januar 2019 - 07:52 #13
Nå, i det hele taget skal der nok læses noget korrektur på stavningen -- men det er selvfølgelig foreløbig en biting :)
Avatar billede ejvindh Ekspert
24. januar 2019 - 08:43 #14
Og så kunne det også være et råd at rense strengene lidt for injections, inden du sender den afsted. Du skal tænke på, at det er ikke en given ting, at dem, der kommer ind på din side har gode hensigter.
Avatar billede lefsa62 Seniormester
24. januar 2019 - 09:15 #15
Du skriver at det mangler en "name" i checboxen hvor skulle det stå hen i strengen og vil det hjælpe om den vil poste det til min meil sammen med det andet. Så skriver du at rense strengene. Kan du give eksempler 😊
Avatar billede lefsa62 Seniormester
24. januar 2019 - 10:37 #16
Jeg kunne selvfølge bare nøjes med at lade den skript “required” være,  men ifølge data loven så skal virksomheder have tilladelsen på skrift for videre komnikation pr meil.  lige nu skriver den når den er vinget af i Checkboxen at han har accepteret men kun i formularboxen i contakt så den bliver ikke sendt med de andre skript til mail til modtageren
Avatar billede ejvindh Ekspert
24. januar 2019 - 11:59 #17
I denne linje:
$checkbox =$_POST['checkbox'];
...prøver du at hente en værdi til variablen $checkbox. Men hvordan skal den vide, hvor den skal hente den fra? Du skal have følgende ind i din html-kode:

Checkbox: <input type="checkbox"  name="checkbox" id"myCheck" value="Jeg accepterer datapoletik" onclick "myFunktion()">

Angående injections, så er det jo et stort område. Men læs evt. her:
https://blog.ripstech.com/2017/why-mail-is-dangerous-in-php/
https://www.acunetix.com/blog/articles/email-header-injection/

Hvis du ikke selv ønsker at tage dig af det, så tænker jeg måske du skulle bruge nogle af de pakker, der allerede ligger derude. Fx PHPMailer.
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