PHP mail form, versturen werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Kimberly
  • Registratie: Juli 2002
  • Laatst online: 20-09 17:31
Op dit moment bezig met:

http://kimyy.woelmuis.nl/contact.htm

Ik vraag me alleen af waarom het contact forumulier niet werkt.Je kunt alles invullen,het formulier zegt dat alles verstuurd is. En vervolgens krijg je geen email.

Het htm bestand: http://kimyy.woelmuis.nl/php/contactformulier.html
Het php bestand: http://kimyy.woelmuis.nl/php/verzenden.php

Bedankt. :)

Intel 14700K | Asus ROG Strix z790 GAMING WIFI | 32GB 7200MHZ | ASUS ProArt RTX 4070 SUPER | Fractal North | CORSAIR RM750 | Samsung 2.5TB NVME | Samsung Odyssey G8 OLED


Acties:
  • 0 Henk 'm!

  • Maartenvs
  • Registratie: December 2002
  • Laatst online: 16-08 19:58

Maartenvs

For Sale

Contactformulier regel 20 staat 2x " achter top. Verder is je verzenden.php helemaal leeg. Ben geen held in php maar volgens mij mis je daar veel code.

[ Voor 51% gewijzigd door Maartenvs op 11-04-2009 11:54 ]


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Ghehe, held :P Je moet het php bestand even de .phps extensie geven, meeste hosts zorgen er dan wel voor dat je de source zelf ziet. Nu parsed hij de code eerst, en dus zie je niets.

Acties:
  • 0 Henk 'm!

Verwijderd

Patriot schreef op zaterdag 11 april 2009 @ 11:55:
Je moet het php bestand even de .phps extensie geven, meeste hosts zorgen er dan wel voor dat je de source zelf ziet.
Jij verwacht dat de meeste hosting providers achterlijk zijn? Zulke instellingen zijn niet bedoeld voor productieservers.

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Verwijderd schreef op zaterdag 11 april 2009 @ 12:00:
[...]

Jij verwacht dat de meeste hosting providers achterlijk zijn? Zulke instellingen zijn niet bedoeld voor productieservers.
Euh, mijn ervaring is dat veel hostingproviders dat doen ja.

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 21:26
Patriot schreef op zaterdag 11 april 2009 @ 11:55:
Ghehe, held :P Je moet het php bestand even de .phps extensie geven, meeste hosts zorgen er dan wel voor dat je de source zelf ziet. Nu parsed hij de code eerst, en dus zie je niets.
Ik neem aan dat je dat tegen de TS hebt en dat die een kopie van zijn bestand moet maken met de extensie. :? Dat zou anders wel wat moois zijn als je bij de meeste hosters zo even de bron van de webapplicatie kon zien door er een -s achter te zetten...

Ik vermoed dat de meeste hosters nergens rekening mee houden, maar dat het meer is dat de server een onbekend tekstdocument ziet en dat dat dan als download wordt aangeboden met als content-type "text/plain".

Overigens niet helemaal het juiste advies. Als de TS zo vriendelijk zou willen zijn om de relevante stukken van de source met de benodigde code-tags hier te plakken, dan zouden we verder kunnen. Of misschien zou die zich hoe dan ook iets meer kunnen verdiepen in php, want het is natuurlijk vrij duidelijk dat als je een link geeft naar een php-bestand je op een normale Apache/PHP server een geparsde versie ontvangt.

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

doeternietoe schreef op zaterdag 11 april 2009 @ 12:08:
[...]

Ik neem aan dat je dat tegen de TS hebt en dat die een kopie van zijn bestand moet maken met de extensie. :? Dat zou anders wel wat moois zijn als je bij de meeste hosters zo even de bron van de webapplicatie kon zien door er een -s achter te zetten...
Of hij er nou een kopie van maakt of niet, maakt natuurlijk vrij weinig uit. Als je de .phps extensie gebruikt zorgen sommige (en naar mijn ervaring veel) hosts ervoor dat je de code inclusief colorcoding te zien krijgt.

EDIT: De hosters houden hier dus wel degelijk rekening mee. Gewoon een regeltje in de .htaccess:

code:
1
AddHandler application/x-httpd-php-source .phps

[ Voor 12% gewijzigd door Patriot op 11-04-2009 12:49 ]


Acties:
  • 0 Henk 'm!

  • r0b
  • Registratie: December 2002
  • Laatst online: 14:54

