Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[php] Offerteformulier mailen naar zowel admin als aanvrager

Pagina: 1
Acties:

  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
Waarde lezers,

Ik heb een offerteformulier lopen op een website en zou graag hebben dat hij deze bij versturen behalve naar de admin ook naar degene stuurt die het formulier heeft ingevuld. Daarbij gaat het om het onderstaande stukje:


PHP:
1
2
3
4
5
public static function send_email() {

                $email = get_option('dvin_wcql_admin_email', 'req_email');
                $subject = get_option('dvin_wcql_email_subject');
                $message = get_option('dvin_wcql_email_msg');


'dvin_wcql_admin_email' is de admin email. 'req_email' is het emailadres dat de invuller van het formulier heeft ingevuld. Ik ben een PHP nubje en hoopte het tweede mailadres er simpel aan toe te kunnen voegen met een komma en een spatie, dit werkt helaas niet. Zijn er snelle tips? Lijkt me dat dit niet heel ingewikkeld is maar ik gewoon een sufferd ben.

B.v.d.
Ormagon

  • storeman
  • Registratie: April 2004
  • Laatst online: 22-11 12:00
Er mist nog wat code volgens mij. In dit voorbeeld haal je slechts een paar opties op.

Dmv een extra header kun je wel een extra to/cc/bcc adres toevoegen.

"Chaos kan niet uit de hand lopen"


  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
Ik heb alleen het stukje code aangehaald waar het email adres wordt gepakt. Het hele stuk dat over het zenden van de mail gaat:

PHP:
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
public static function send_email() {
        
                $email = get_option('dvin_wcql_admin_email', 'req_email');
                $subject = get_option('dvin_wcql_email_subject');
                $message = get_option('dvin_wcql_email_msg');
                
                $quote_list ='<table cellspacing="0" cellpadding="15"><tr><td>'.__('Afbeelding','dvinwcql').'</td><d>'.__('Product Name','dvinwcql').'</td><td>'.__('Quantity','dvinwcql').'</td><td>'.__('','dvinwcql').'</td><td>'.__('','dvinwcql').'</td></tr>';
                $row_str = '<tr><td align="left">%s</td><td align="left">%s</td><td align="left">%s</td><td align="left">%s</td><td align="left">%s</td></tr>';

                $qlist = array();
                if(isset($_SESSION['dvin_qlist_products'])) {
                    $qlist_count[0]['cnt'] = count($_SESSION['dvin_qlist_products']);
                    $qlist = $_SESSION['dvin_qlist_products'];
                }
                
                foreach($qlist as $values) {
                    
                    
                    //initialize to avoid notices
                    if(!isset($values['variation_id']))
                        $values['variation_id']=0; 

                    
                    if (isset($values['add-to-quotelist']) && is_numeric($values['add-to-quotelist'])) {
                    
                        $values['prod_id'] = $values['ID'] = $values['add-to-quotelist'];
                        $values['ID'] =  $values['add-to-quotelist'];
                    
                    }else{
                            $values['prod_id'] = $values['ID'] = $values['product_id'];
                            if(!empty($values['variation_id']))
                                $values['ID'] = $values['product_id'].'_'.$values['variation_id'];                      
                    }
                    
                    if ( version_compare( WOOCOMMERCE_VERSION, "2.0.0" ) >= 0 ) {
                         // WC 2.0
                        $product_obj = !empty($values['variation_id'])?get_product($values['variation_id'],array('parent_id'=>$values['product_id'])): get_product($values['prod_id']);
                    }else{
                        if(!empty($values['variation_id'])) {
                            $product_obj = new WC_Product_Variation($values['variation_id'],$values['product_id']);
                        }else{
                            $product_obj = new WC_product($values['prod_id']);
                        }
                    }
                    if ($product_obj->exists()) {
                        $image_str = $product_obj->get_image();

                    }
                    
                    $product_name_str = apply_filters('woocommerce_in_cartproduct_obj_title', $product_obj->get_sku(), $product_obj);
                    if(!empty($values['variation_id'])){
                        $product_name_str .= woocommerce_get_formatted_variation(unserialize($values['variation_data']),false);
                    }
                    
                    
                    $quantity = $values['quantity'];                        
            
                    $quote_list .= sprintf($row_str,$image_str,$product_name_str,$quantity,$unit_price_str,$total_price_str );
                    $overall_tot_price += $total_price;
                }
                            
                $quote_list .='</table>';
                $overall_tot_price_str = apply_filters('woocommerce_cart_item_price_html', woocommerce_price( $overall_tot_price));         
                
                $needle_arr = array('[%req_name%]','[%req_email%]','[%req_bedrijf%]','[%req_telefoon%]','[%quotelist%]','[%total_price%]','[%comments%]');
                $replace_with_arr = array(ucwords($_POST['req_name']),$_POST['req_email'],$_POST['req_bedrijf'],$_POST['req_telefoon'],$quote_list,$overall_tot_price_str,$_POST['req_details']);
                $subject = str_replace($needle_arr,$replace_with_arr,$subject);
                $message = str_replace($needle_arr,$replace_with_arr,$message);
                $message ='<html><body><style>table, th, td{border: 1px solid black;}</style>'.$message.'</body></html>';
                $headers  = 'MIME-Version: 1.0' . "\r\n";
                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                // Additional headers
                $headers .= 'To:'.$email . "\r\n";
                $headers .= 'From: '.$_POST['req_email']."\r\n";

                //send the email 
                return mail($email, $subject, nl2br($message),$headers);


Daar zou ik dus: $headers .= 'Cc: '.$_POST['req_email']."\r\n"; of iets dergelijks aan toe moeten voegen?

  • FotW
  • Registratie: Juli 2012
  • Laatst online: 24-10 13:17
PHP:
1
2
3
4
5
6
$email = array(
    get_option('dvin_wcql_admin_email'),
    get_option('req_email')
);

$email_to = implode(',', $email);


?

  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
FotW schreef op dinsdag 07 januari 2014 @ 13:41:
PHP:
1
2
3
4
5
6
$email = array(
    get_option('dvin_wcql_admin_email'),
    get_option('req_email')
)

$email_to = implode(',', $email);


?
Laat helaas mijn site crashen.

  • FotW
  • Registratie: Juli 2012
  • Laatst online: 24-10 13:17
ormagon schreef op dinsdag 07 januari 2014 @ 13:53:
[...]


Laat helaas mijn site crashen.
Heb mijn bericht geedit, ik zie dat ik een ; vergeten was na $email

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

ormagon schreef op dinsdag 07 januari 2014 @ 13:53:
[...]

Laat helaas mijn site crashen.
En dan kun je niet begrijpend lezen en zien dat die syntax error vereist dat je een ; op de juiste plek zet? Als je die syntaxfout in Google had gestopt had je ook antwoord gehad. ;)

Afgezien van dat: zelf met mail() gaan lopen klooien, zeker als je een "php nubje" bent is niet handig. Al je mails gaan in spamfolders eindigen.

Daarbij: Waar hoort mijn topic?
WEB >> PRG

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
FotW schreef op dinsdag 07 januari 2014 @ 13:56:
[...]


Heb mijn bericht geedit, ik zie dat ik een ; vergeten was na $email
Dat had ik zelf ook moeten zien, helaas helpt het niet, zorgt nog altijd voor een crash.

  • FotW
  • Registratie: Juli 2012
  • Laatst online: 24-10 13:17
Helaas, mijn glazen bol houd het voor gezien...

Welke foutmelding krijg je uberhaupt? Wat zie je als je een echo van 'req_email doet', zit er wel een waarde in?

  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
FotW schreef op dinsdag 07 januari 2014 @ 14:08:
Helaas, mijn glazen bol houd het voor gezien...

Welke foutmelding krijg je uberhaupt? Wat zie je als je een echo van 'req_email doet', zit er wel een waarde in?
Geen directe foutmelding, de site kapt er gewoon in zijn geheel mee. In ieder geval bedankt voor het meedenken. Heb al aardig wat 'per ongeluk' voor elkaar gekregen maar deze lukt even niet.

Kan ik niet iets voor elkaar krijgen met een Cc header?
$headers .= 'Cc: '.$ccemail;

En hier dan de req_email in verwerken?

[ Voor 12% gewijzigd door ormagon op 07-01-2014 14:16 ]


  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 18-11 15:23
Probeer het eens uit en kijk wat er gebeurt :)

