Kontakt form(PHP) hjælp

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:
Kontakt form(PHP) hjælp

Indlæg af cristian » 9. mar 2014, 13:04

Davs drenge.

For noget tid siden var Daniel så venlig at sende mig et PHP script som kunne sende en e-mail

Kode: Vælg alt

<?php
if(isset($_POST) && !empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['besked'])) {
    $name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
    $email_from = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
    $email_to = 'me@danicait.dk';
    $subject = 'Besked fra danicait.dk';
    $message_user = filter_var($_POST['besked'], FILTER_SANITIZE_STRING);
    $message = 'Navn: ' . $name . "\r\n" . 'Email: ' . $email_from . "\r\n\r\n" . 'Besked:' . "\r\n" . $message_user;
    $headers = 'From: danicait.dk kontaktformular <' . $email_from . '>';

    if(mail($email_to, $subject, $message, $headers)) {
        echo 'Emailen blev afsendt med succes!';
    } else {
        echo 'Din e-mail kunne ikke blive sendt på nuværende tidspunkt';
    }
    header( 'Location: http://www.danicait.dk/form.html' ) ;
}
Hvor jeg eksekverer dette script ved at sige i min form

Kode: Vælg alt

<form action="PHP/kontakt.php" method="post">
Men af årsager jeg ikke kan gennemskue så virker dette ikke, jeg får bare en blank side fra http://www.danicait/PHP/kontakt.php
Er der nogle der kan fortælle mig hvad der er gået galt?

Derudover hvordan kan man redirect til en side efter en meddeles enten er blevet sendt med succes eller fejl?
Så vidt jeg kan google er det header(location) der gør dette, det sker bare ikke.

Det skal lige siges at jeg zero PHP erfaring eller viden har da jeg bruger JSP & Java. Men det tillader one.com ikke på deres hosting løsninger og har ikke fået
lavet mit eget setup endnu i det datacenter jeg har en VPS løsning hos.

login formen kan ses her http://www.danicait.dk/form.html

Tak på forhånd.

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg:709
Tilmeldt:21. jun 2012, 23:40
Kontakt:

Re: Kontakt form(PHP) hjælp

Indlæg af scootergrisen » 9. mar 2014, 16:49

Du kan slå fejlbekseder til ved at skrive følgende øverst før resten af din PHP kode.

Kode: Vælg alt

<?php

ini_set("display_startup_errors", "on");
ini_set("display_errors", "on");
ini_set("html_errors", "false"); // slip for HTML koder i fejlbeskeder
error_reporting(-1); // -1 viser alle slags fejl beskeder

?>
Der vil formodentligt stå en fejlbesked om at header is already sent.

Det er fordi først bruger du echo og derefter viderestiller du med header().
Det må du ikke fordi det giver ikke mening at du vil skrive noget men samtidig vil du viderestille til noget andet.
Så enten brug echo eller også viderestil. Ikke begge dele.

Se også : http://netkoder.dk/netkoder/kode_email.php

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Kontakt form(PHP) hjælp

Indlæg af cristian » 9. mar 2014, 17:07

Tak scooter.

Fik det til at virke.

Vh

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg:709
Tilmeldt:21. jun 2012, 23:40
Kontakt:

Re: Kontakt form(PHP) hjælp

Indlæg af scootergrisen » 9. mar 2014, 17:11

Ja for eksempel.
Også er det en god ide og bruge exit; efter header location så man er sikkert på der ikke udføres noget kode efter.

Personligt bruger jeg ikke den måde med at viderestille, jeg har alt sammen samlet i samme fil.

Besvar