Hulp nodig bij een bestaand PHP (send mail) op mijn website

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Ron Deelen

Ron Deelen

04/01/2015 16:10:47
Quote Anchor link
Beste mensen,
Sinds spetember vorig jaar ben ik voor mij zelf begonnen en heb ik om kosten te drukken mijn eigen website gemaakt met een simpel programma. Iemand anders heeft voor mij het PHP gemaakt voor de bestellijst en dat werkt ook.
Helaas kan ik mijn probleem(pje) niet meer aan hem vragen.
Ik wil graag 1 ding veranderen zodat deze voor mij nog beter funtioneerd.
En wel het volgende, het gebeurd nog wel eens dat mijn klanten vergeten hun gegevens in te vullen en krijg ik een leeg mailtje. Ik wil dit graag zo veranderen dat als men vergeet om het emailadres en achternaam in te vullen er een berichtje komt met " u bent vergeten om uw email en achternaam in te vullen".
Hoe moet ik dat doen en waar zet ik dat in het PHP. Jullie snappen het al ik ben totaal niet op de hoogte met de PHP taal en zelfs na veel zoeken en lezen kan ik alleen maar iets veranderen in de huidige situatie.
Is er iemand die mij wil helpen met deze vraag.

Ron

Hieronder staat mijn huidige send PHP file.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
$email_to
= "[email protected]";
$email_from = "[email protected]";
$email_subject = "Bestelling dagmaaltijd(en)";
    
    
function
failed($error) {
    // foutmelding kan hier komen
    echo "Het sturen van de mail is helaas mislukt:<br />";
    die();
}

$emailadres = $_POST['email'];
    $voorletters = $_POST['voorletters'];
    $tussenvoegsel = $_POST['tussenvoegsel'];
    $achternaam = $_POST['achternaam'];
    $adres = $_POST['adres'];
    $postcode = $_POST['postcode'];
    $telefoonnummer = $_POST['telefoonnummer'];
    $maandagMaaltijd = $_POST['MaandagMaaltijd'];
    $tijdMaandag = $_POST['TijdMaandag'];
    $dinsdagMaaltijd = $_POST['DinsdagMaaltijd'];
    $tijdDinsdag = $_POST['TijdDinsdag'];
    $woensdagMaaltijd = $_POST['WoensdagMaaltijd'];
    $tijdWoensdag = $_POST['TijdWoensdag'];
    $donderdagMaaltijd = $_POST['DonderdagMaaltijd'];
    $tijdDonderdag = $_POST['TijdDonderdag'];
    $vrijdagMaaltijd = $_POST['VrijdagMaaltijd'];
    $tijdVrijdag = $_POST['TijdVrijdag'];
  
    $email_message = "Bestellijst week 2 :\n\n";
    $email_message .= "email: ".clean_string($emailadres)."\n";
    $email_message .= "Voorletters: ".clean_string($voorletters)."\n";
    $email_message .= "Tussenvoegsel: ".clean_string($tussenvoegsel)."\n";
    $email_message .= "Achternaam: ".clean_string($achternaam)."\n";
    $email_message .= "Adres: ".clean_string($adres)."\n";
    $email_message .= "Postcode: ".clean_string($postcode)."\n";
    $email_message .= "Telefoonnummer: ".clean_string($telefoonnummer)."\n\n";
    $email_message .= "Maandag:\n";
    $email_message .= "Aantal: ".clean_string($maandagMaaltijd)."\n";
    $email_message .= "Tijd: ".clean_string($tijdMaandag)."\n\n";
    $email_message .= "Dinsdag:\n";
    $email_message .= "Aantal: ".clean_string($dinsdagMaaltijd)."\n";
    $email_message .= "Tijd: ".clean_string($tijdDinsdag)."\n\n";
    $email_message .= "Woensdag:\n";
    $email_message .= "Aantal: ".clean_string($woensdagMaaltijd)."\n";
    $email_message .= "Tijd: ".clean_string($tijdWoensdag)."\n\n";
    $email_message .= "Donderdag:\n";
    $email_message .= "Aantal: ".clean_string($donderdagMaaltijd)."\n";
    $email_message .= "Tijd: ".clean_string($tijdDonderdag)."\n\n";
    $email_message .= "Vrijdag:\n";
    $email_message .= "Aantal: ".clean_string($vrijdagMaaltijd)."\n";
    $email_message .= "Tijd: ".clean_string($tijdVrijdag)."\n";
      
    function
clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
      
      
// e-mail 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);  
?>


<p>Hartelijk dank voor uw bestelling! <br><br> U krijgt van ons altijd een bevestiging van uw bestelde dagmaaltijd(en).</p>

E-mailadres uit voorzorg verwijderd.[/modedit]
Gewijzigd op 04/01/2015 21:21:52 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