Overigens heeft WordPress de functie wp_mail die je kunt gebruiken ipv de standaard PHP-functie mail.

Full-stack webdeveloper in Groningen


  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
Gelukt met de volgende header:
$headers .= 'Cc: '.$_POST['req_email']."\r\n";

Dan heb ik nog één vraag, ik merk dat het formulier momenteel erg gevoelig is voor het spamfilter. Is hier wat aan te doen?

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Je website kan er nooit zomaar "in zijn geheel" mee kappen. Er is ergens een error-log waarin meldingen worden weggeschreven, ook al blijft je browser leeg. Ga daar ook eens in kijken.

Daarnaast is het, zoals eerder ook gezegd, wellicht handiger een standaard mail pakket te gebruiken, in plaats van zelf de mail() functie aan te roepen.

En als je mail in "het spamfilter" terecht komt, dan moet je uitzoeken waarom. Wij kunnen dat niet ruiken. Willekeurige gok: je kan de Sender-header toevoegen.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik zou dit script maar zo snel mogelijk schrappen. Je hebt blijkbaar geen idee wat het precies doet, en bent nu maar een beetje aan het hobby'en om het naar jouw idee werkend te krijgen.

In de werkelijkheid heb je nu een script waar door de gebruiker gewoon headers geinjecteerd kunnen worden, en dus enorm vatbaar voor spamruns e.d.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

