Re[2]: [PHP] Program that'll parse HTML form with results and send HTML email?

2004-04-20 Thread Tom Rogers
Hi,

Tuesday, April 20, 2004, 11:29:41 PM, you wrote:
JWH From: Tom Rogers [EMAIL PROTECTED]
 JWH Does anyone know of a script that'll receive the results of a form,
 JWH parse the original form and substitute the user supplied data in for
JWH the
 JWH form elements and then send an HTML email of the form?

 Here is a class I use with my template system but it is easy to modify
 it.

JWH Thanks for the tip. This requires you know what the elements of the form
JWH are, though. Like I said, if you know what's in the form, this whole process
JWH is pretty trivial.

JWH I want to take an unknown form, receive the data, then redisplay the form
JWH with the form elements gone and the values submitted replacing them. My
JWH personal needs incorporate sending this in an email, but that's the easy
JWH part.

JWH input, select and textarea elements will be easy, I think. You can
JWH just replace the whole element with a post variable matching it's name.

JWH $page = preg_replace('/input type=text
name=([^]+)[^]+/ie','$_POST[\'\1\']',$page);

JWH The checkboxes and radio buttons would be a little harder.

JWH input type=checkbox name=foo value=1
JWH input type=checkbox name=foo value=2

JWH I'm thinking this will take two passes. First match the names of each
JWH checkbox or radio button. Once I have the $name, I can say

JWH $_POST[$name][$_POST[$name]] = $_POST[$name];

JWH resulting in

JWH $_POST['foo']['1'] = 1

JWH if the first checkbox was selected.

JWH Then, do a replace

JWH $page = preg_replace('/input type=checkbox name=([^]+)
value=([^]+)[^]+/ie','$_POST[\'\1\'][\'\2\']',$page);

JWH Accounting for arrays would require something else and I'd obviously have to
JWH account for extra attributes within the form elements. Anybody thing of
JWH something that's more efficient? I'm still just brainstorming here. :)

JWH ---John Holmes...


It does not need to know the form elements, only the reserved words it
uses and you take those out and pass them directly to the class if
needed. It takes the variable name from the POST array and uses it with
the value. No need to know what the input fields are called or even
what type - checkboxes and radio groups work fine.

-- 
regards,
Tom

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: Re[2]: [PHP] Program that'll parse HTML form with results and send HTML email?

2004-04-20 Thread John W. Holmes
From: Tom Rogers [EMAIL PROTECTED]

 It does not need to know the form elements, only the reserved words it
 uses and you take those out and pass them directly to the class if
 needed. It takes the variable name from the POST array and uses it with
 the value. No need to know what the input fields are called or even
 what type - checkboxes and radio groups work fine.

Okay, I see what you mean.

default:  //not a keyword
$k = ereg_replace(_, ,$k);  //get rid of _ and replace with a space
if($v == BR){  //if BR add a carriage return,used for making blank line
  $this-vars['blocks']['submit'][$x]['ifs']['break'] = 'nbsp;';
  $this-text .= \n;
}else{
  $this-vars['blocks']['submit'][$x]['vars']['name'] = $k;
  $this-vars['blocks']['submit'][$x]['vars']['value'] = $v;
  $this-text .= $k : $v\n;  //add the variable name and value to email
 }

I see what you're doing here, but it doesn't fit what I'm looking for
exactly. You just create a Key : Value list to include in the email. I want
the email to look exactly like the form, only substitute in the values
submitted by the user.

---John Holmes...

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php