19/04/2024 02:14:44
 
Frank Nietbelangrijk

Frank Nietbelangrijk

04/01/2015 16:19:16
Quote Anchor link
Ik mis het formulier zelf. het mailformulier kun je het beste naar zichzelf laten posten en dan ga je valideren. Zolang er onjuistheden inzitten laat je het formulier telkens opnieuw tonen. (met foutmeldingen).
Pas wanneer alles goed is ga je de email versturen.

https://www.youtube.com/watch?v=g_r4a-DXA7c
http://www.phphulp.nl/php/forum/topic/php-script-voor-contactformulier/96617/1/
Gewijzigd op 04/01/2015 16:22:59 door Frank Nietbelangrijk
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 16:21:34
Quote Anchor link
Je zult eerst moeten kijken of een formulier verstuurd is via POST. Daarna kan je de validaties uitvoeren om te kijken de gewenste velden ingevuld zijn. Als deze goed zijn ingevuld, dan kan je de mail versturen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
    // trim() gebruiken we om spaties te strippen
    if( trim($_POST['voorletters'])=="" || trim($_POST['achternaam'])=="" || trim($_POST['email'])=="")  {
        echo "De voorletters, achternaam of e-mailadres is niet ingevuld. Controleer je invoer opnieuw.";
    }
else {
        // alles is goed ingevuld, de boel kan gemaild worden
    }

}

?>
Gewijzigd op 04/01/2015 16:22:17 door - Ariën -
 
Ron Deelen

Ron Deelen

04/01/2015 16:53:12
Quote Anchor link
Bedankt voor je reactie. Ik weet dat het formulier verstuurd wordt via "POST".
zie hier:
<FORM METHOD="post" ACTION="send_mail.php">
<!-- mailto:[email protected]?SUBJECT=Bestelling dagmaaltijd(en) wk 36 -->

Misschien een domme vraag maar moet ik nu alles wat je hebt geschreven copieren en plakken op regel 2 t/m 10
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 16:59:40
Quote Anchor link
Voor het gemak komen de functies vanaf lijn 7 en lijn 54 altijd bovenaan na de <?php-tag.

En voor de rest kan je de rest van de code op lijn 7 van mijn code-blokje plaatsen (zie gele commentaarlijn)
Gewijzigd op 04/01/2015 17:03:06 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

04/01/2015 17:01:25
Quote Anchor link
Beste Ron,

Lukraak kopiëren en plakken dat gaat niet werken. PHP is iets dat je moet leren. Ik denk (ik haal dat uit je vraagstelling) dat je op dit moment een keus moet maken: Zelf wat over PHP gaan leren of uitbesteden.

Voor een kleine beloning vind je zeker iemand op dit board die het voor je wil aanpassen..
 
Ron Deelen

Ron Deelen

04/01/2015 17:24:01
Quote Anchor link
Hallo Aar,

Backup gemaakt van huidige map want je weet maar nooit.
Laat het je weten of het werkt.

Ron

Toevoeging op 04/01/2015 18:49:13:

Hallo Aar

Heb het in het PHP bestand gezet en kom er achter dat de if functie wel werkt maar blijft het versturen.
De else functie doet het niet nadat ik alles hebt ingevuld. Zelfs niet nadat ik de // hebt weggehaald.