ormagon schreef op dinsdag 07 januari 2014 @ 15:05:
Gelukt met de volgende header:
$headers .= 'Cc: '.$_POST['req_email']."\r\n";

Dan heb ik nog één vraag, ik merk dat het formulier momenteel erg gevoelig is voor het spamfilter. Is hier wat aan te doen?
Heb je mijn vorige post gelezen? ;) Niet zelf rommelen met de mailfunctie en iets als PHPMailer gebruiken.

Daarbij sta je hiermee wagenwijd open voor header-injectie trouwens, en dan ben je binnen de kortste keren een relay voor het versturen van spam.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Xantios
  • Registratie: Maart 2006
  • Laatst online: 22-11 17:19
Woy schreef op dinsdag 07 januari 2014 @ 15:10:
Ik zou dit script maar zo snel mogelijk schrappen. Je hebt blijkbaar geen idee wat het precies doet, en bent nu maar een beetje aan het hobby'en om het naar jouw idee werkend te krijgen.

In de werkelijkheid heb je nu een script waar door de gebruiker gewoon headers geinjecteerd kunnen worden, en dus enorm vatbaar voor spamruns e.d.
Precies dit :-)
Huur ergens een scripter in, of gebruik een kant-en-klaar dingetje dat al doet wat je wilt.

Of post even de URL van je site, en kijk wat d'r gebeurt met je mailbox :+

  • FotW
  • Registratie: Juli 2012
  • Laatst online: 24-10 13:17
Overigens zeg je in de OP dat je 'req_email' ophaalt met get_option en vervolgens blijkt het een POST te zijn. Wat de rest al gezegd heeft; stop met waar je mee bezig bent en gebruik gewoon een plugin.

  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
Dit is een plugin, waarin ik enkel zelf graag de CC functie wil toevoegen, verder heb ik niet aan deze code gezeten. Die req_email ophalen met get_option was een eerste poging.