r0b

Verwijderd schreef op zaterdag 11 april 2009 @ 12:00:
[...]

Jij verwacht dat de meeste hosting providers achterlijk zijn? Zulke instellingen zijn niet bedoeld voor productieservers.
Waarom is php-source .phps niet bedoeld voor productieservers :? Ik gebruik het al jaren :?

[ Voor 4% gewijzigd door r0b op 11-04-2009 12:53 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Mea culpa. Ik lijk me inderdaad te vergissen. Dat neemt niet weg dat ik het achterlijk vind. Het is onlogisch dat op productieomgevingen source gepresenteerd zou kunnen worden. De standaard zou moeten zijn:
code:
1
AddType application/x-httpd-php .phps

Wederom ben ik licht teleurgesteld in de rest van de wereld :)

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Deorgere schreef op zaterdag 11 april 2009 @ 11:43:
Op dit moment bezig met:

http://kimyy.woelmuis.nl/contact.htm

Ik vraag me alleen af waarom het contact forumulier niet werkt.Je kunt alles invullen,het formulier zegt dat alles verstuurd is. En vervolgens krijg je geen email.

*snip
Bedankt. :)
Dus wat heb je zelf al geprobeerd om dat op te lossen? Wat lukte daar niet mee?

Link naar je code en hopen dat wij alles voor je gaan oplossen is hier niet de bedoeling. We verwachten dat als je een topic hier start dat je ook laat zien er zelf mee bezig geweest te zijn. Dit laat ons zien dat je er echt moeite in hebt gestopt en je voorkomt advies over zaken die je al hebt geprobeerd. Als je code wilt laten zien geef dan niet domweg een linkje naar al je code maar zet de relevante code gewoon direct in je post. En een link direct naar een .php bestand laat uiteraard niet de broncode zien ;)

[ Voor 19% gewijzigd door Creepy op 11-04-2009 14:05 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ben het eens met Cheatah dat dit op een productieserver eigenlijk niet moet kunnen. Dat veel hosters dit wel toestaan is een ander verhaal natuurlijk ;)

Aan de TS: leer debuggen!

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 21:26
Cartman! schreef op zaterdag 11 april 2009 @ 14:05:
Ben het eens met Cheatah dat dit op een productieserver eigenlijk niet moet kunnen. Dat veel hosters dit wel toestaan is een ander verhaal natuurlijk ;)
Het is vreemd inderdaad, hoewel, welke php-programmeur gebruikt nou .phps als tie wil dat de source wordt geparsed?
Aan de TS: leer debuggen!
En je hebt nog geen regel php gezien :+

Acties:
  • 0 Henk 'm!

  • Kimberly
  • Registratie: Juli 2002
  • Laatst online: 20-09 17:31
De php code dan maar. :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php 

if(isset($_POST['email'])) {
    
    $email_to = "k.schievink@home.nl";
    $email_subject = "Bericht van een bezoeker";
    
    
    function died($error) {
        // foutberichten
        echo "Het spijt ons, vanwege een fout is het formulier niet verzonden. ";
        echo "Deze fout(en) tonen zich hieronder.<br /><br />";
        echo $error."<br /><br />";
        echo "Niet alle velden zijn ingevuld.<br /><br />";
        die();
    }
    
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['comments'])) {
        died('Het spijt ons, er is een probleem opgetredn bij het verzenden van het formulier.');       
    }
    
    $first_name = $_POST['first_name']; // verplicht
    $last_name = $_POST['last_name']; // verplicht
    $email_from = $_POST['email']; // verplicht
    $telephone = $_POST['telephone']; // niet verplicht
    $comments = $_POST['comments']; // verplicht
    
    $error_message = "";
    $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
  if(!eregi($email_exp,$email_from)) {
    $error_message .= 'De bedrijfsnaam is niet geldig.<br />';
  }
    $string_exp = "^[a-z .'-]+$";
  if(!eregi($string_exp,$first_name)) {
    $error_message .= 'De naam is niet geldig.<br />';
  }
  if(!eregi($string_exp,$last_name)) {
    $error_message .= 'Het email adres is niet geldig.<br />';
  }
  if(strlen($comments) < 2) {
    $error_message .= 'Uw vraag(en) zijn niet geldig.<br />';
  }
  $string_exp = "^[0-9 .-]+$";
  if(!eregi($string_exp,$telephone)) {
    $error_message .= 'Het telefoonnummer is niet geldig.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Gegevens formulier.\n\n";
    
    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
    
    $email_message .= "Bedrijfsnaam: ".clean_string($first_name)."\n";
    $email_message .= "Naam: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Telefoonnummer: ".clean_string($telephone)."\n";
    $email_message .= "Bericht: ".clean_string($comments)."\n";
    
    
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
?>

Bedankt voor uw interesse in Envymedia. Wij nemen zo spoedig mogelijk contact met u op.

<?
}
?>