if($_SERVER['REQUEST_METHOD']=="POST") {
// trim() gebruiken we om spaties te strippen
if( trim($_POST['voorletters'])=="" || trim($_POST['achternaam'])=="" || trim($_POST['email'])=="") {
echo "De voorletters, achternaam of e-mailadres is niet ingevuld. Controleer je invoer opnieuw.";
} else {
// "Hartelijk dank voor uw bestelling!" "\n"
// "U krijgt van ons altijd een bevestiging van uw bestelde dagmaaltijd(en)."
}

}function failed($error) {
// foutmelding kan hier komen
echo "Het sturen van de mail is helaas mislukt:<br />";
die();
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 20:33:01
Quote Anchor link
Staat je formulier zelf in een apart bestand, die vervolgens naar je .php-file verwijst?

Wat zie je nu precies?
 
Ron Deelen

Ron Deelen

04/01/2015 21:26:02
Quote Anchor link
Mijn formulier staat idd apart die vervolgens weer naar de file send_mail.php verwijst.
Dit is wat ik krijg te zien als ik niets invul.
vervolg naar een blad en geeft de volgende tekst weer.

De voorletters, achternaam of e-mailadres is niet ingevuld. Controleer je invoer opnieuw.
Hartelijk dank voor uw bestelling!
U krijgt van ons .................

Hij ziet dus wel de if functie maar niet de else maar geeft wel weer de tekst aan na ?>

Dit is wat ik zie als ik alles invul.
vervolgd naar een nieuw blad maar is totaalblanco.

Leuke van dit alles is dat het wel bij mij in mail aan komt maar maar niet ingevuld

Hoop dat je het snapt wat ik heb geschreven.
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 21:29:02
Quote Anchor link
Heb je een voorbeeld die ik kan uittesten?
 
- SanThe -

- SanThe -

04/01/2015 21:29:10
Quote Anchor link
Er is niks te doen in de else.
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 21:37:57
Quote Anchor link
- SanThe - op 04/01/2015 21:29:10:
Er is niks te doen in de else.


Ron Deelen op 04/01/2015 17:24:01:
De else functie doet het niet nadat ik alles hebt ingevuld. Zelfs niet nadat ik de // hebt weggehaald.


Heb je die // al weggehaald dan?
 
Ron Deelen

Ron Deelen

04/01/2015 21:47:00
Quote Anchor link
Aar, ik weet niet precies wat je nodig hebt maar ik heb mijn map waar dit alles in staat op mijn pc staan.
Weet allen nog niet hoe ik dit op het forum moet krijgen.
Denk ook dat het waarschijnlijk te groot is.


Toevoeging op 04/01/2015 21:56:14:

Aar als je nu naar dit adres gaat kan je zie wat het doet.

http://www.degard.nl/dagmaaltijden/Bestellijst_w36.html

volgende blad is

http://www.degard.nl/dagmaaltijden//Bestellijst_w36_files/send_mail.php
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 22:03:14
Quote Anchor link
De code klopt niet, de if-statements moeten ergens niet goed gaan.
 
Ron Deelen

Ron Deelen

04/01/2015 22:10:36
Quote Anchor link
Dit is mijn gehele send_mail.php file.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
$email_to
= "[email protected]";
$email_from = "[email protected]";
$email_subject = "Bestelling dagmaaltijd(en) week 2";
    
    
if($_SERVER['REQUEST_METHOD']=="POST") {
    // trim() gebruiken we om spaties te strippen
    if( trim($_POST['voorletters'])=="" || trim($_POST['achternaam'])=="" || trim($_POST['email'])=="")  {
        echo "De voorletters, achternaam of e-mailadres is niet ingevuld. Controleer je invoer opnieuw.";
    }
else {
        // alles is goed ingevuld, de boel kan gemaild worden
    }

}

    $emailadres = $_POST['email'];
    $voorletters = $_POST['voorletters'];
    $tussenvoegsel = $_POST['tussenvoegsel'];
    $achternaam = $_POST['achternaam'];
    $adres = $_POST['adres'];
    $postcode = $_POST['postcode'];
    $telefoonnummer = $_POST['telefoonnummer'];
    $maandagMaaltijd = $_POST['MaandagMaaltijd'];
    $tijdMaandag = $_POST['TijdMaandag'];
    $dinsdagMaaltijd = $_POST['DinsdagMaaltijd'];
    $tijdDinsdag = $_POST['TijdDinsdag'];
    $woensdagMaaltijd = $_POST['WoensdagMaaltijd'];
    $tijdWoensdag = $_POST['TijdWoensdag'];
    $donderdagMaaltijd = $_POST['DonderdagMaaltijd'];
    $tijdDonderdag = $_POST['TijdDonderdag'];
    $vrijdagMaaltijd = $_POST['VrijdagMaaltijd'];
    $tijdVrijdag = $_POST['TijdVrijdag'];
  
    $email_message = "Bestellijst week 2 :\n\n";
    $email_message .= "email: ".clean_string($emailadres)."\n";
    $email_message .= "Voorletters: ".clean_string($voorletters)."\n";
    $email_message .= "Tussenvoegsel: ".clean_string($tussenvoegsel)."\n";
    $email_message .= "Achternaam: ".clean_string($achternaam)."\n";
    $email_message .= "Adres: ".clean_string($adres)."\n";
    $email_message .= "Postcode: ".clean_string($postcode)."\n";
    $email_message .= "Telefoonnummer: ".clean_string($telefoonnummer)."\n\n";
    $email_message .= "Maandag:\n";
    $email_message .= "Aantal: ".clean_string($maandagMaaltijd)."\n";
    $email_message .= "Tijd: ".clean_string($tijdMaandag)."\n\n";
    $email_message .= "Dinsdag:\n";
    $email_message .= "Aantal: ".clean_string($dinsdagMaaltijd)."\n";
    $email_message .= "Tijd: ".clean_string($tijdDinsdag)."\n\n";
    $email_message .= "Woensdag:\n";
    $email_message .= "Aantal: ".clean_string($woensdagMaaltijd)."\n";
    $email_message .= "Tijd: ".clean_string($tijdWoensdag)."\n\n";
    $email_message .= "Donderdag:\n";
    $email_message .= "Aantal: ".clean_string($donderdagMaaltijd)."\n";
    $email_message .= "Tijd: ".clean_string($tijdDonderdag)."\n\n";
    $email_message .= "Vrijdag:\n";
    $email_message .= "Aantal: ".clean_string($vrijdagMaaltijd)."\n";
    $email_message .= "Tijd: ".clean_string($tijdVrijdag)."\n";
      
    function
clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
      
      
// e-mail 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);  
?>


<p>Hartelijk dank voor uw bestelling! <br><br> U krijgt van ons altijd een bevestiging van uw bestelde dagmaaltijd(en).</p>

En was jij dit:

email: eertert
Voorletters: ert
Tussenvoegsel: ert
Achternaam: ertert
Adres:
Postcode:
Telefoonnummer:
 
- SanThe -

- SanThe -

04/01/2015 22:12:19
Quote Anchor link
- SanThe - op 04/01/2015 21:29:10:
Er is niks te doen in de else.
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 22:18:32
Quote Anchor link
Wat SanThe dus zegt.

Ook als je kijkt naar de statement op lijn 7 - 15 dan zie je dat daar alle uitgevoerd wordt als je formulier verstuurd is (via POST), echter daarna wordt de mail samengesteld en verzonden, dus dat klopt ook niet.

Je zult alle afhandeling op die plek van dat gele commentaar-regeltje moeten plaatsen.
Gewijzigd op 04/01/2015 22:19:01 door - Ariën -
 
Ron Deelen

Ron Deelen

04/01/2015 23:06:36
Quote Anchor link
Dus als ik het goed begrijp, (jib en janneke taal)
Je verstuurd eerst de mail en daarna gaat tie pas bedenken wat tie had moeten doen.

Wat betreft dat gele regeltje, ik bedgrijp dat er wat moet komen te staan maar wat, is voor mij nu een ????
Ga het ook niet proberen gezien de hele file werkt en ik niet kundig genoeg ben omdat te doen.
Dus bij deze wil ik je bedanken voor de genomen tijd en antwoorden.
Ik ga eerst geld sparen om mijn site te provesionaliseren maar tot die tijd doe ik maar met wat ik heb met zijn makkementjes.

met culinaire groeten,

Ron
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 23:10:00
Quote Anchor link
Het versturen van de mail hoort op de plek van de gele regel.

Niet rottig bedoeld, maar is het niet handig om eerst basis-ervaring in PHP op te doen, of om het voortaan te laten uitbesteden?

Je kan wel gokken en proberen, maar je zult toch echt moeten weten wat je allemaal doet. Je hebt bovendien mazzel dat er een simpele veiligheidscheck in zit, maar als je een fout script had gevonden had je de kans gekregen dat het misbruikt zou worden door spammers, met gevolgen dat je provider je site op zwart had kunnen zetten bijvoorbeeld.
Gewijzigd op 04/01/2015 23:19:53 door - Ariën -
 
Ron Deelen

Ron Deelen

04/01/2015 23:38:55
Quote Anchor link
Ben ik helemaal met je eens. Ik gok ook niet.
Ik ben redelijk goed in het programeren van een data base en vind het leuk om dingen te doen op het web.
Zie dus ook bepaalde functie die overeen komen. Helaas begrijp ik niet waarom er meerder programma's zijn en maar 1 web.
Dan moet je weer dit doen in html en dan dat in php of nog erger meerdere andere programma's. Je moet het allemaal maar snappen en begrijpen.
Laat staan als je iets gemaakt hebt in simpel html begrijp I.E. het weer niet moet je weer iets anders maken voor dat (domme) :)) programma.
Nee, mijn bedrijfje is op dit moment vele malen belangrijker dan het hele web.
Dus geen tijd voor een cursus waar ze veel geld voor vragen het is niet mijn priorritijd, verdien er ook mijn geld niet mee.

Soms moet je keuzes maken waar je je geld aan uit geeft en dat is op dit moment niet het web of cursus.
Ik zeg altijd "niet geschoten is altijd mis" vandaar dat ik op forum was.
 
Ozzie PHP

Ozzie PHP

04/01/2015 23:49:27
Quote Anchor link
>> Dan moet je weer dit doen in html en dan dat in php of nog erger meerdere andere programma's. Je moet het allemaal maar snappen en begrijpen.

Webdesign en programmeren is dan ook een vak, en niet iets wat je er zomaar even bij kunt doen. Voor je het weet liggen de gegevens die jij in je database hebt geplaatst op straat. Als er iets mis is met mijn auto, ga ik ook bewust naar een erkend garagebedrijf en niet zelf aan de slag. Veel mensen vergissen zich in de "zwaarte" van het maken van een website. Genoeg leden hier op het forum hebben reeds jarenlange ervaring en leren nog steeds dingen bij.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.