Daarbij poog ik het te leren, dan helpt het niet om mensen in te huren.

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Zit de regel "$headers .= 'From: '.$_POST['req_email']."\r\n";" echt letterlijk zo in een standaard plugin?

[ Voor 4% gewijzigd door HuHu op 07-01-2014 15:31 ]


  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
HuHu schreef op dinsdag 07 januari 2014 @ 15:31:
Zit de regel "$headers .= 'From: '.$_POST['req_email']."\r\n";" echt letterlijk zo in een standaard plugin?
Jazeker. De bovenstaande code is los van de req_email in de get_option helemaal standaard.

  • Miyamoto
  • Registratie: Februari 2009
  • Laatst online: 20-11 21:15
Als je iets wilt leren, moet je bij het begin beginnen.
Als je geen idee hebt wat het verschil tussen een haakje, puntkomma of dollarteken is (in PHP), dan ben je nog lang niet toe aan het mailen.

Edit: Waar HuHu impliciet op doelt: Pleur die plugin eraf. Dat ding deugt niet. Zie ook de reactie(s) van NMe (en anderen).

[ Voor 24% gewijzigd door Miyamoto op 07-01-2014 15:32 ]


  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
Miyamoto schreef op dinsdag 07 januari 2014 @ 15:32:
Als je iets wilt leren, moet je bij het begin beginnen.
Als je geen idee hebt wat het verschil tussen een haakje, puntkomma of dollarteken is (in PHP), dan ben je nog lang niet toe aan het mailen.
Dat doe ik ook, maar dit is toevallig iets wat langskwam wat ik graag zo zou willen hebben. Nu leek het me niet bizar ingewikkeld aangezien de rest van de code al staat, dus ik dacht ik vraag even of iemand me hier toevallig mee kan helpen/of ik het zelf kan uitvogelen.

Zonde als je voor enkel een CC toevoegen mensen moet gaan inhuren en dergelijke. Maar het ontmoedigen lukt aardig heren.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
ormagon schreef op dinsdag 07 januari 2014 @ 15:34:
[...]
Zonde als je voor enkel een CC toevoegen mensen moet gaan inhuren en dergelijke. Maar het ontmoedigen lukt aardig heren.
Voor het toevoegen van een CC op zich niet, maar de basis die je gebruikt hebt ziet er al niet echt solide uit. Laat je vooral niet ontmoedigen, maar het versturen van mail is nou eenmaal nogal een gevoelig en vaak misbruikt onderdeel van sites. Zeker als je gebruik maakt van standaard onderdelen, want daar word gewoon op gescand door spammers.

Het is op zich natuurlijk een leuke oefening om dit stuk code om te schrijven om gebruik te maken van PHPMailer o.i.d.

Waar je vooral rekening mee moet houden is dat je user input niet zondermeer moet vertrouwen, en vooral niet 1 op 1 in je headers in moet voegen.