Ben zelf niet zo goed in php (ben het aan het leren), maar hier kom ik toch niet echt uit.

Intel 14700K | Asus ROG Strix z790 GAMING WIFI | 32GB 7200MHZ | ASUS ProArt RTX 4070 SUPER | Fractal North | CORSAIR RM750 | Samsung 2.5TB NVME | Samsung Odyssey G8 OLED


Acties:
  • 0 Henk 'm!

  • blaatkipje
  • Registratie: Maart 2007
  • Laatst online: 17-09 07:51
Als je van @mail mail maakt krijg je een foutmelding terug, daar kan je al wat meer mee.

Of kijk is naar phpmailer misschien heb je daar meer mee.

[ Voor 26% gewijzigd door blaatkipje op 11-04-2009 21:36 ]


Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 21:26
Tja... ik moet je nu al gelijk geven 8)

@TS: Controleer dan eens waar het onderweg fout gaat in de weg die het bericht moet gaan. Dus eerst bij de pagina waar de post heen verwijst een var_dump( $_POST ), als dat werkt een zo minimaal mogelijk mailtje met php verzenden, als dat werkt de informatie er stukje bij beetje inzetten en zo proberen bij welke stap er iets fout loopt.

Ik kan je alvast de tip geven dat veel mensen om (soms) onverklaarbare redenen problemen hebben met de ingebouwde mail ondersteuning van php. Er wordt vaak aangeraden om de library van een derde te gebruiken, zoals bijvoorbeeld die uit het Zend Framework.

Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 20-09 14:42
Oja, even wat praktisch: wat als ik meneer X. ben met tel.nr. +328.333.555

Acties:
  • 0 Henk 'm!

  • Cadezo
  • Registratie: Februari 2006
  • Niet online
Er zal ongetwijfeld nog meer met het script niet helemaal kloppen, maar wat ik zou 1-2-3 zie is dat je in de header als From-adres het adres meegeeft dat de persoon in het formulier invult ($emailfrom). Ik weet niet of het bij je het geval is, maar ik heb wel eens meegemaakt dat een server alleen mail verstuurde dat van die domeinnaam afkomstig was.

Dit kan je dus makkelijk controleren en eventueel oplossen door bij het From-adres een adres te geven in de trant van noreply@domein.tld en dan als Reply-to-adres: $emailfrom.

Trouwens ik zou die reclame eruit halen. Staat niet bepaald professioneel als een bedrijf reclame op zijn website heeft.

offtopic:
Tip: Zet even de code tussen 'code=php'-haken, leest stukken prettiger.

[ Voor 15% gewijzigd door Cadezo op 11-04-2009 23:09 ]


Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

PHP:
1
2
3
4
5
6
7
if(!eregi($email_exp,$email_from)) {
      $error_message .= 'De bedrijfsnaam is niet geldig.<br />';
  }
    $string_exp = "^[a-z .'-]+$";
..
  if(!eregi($string_exp,$last_name)) {
      $error_message .= 'Het email adres is niet geldig.<br />';

:?
emailfrom = bedrijfsnaam
lastname = email?

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Dat was maar een onderdeel van het gevraagde. Wat heb je nu zelf al allemaal geprobeerd om je probleem op te lossen? Zelf al aan het debuggen geslagen? Zo nee, waarom niet?
Ben zelf niet zo goed in php (ben het aan het leren), maar hier kom ik toch niet echt uit.
Dat je niet zo goed bent is niet erg. Maar dat het erop lijkt dat je zelf achterover gaat leunen totdat wij het hier gaan fixen is dan niet de bedoeling.

Als je de @ nu ook nog weghaalt bij je mail functie dan verberg je geen fouten meer ;)

[ Voor 7% gewijzigd door Creepy op 11-04-2009 23:24 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Vooral de laatste zin van Creepy meenemen, dat zal de doorslag geven wat er mis is :)
Pagina: 1