Avatar billede donaldspost Nybegynder
08. november 2015 - 00:34 Der er 4 kommentarer

Afsender i formular

Jeg er ikke særlig god til PHP, og har egentlig bare prøvet mig frem ved hjælp af guides osv.
Den kan sende mail afsted, men mit problem er at afsenderen ikke står som den mail afsenderen har tastet ind. Jeg ved godt det er meget rodet, og der nok er lidt fejl hist og her, men  hvad har jeg gjort forkert?

Her er min ene PHP som er min kontaktside:

<form method="post" action="sender.php">
                <fieldset>
                <div class="feed-back">
                        <div class="col-md-6 tt">
                        <div class="text-area">
                       
                       
<label for="t4">Besked:</label>
<textarea id="t4" name="besked" rows="10" cols="49"></textarea><br />

                        </div>
                        </div>
                        <div class="col-md-6 tt brk9">
                        <div class="form">
                       
<form method="post" action="sender.php">

<label for="t3">Emne:</label>
<input id="t3" type="text" name="emne" /><br /><br />


<label for="t1">Navn:</label>
<input id="t1" type="text" name="name" /><br />

                           
                                <br>

<label for="t2">Email:</label>
<input id="t2" type="text" name="email" /><br />



<br>
<label for="t5">Ønskes kopi?</label>
<input type="checkbox" id="t5" name="customer_copy" checked="checked" />

<br>
<label for="t6">&nbsp;</label><input id="t6" type="submit" class="btn btn-info" name="submit" value=" Send mail " />
&nbsp; &nbsp; <input type="reset" class="btn btn-info" value=" Slet alt " />

</fieldset>
</form>


___________________________________________________________________

Og her er min anden PHP, som er min sender.php

<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>

<?php
if (isset($_POST['submit']))
{
if (!empty($_POST['name']) && // tjek, at der er skrevet et navn
!empty($_POST['email']) &&    // tjek, at der er skrevet en e-mail-adresse
!empty($_POST['emne']) &&  // tjek, at der er skrevet et emne
!empty($_POST['besked']) &&  // tjek, at der er skrevet en besked

// her følger sikringen mod spambotter
!strpos($_POST['name'], "dit_domain.dk") &&  // tjek, at dit domæne ikke er skrevet i feltet "navn"
!strpos($_POST['email'], "dit_domain.dk") && // tjek, at dit domæne ikke er skrevet i feltet "email"
!strpos($_POST['name'], "@") && // tjek, at der ikke er et @ i "navn"
!eregi("\r",$_POST['name']) &&  // tjek, at der ikke er "vogn-retur" i "navn"
!eregi("\n",$_POST['name']) &&  // tjek, at der ikke er "linjeskift" i "navn"
!eregi("\r",$_POST['email']) && // tjek, at der ikke er "vogn-retur" i "email"
!eregi("\n",$_POST['email']))  // tjek, at der ikke er "linjeskift" i "email"

// er alt ok, fortsættes med afsendelse af mailen
{
  $headers="From: ".$_POST['name']."<".$_POST['email'].">";
  if (@$_POST['customer_copy'])
  {
  $headers .= "\r\nBcc: ".$_POST['email'];
  }
  $body .= "Den " . date("d/m y") . " kl. " . date("G:i") . " skrev " . $_POST['name'] .":\r\n\r\n" . $_POST['besked'];
  if (@mail("mail@ditdomæne.dk", strip_tags($_POST['emne']),
  stripslashes(strip_tags($body)), $headers))
  {
  echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</p>";
  }
  else
  {
  echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
  }
}
else
{
  echo "<p>Mailen kunne ikke sendes, alle felter skal udfyldes korrekt!</p>";
}
}
?>
</body>
</html>
Avatar billede moddi100 Seniormester
08. november 2015 - 02:15 #1
Fedt at du prøver selv! Det er bare at klø på og fortsætte :)

Start med at rydde lidt op i din HTML, da det sagtens kan være her den går galt.

Nedenstående linje har du to gange i html'en, hvilket kan få nogle browsere til at lave ret så sjove ting. Fjern derfor den sidste af disse:
<form method="post" action="sender.php">


Ergo har du til slut nu en <form> rundt om hele din fieldset - og ikke en, der bliver afbrydt med i det hele.

Hvad sætter den ellers ind som afsender nu?
08. november 2015 - 09:45 #2
Det vil muligvis være nemmere at hjælpe, hvis du fortæller mere om problemet.  Du siger, at afsenderen ikke er den som mail afsenderen har tastet ind.  Hvad får du som afsender?  Ingen ting, eller noget andet end det du ville?  Bliver de andre felter gengivet korrekt, date, email, besked?

I din html, ud over hvad #1 nævnede, så mangler du nogle tags, du har ikke så mange </div> som du har <div>.  Du bruger også nogle gange <br> i stedet for <br />.  Måske er det i orden, men min applikation stejler over det.  Yderligere bruger du eregi, som nu er depreciated.  Jeg fandt et eksempel på hvordan du kan ændre det, http://stackoverflow.com/questions/1374881/how-to-change-phps-eregi-to-preg-match .

Der ud over vil jeg nævne, at min måde at lære php på var også at gå i gang og følge guides, og yderligere lærte jeg meget ved at besvare spørgsmål her på Eksperten, google og prøve mig frem til jeg fandt løsningen.  Så held og lykke!
23. november 2015 - 13:47 #3
Donalpost, kom du fra det igen?  Du oprettede spørgsmålet, men du har ikke været inde og se de kommentarer du fik.  Hvis spørgsmålet ikke længere er relevant, så luk det venligst igen.  Ellers kom venligst ind og forklar din videre hensigt.
11. maj 2016 - 14:02 #4
Jeg prøver lige en gang mere.  Du oprettede spørgsmålet og fik flere indlæg, men du kom aldrig tilbage, og du har nu ladet os hænge i et åbent spørgsmål.  Kom venligst ind og luk spørgsmålet igen med eget svar.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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