[ Voor 18% gewijzigd door Woy op 07-01-2014 15:37 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • HuHu
  • Registratie: Maart 2005
  • Niet online
ormagon schreef op dinsdag 07 januari 2014 @ 15:32:
[...]


Jazeker. De bovenstaande code is los van de req_email in de get_option helemaal standaard.
Ik durf het bijna niet te geloven. In de, bijna volledig Engelstalige, code zitten hier-en-daar een aantal Nederlandse woorden (Afbeelding, bedrijf, telefoon). Dat lijkt me zéér onwaarschijnlijk. Helemaal omdat ik de term WOOCOMMERCE_VERSION voorbij zie komen en WooCommerce is helemaal Engelstalig.

Ook kan ik de door jou aangehaalde functie niet vinden in de meest recente versie van WooCommerce. Ik zou proberen te upgraden en dan ook kijken of de door jou gewenste functionaliteit inmiddels aanwezig is.

[ Voor 8% gewijzigd door HuHu op 07-01-2014 15:41 ]


  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
Ah, pardon, req_bedrijf en req_telefoon zijn inderdaad toegevoegd. Dat zijn extra velden in het bestaande formulier waarbij ik gewoon de code van al bestaande velden heb gekopieerd en enkel een nieuwe naam heb gegeven.

Verder zal die functie wel in een ander bestand zitten, de plugin bestaat uit c.a. 25 bestanden. Verder bestaat de functie die ik zoek ook niet in de meest recente versie van Woocommerce. Het gaat om een apart 'winkelmandje' die je kan gebruiken als offertesysteem, naast het gewone winkelmandje of in de plaats ervan.

Momenteel gaat het op de site om een catalogus, die in de toekomst waarschijnlijk nog een webshop moet worden. Dus leek het me handig om niet gewoon Woocommerce teksten aan te passen (waarmee je in theorie ook gewoon een offertesysteem kan maken natuurlijk), maar een aparte plugin zodat straks webshop en offerte naast elkaar zouden kunnen draaien.

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 21-11 15:31

TheNephilim

Wtfuzzle

Je bent nu aanpassingen aan het doen in WooCommerce dus? Daar zou ik snel mee stoppen. Een enkele update is genoeg om al je aanpassingen te wissen.

Liever een plugin voor je probleem zoeken, of eventueel een aanpassing in de functions.php van je thema doen (als je die zelf gemaakt hebt).

  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
Nee nee, ik heb in mijn child theme een apart woocommerce language file met wat eigen vertalingen erin.

  • FotW
  • Registratie: Juli 2012
  • Laatst online: 24-10 13:17
ormagon schreef op dinsdag 07 januari 2014 @ 16:20:
Nee nee, ik heb in mijn child theme een apart woocommerce language file met wat eigen vertalingen erin.
Dit ziet er anders niet uit als een language file?

  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
FotW schreef op dinsdag 07 januari 2014 @ 16:23:
[...]


Dit ziet er anders niet uit als een language file?
Wacht even, er gaan nu dingen door elkaar lopen. Ik had het net over tekstaanpassingen in Woocommerce. Dat soort dingen doe ik gewoon in een languagefile die ik in mijn child theme stop. Verdere aanpassingen plaats ik in de functions.php. Ik snap hoe Wordpress werkt, wat ik in principe wel en niet moet doen. Verder is ook mijn HTML en CSS kennis netjes op orde.

Deze vraag gaat over een plugin die ik heb, waar ik graag een CC aan de mail toe zou willen voegen. Mijn PHP staat echt nog in de kinderschoenen maar hoopte er met wat hulp uit te komen. Dat is gelukt maar nu blijkt dat de code in die plugin niet bijster sterk is. Dat geloof ik meteen, maar laten we even bij de vraag blijven en er niet vanuit gaan dat ik zomaar in de core files van wordpress en woocommerce ga lopen pielen.

  • FotW
  • Registratie: Juli 2012
  • Laatst online: 24-10 13:17
OK, dat is wel de indruk die je wekte. Ik wil graag bij de vraag blijven, maar op het moment is het voor mij (en anderen?) niet helder waar je de wijzigingen nu precies aan het doen bent.
Heb je de code die in de OP staat in de woocommerce plugin aangepast of in je functions.php?

Je geeft aan dat de offerte functionaliteit niet in de nieuwe versie van woocommerce zit, het lijkt mij toch echt verstandiger om woocommerce gewoon bij te werken naar de laatste versie en je offerte stuk te vervangen door een contact form plugin. Althans als ik je verhaal begrijp zou dat moeten voldoen aan de functionaliteit die je wil.

Zeker als je een webshop wil gaan draaien lijkt het mij verstandig als je je plugins up to date houd.

  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
Een contactformulier is niet afdoende, want deze plugin combineert een contactformulier met een winkelmandje dat functioneert naast het winkelmandje van Woocommerce zelf (http://codecanyon.net/ite...e-request-a-quote/6460218), je kan dus andere producten in je offertemandje stoppen dan in je winkelmandje. De plugin is nog maar enkele keren verkocht en ik kende de ontwikkelaar niet, dus het was ook een gokje.

Verder draait het nu op de voorlaatste versie, dat heeft ermee te maken dat de site nog niet naar Wordpress 3.8 is geupdatetet omdat verscheidene plugins er nog niet klaar voor zijn. Ik wacht dus eerst even tot alles en iedereen er klaar voor is voordat ik het allemaal update.

[ Voor 55% gewijzigd door ormagon op 07-01-2014 17:05 ]


  • FotW
  • Registratie: Juli 2012
  • Laatst online: 24-10 13:17
Aha, het is dus een gekochte plugin die gewoon slecht in elkaar zit.

  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
FotW schreef op dinsdag 07 januari 2014 @ 17:09:
Aha, het is dus een gekochte plugin die gewoon slecht in elkaar zit.
Dat lijkt inderdaad de conclusie te zijn. Nu heb ik zelf twee velden aan het formulier toegevoegd en dus een CC. Maar dat schijnt dus niet echt zinnig te zijn omdat het formulier crack is? In ieder geval bedankt voor het meedenken :). Mijn lichte irritatie kwam even van het feit dat iedereen ervan uit leek te gaan dat ik soort van met mijn ogen dicht op het toetsenbord ram in de hoop dat er wat goeds gebeurt :p. Terwijl ik de basis van het opzetten van een wordpress site inc html/css echt wel snap, PHP ben ik echter net een paar weken mee bezig.

[ Voor 33% gewijzigd door ormagon op 07-01-2014 17:14 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Ik zou in elk geval deze plugin niet meer gebruiken als hij echt standaard al header-injectie faciliteert. Of hem om laten schrijven door iemand met wat meer ervaring om zo PHPMailer te gebruiken. Of zelf het zaakje ombouwen naar PHPMailer, aangezien je daar redelijk wat dingen "fout" mag doen zonder dat het consequenties heeft. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Firesphere
  • Registratie: September 2010
  • Laatst online: 20-11 22:34

Firesphere

Yoshis before Hoshis

ormagon schreef op dinsdag 07 januari 2014 @ 17:12:
[...]

Dat lijkt inderdaad de conclusie te zijn. Nu heb ik zelf twee velden aan het formulier toegevoegd en dus een CC. Maar dat schijnt dus niet echt zinnig te zijn omdat het formulier crack is? In ieder geval bedankt voor het meedenken :). Mijn lichte irritatie kwam even van het feit dat iedereen ervan uit leek te gaan dat ik soort van met mijn ogen dicht op het toetsenbord ram in de hoop dat er wat goeds gebeurt :p. Terwijl ik de basis van het opzetten van een wordpress site inc html/css echt wel snap, PHP ben ik echter net een paar weken mee bezig.
Ik zie het veel bij Wordpress sites. Brakke plugins. Wordpress is zo populair geworden, dat de plugins door iedere scriptkiddy in elkaar kunnen worden geflanst, zonder enige kennis van inputsanitation etc.

Een betaalde plugin is helemaal niet altijd beter. Een snelle google-zoekopdracht (ik ben totaal niet thuis in Wordpress trouwens), levert me deze plugin op:
http://wordpress.org/plugins/si-contact-form/

Die ziet er betrouwbaarder uit en lijkt me veel meer doorontwikkeld en getest.
Hoewel ik niet weet of het ook echt beter is trouwens, en of het goed samenwerkt met WooComm.

I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


  • Merethil
  • Registratie: December 2008
  • Laatst online: 08:50
Firesphere schreef op dinsdag 07 januari 2014 @ 18:32:
[...]

Ik zie het veel bij Wordpress sites. Brakke plugins. Wordpress is zo populair geworden, dat de plugins door iedere scriptkiddy in elkaar kunnen worden geflanst, zonder enige kennis van inputsanitation etc.

Een betaalde plugin is helemaal niet altijd beter. Een snelle google-zoekopdracht (ik ben totaal niet thuis in Wordpress trouwens), levert me deze plugin op:
http://wordpress.org/plugins/si-contact-form/

Die ziet er betrouwbaarder uit en lijkt me veel meer doorontwikkeld en getest.
Hoewel ik niet weet of het ook echt beter is trouwens, en of het goed samenwerkt met WooComm.
Volgens mij is het aparte "offertemandje" ook onderdeel van de contactform en bijbehorend mailobjectding. Maar dat kan ik mishebben.

Hoe dan ook: Het is beter om in ieder geval die mailer te vervangen, als de rest werkt kan je 't best zo blijven houden, maar mailen is iets wat secuur en goed moet gebeuren en dat lijkt dit niet te zijn.

  • HuHu
  • Registratie: Maart 2005
  • Niet online
NMe schreef op dinsdag 07 januari 2014 @ 17:23:
Ik zou in elk geval deze plugin niet meer gebruiken als hij echt standaard al header-injectie faciliteert. Of hem om laten schrijven door iemand met wat meer ervaring om zo PHPMailer te gebruiken. Of zelf het zaakje ombouwen naar PHPMailer, aangezien je daar redelijk wat dingen "fout" mag doen zonder dat het consequenties heeft. :P
Er zit ook een, op het eerste gezicht, prima mailfunctionaliteit in WooCommerce zelf (http://plugins.svn.wordpr...asses/class-wc-emails.php). Het lijkt me dan handiger dat TS hiermee de mails verstuurt.

  • ormagon
  • Registratie: Februari 2005
  • Laatst online: 11-11 10:25

ormagon

Definitely Maybe

Topicstarter
HuHu schreef op dinsdag 07 januari 2014 @ 20:17:
[...]

Er zit ook een, op het eerste gezicht, prima mailfunctionaliteit in WooCommerce zelf (http://plugins.svn.wordpr...asses/class-wc-emails.php). Het lijkt me dan handiger dat TS hiermee de mails verstuurt.
Maar hoe ik dat dan weer aan een extra winkelmandje koppel is me een raadsel ;).

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Uiteindelijk zit het grootste probleem in de laatste regel van je initiële voorbeeld
PHP:
1
return mail($email, $subject, nl2br($message),$headers);

Maar eigenlijk wil je alles dat uit de $_POST of $_GET gehaald word eerst even sanitizen.

Maar als je eerst begint met die laatste regel te vervangen door een versie die gebruikt maakt van een mail class die meer checks doet heb je al een flink stuk gewonnen. Let daarbij vooral op dat er niet zomaar gegevens die van de client komen in de headers gebruikt worden.

[ Voor 14% gewijzigd door Woy op 08-01-2014 10:34 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Firesphere
  • Registratie: September 2010
  • Laatst online: 20-11 22:34

Firesphere

Yoshis before Hoshis

PHP:
1
filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);

Is sowieso de eerste stap lijkt me?

I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


  • FotW
  • Registratie: Juli 2012
  • Laatst online: 24-10 13:17

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Firesphere schreef op woensdag 08 januari 2014 @ 10:41:
PHP:
1
filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);

Is sowieso de eerste stap lijkt me?
Klopt, maar dat lost zijn probleem met spam-filters natuurlijk niet op.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

HuHu schreef op dinsdag 07 januari 2014 @ 20:17:
[...]

Er zit ook een, op het eerste gezicht, prima mailfunctionaliteit in WooCommerce zelf (http://plugins.svn.wordpr...asses/class-wc-emails.php). Het lijkt me dan handiger dat TS hiermee de mails verstuurt.
Als die vrij beschikbaar is vanuit plugins lijkt dat me inderdaad een prima oplossing. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1