Avatar billede glambrecht Nybegynder
29. august 2010 - 17:12 Der er 14 kommentarer og
1 løsning

fejl i linie 19 $message = "Hej!

kontaktformular på www.fenesu.dk har jeg kombineret med filen
mail.php
----
<?php
/* Set e-mail modtager */
$modtager  = "info@fenesu.dk";

/* Check alle formular inputs ved check_input function */
$navn = check_input($_POST['navn'], "Skriv dit navn");
$email    = check_input($_POST['email']);
$tlf    = check_input($_POST['tlf']);
$besked = check_input($_POST['besked'], "Skriv en besked");

/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
    show_error("E-mailadressen duer ikke ");
}

/* Let's prepare the message for the e-mail */
$emne  = "kontaktformular fra fenesu.dk"
$message = "Hej!

Formularen er sendt af:

Navn: $navn
E-mail: $email
Telefon: $tlf

Besked:
$besked

End of message
";

/* Send the message using mail() function */
mail($modtager, $emne, $message);

/* Redirect visitor to the thank you page */
header('Location: tak.htm');
exit();

/* Functions we used */
function check_input($data, $problem='')
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    if ($problem && strlen($data) == 0)
    {
        show_error($problem);
    }
    return $data;
}

function show_error($myError)
{
?>
    <html>
    <body>

    <b>Ret venligst følgende fejl:</b><br />
    <?php echo $myError; ?>

    </body>
    </html>
<?php
exit();
}
?>

Er der nogen, der kan se, hvad jeg gør forkert?
v.h.
Grethe
Avatar billede olsensweb.dk Ekspert
29. august 2010 - 17:22 #1
/* Let's prepare the message for the e-mail */
$emne  = "kontaktformular fra fenesu.dk";
$message = "Hej!";

start med at afslut de 2 sætninger med et semicollon, og "
Avatar billede olsensweb.dk Ekspert
29. august 2010 - 17:43 #2
rettelse
$message = "Hej!
var afsluttet længere nede
Avatar billede glambrecht Nybegynder
29. august 2010 - 18:13 #3
hej
og tak - det var halvdelen (tror jeg)
der manglede selvsagt et semikolon  efter linie 18 - emnelinier.
så den er der nu
- og hvis jeg forsøger at sende formularen uden email, får jeg også fint en fejlmelding
MEN MEN
nu får jeg følgende fejl:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/fenesu.dk/mail.php:1) in /home/www/fenesu.dk/mail.php on line 37
Avatar billede majbom Novice
29. august 2010 - 18:56 #4
du må skrive noget til din browser et sted før du kører din header() på linje 37
Avatar billede olsensweb.dk Ekspert
29. august 2010 - 19:14 #5
>Warning: Cannot modify header information - headers already sent by (output started at /home/www/fenesu.dk/mail.php:1) in /home/www/fenesu.dk/mail.php on line 37
det er pga dette
http://dk2.php.net/manual/en/function.header.php
[cut]
Description
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
header() is used to send a raw HTTP header. See the » HTTP/1.1 specification for more information on HTTP headers.
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
[/cut]
når det er første karakter har du enten et mellemrum i starten af linje 1 før <?php eller eller du har gemt filen i et format med BOM
http://en.wikipedia.org/wiki/Byte_order_mark
http://www.ozzu.com/website-design-forum/byte-order-mark-org-t68872.html
Avatar billede glambrecht Nybegynder
29. august 2010 - 19:36 #6
tak - det må jeg vist lige tygge på! synes ikke, jeg bliver så meget klogere af det. (der er ikke noget mellemrum i starten)

beskeden kommer rent faktisk frem til mig - men det er en fejl i forhold til, at jeg har bedt om, at brugeren bliver sendt til siden tak.htm
dette sker ikke, men beskeden kommer frem til mig
grethe
Avatar billede olsensweb.dk Ekspert
29. august 2010 - 19:54 #7
>header('Location: tak.htm');
bliver ikke udført pga der er sendt noget til skærmen for den kommer til header

nu skriver du ikke hvilke editor du anvender (det er normalt også irelevant), jeg anvender selv notepad++
http://www.ozzu.com/website-design-forum/byte-order-mark-org-t68872.html
[cut]
To remove the BOM: You can just open the file in Notepad++ (which you should be using anyway, as it's by far the best text editor around), and check Format ? UTF-8 without BOM. Alternatively, you can open the file in a hex editor and remove the "EF BB boyfriend" from the beginning of the document.
Links:
Notepad++: http://notepad-plus.sourceforge.net/uk/download.php
[/cut]

ellers prøv at google din editor BOM
Avatar billede glambrecht Nybegynder
30. august 2010 - 00:15 #8
TUSINDE TAK
det er helt vildt. det virker. (og jeg ved ikke hvorfor!)
jeg downloadede Notepad++ (super - tak for tippet)
og selv i denne kunne jeg ikke se noget forkert - men prøvede mig lidt frem og bad den om at konvertere uden BOM
og så virker det bare
tak for hjælpen
jeg havde aldrig fundet den selv, for når jeg sidder og sammenligner, kan jeg stadig ikke se forskellen
men super!
Grethe
Avatar billede majbom Novice
30. august 2010 - 07:36 #9
BOM er en enkelt karakter og jeg tror ikke man kan se den medmindre man beder om at få vist linjeskift, tabs osv i en tekst - ved ikke om man kan det er editorer eller det kun er word?
Avatar billede olsensweb.dk Ekspert
30. august 2010 - 11:32 #10
"Warning: Cannot modify header information - headers already sent by (output started at xxxxxxx:1)"
bør altid få dig til at tænke på BOM, har man først haft fejlen 1 gang så husker man den.

word viser den hvis man åbner filen som DOS tekst

NB
husk at følge op på denne http://www.eksperten.dk/spm/917531, kan muligvis lukkes da den del af coden du viser minder meget om dette spørgsmål
Avatar billede glambrecht Nybegynder
30. august 2010 - 13:27 #11
tak igen - og ja, jeg har lige svaret på den anden
grethe
Avatar billede olsensweb.dk Ekspert
30. august 2010 - 15:52 #12
læs veligst disse faq'er
http://www.eksperten.dk/faq#faq-3-1 (accepterer svar og lukning af spørgsmål)
http://www.eksperten.dk/faq#faq-4-2 (lukning af spørgsmål)
http://www.eksperten.dk/faq#faq-8-5 (info)
Avatar billede glambrecht Nybegynder
30. august 2010 - 17:32 #13
tak for tip
Notepad++  + dine henvisninger til BOM gjorde udslaget
Avatar billede glambrecht Nybegynder
30. august 2010 - 17:37 #14
jeg har virkelig forsøgt at gøre det rigtigt!
og det var ronols der skulle have haft point'ne - ikke mig selv!
jeg accepterede jo svaret, så hvorfor går point ikke til dig?
Avatar billede olsensweb.dk Ekspert
30. august 2010 - 19:52 #15
ref http://www.eksperten.dk/faq#faq-5-3
[cut]
Metoden er forholdsvis simpel. Opret et nyt spørgsmål i samme kategori som det oprindelige spørgsmål og kald det "Point til [brugernavn]" hvor du erstatter [brugernavn] med navnet på den bruger du ønsker skal have point. Husk at skrive et link til spørgsmålet hvor du normalt skriver en længere beskrivelse af dit problem.
[/cut]
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