| | |
Rather complicated PHP project for novice
Please support our PHP advertiser: PostgreSQL or MySQL? Compare and contrast the two most popular open source databases
![]() |
•
•
Join Date: Aug 2008
Posts: 17
Reputation:
Solved Threads: 0
I am building a confidentiality form which I would like to submit to a printable page and to two or three email addresses (one being the email address of the person who filled the form out). This means that the language that is above the form needs to be printed out as well. I would also like to put the names into a database so that each time the person logs in that they are not greeted by this form.
Can someone help me or at least direct me to what I should be looking for?
Thanks in advance!
Can someone help me or at least direct me to what I should be looking for?
Thanks in advance!
Last edited by bettina702; Sep 7th, 2008 at 2:57 pm.
•
•
Join Date: Aug 2008
Posts: 381
Reputation:
Solved Threads: 33
Great,
Create a database table for users with a field for if they've gone through the confidentiality page.
http://dev.mysql.com/doc/
Use sessions and or cookies so logged in users can skip the page.
http://us2.php.net/manual/en/book.session.php
And use PHP mail function to send your email.
http://us2.php.net/function.mail
If you have specific questions I will try and help with them.
Cheers
Create a database table for users with a field for if they've gone through the confidentiality page.
http://dev.mysql.com/doc/
Use sessions and or cookies so logged in users can skip the page.
http://us2.php.net/manual/en/book.session.php
And use PHP mail function to send your email.
http://us2.php.net/function.mail
If you have specific questions I will try and help with them.
Cheers
Google is the answer to all of your questions -- the trick is knowing what question to ask in your specific predicament.
•
•
Join Date: Aug 2008
Posts: 17
Reputation:
Solved Threads: 0
Hi Langsor,
Thanks so much for helping me. I took a look at this link and it is great information. But I guess my main question is that I would like to know if I can send an email to the address that is filled out in the form. I have been searching and searching for info on this for a few days now, but so far I have gotten no where. I understand that there is a way to authenticate an e-mail address that is filled into a form, but I still have not found any code which puts the e-mail address into my code so that I can send that person a copy of the form.
Is there a way I can do that? Or do I have to figure out a different way to get the form to the client?
Thanks so much for helping me. I took a look at this link and it is great information. But I guess my main question is that I would like to know if I can send an email to the address that is filled out in the form. I have been searching and searching for info on this for a few days now, but so far I have gotten no where. I understand that there is a way to authenticate an e-mail address that is filled into a form, but I still have not found any code which puts the e-mail address into my code so that I can send that person a copy of the form.
Is there a way I can do that? Or do I have to figure out a different way to get the form to the client?
•
•
Join Date: Aug 2008
Posts: 381
Reputation:
Solved Threads: 33
Hi,
Getting the email address to the mail function is pretty easy if the user enters their email with the form information.
main_form.html
form_script.php
In the above example I did NOT test it and I suspect there are some errors in the way I set up the Bcc and mail( "$recipient1,$recipient2,$recipient3", ... lines, since I don't know if putting all addresses in the mail( "..." portion will hide the addresses in the Bcc portion ??? So you will want to test all this thoroughly.
Otherwise, I hope this gives you an idea of one way you might handle the form and email for your project -- there are, of course, always more than one way to skin a goose ;-)
Cheers
Getting the email address to the mail function is pretty easy if the user enters their email with the form information.
main_form.html
html Syntax (Toggle Plain Text)
<form action="form_script.php" method="POST"> <label>Name: <input type="text" name="name" /></label> <label>Email: <input type="text" name="email" /></label> <label>... some other form values ...</label> <input type="submit" value="Submit This Form" /> </form>
form_script.php
php Syntax (Toggle Plain Text)
<?php // handle the form values here, database insertion, etc // ... // handle the form email here ... $name = $_POST['name']; $email = $_POST['email']; // validate email address with PHP here ... // here you will need to glue together the many form values into // some email-able summary for the client and your other recipients $form = <<<ENDFORM This is my summary of the form with submitted values from the form embedded into it. Post name: {$_POST['name']} Post email: {$_POST['email']} This is some more stuff, you can stick these anywhere {$_POST['whatever']} you like ... ENDFORM; $recipient1 = "$name <$email>" // client copy $recipient2 = "Admin <admin@my_domain.com>"; $recipient3 = "Me <me@my_domain.com>"; $subject = "The cool form you just filled out"; $headers = "To: $recipient1"."\r\n"; // send Addressed-To copy to client $headers .= "From: $recipient2"."\r\n"; //$headers .= "Cc: Carbon-Copy <copied@some_site.com>"."\r\n"; $headers .= "Bcc: $recipient2, $recipient3"."\r\n"; // send Hidden copy to self and ??? $headers .= "Reply-To: $recipient2"."\r\n"; $headers .= "X-Mailer: PHP-Mailer"; mail( "$recipient1,$recipient2,$recipient3", $subject, $form, $headers ); ?>
Otherwise, I hope this gives you an idea of one way you might handle the form and email for your project -- there are, of course, always more than one way to skin a goose ;-)
Cheers
Google is the answer to all of your questions -- the trick is knowing what question to ask in your specific predicament.
•
•
Join Date: Aug 2008
Posts: 381
Reputation:
Solved Threads: 33
•
•
•
•
Hi Langsor,
Your example has worked wonderfully. Now, would you be able to help me make a few fields required? I have tried several different ways, all with varying issues in them that did not make them work the right way.
Thanks very much!
The fun thing about making fields required is that you probably want to check them on the client (web browser) before submitting the form -- it's easier for the visitor to change fields before it's submitted -- and this requires JavaScript; but you also want to check them on the server (PHP side) since you can't rely on JavaScript since it can be disabled or circumvented too easily. But then again, most people don't do this.
In JavaScript you walk through the form fields and test the ones that are required. If they don't pass the test, you alert the visitor in some manner.
In PHP you do the same thing, and then re-publish the form with the failed fields highlighted in some manner, while keeping the other fields filled in from the first submission.
There are, of course, multiple ways to accomplish all of the above tasks. Here is one simplified way you might do this with both JavaScript and PHP ... it could be built up to be more comprehensive and use better checking tests, but as an example ...
php Syntax (Toggle Plain Text)
<?php if ( $_REQUEST['submit'] ) { // don't test just on page load, form was submitted $required = array( 'name','email' ); // required fields array $errors = array(); // error output array foreach ( $required as $field ) { // test for all required fields if ( !$_REQUEST[$field] ) { // if not found // I'm skipping the lame email test here ... it's not worth not doing it right and I don't have time $errors[] = strtoupper( $field ); // push to output } } if ( count( $errors ) ) { // if errors ... $warning = '<br /><strong>There was an error with the form submission.</strong><br />Please complete these fields: '; $warning .= implode( ', ', $errors ); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <style type="text/css"> .warn { color: red; font-size: 12px; font-family: Arial; } </style> <script type="text/javascript"> window.onload = function () { // load the window before looking for form var errors = []; // creaate an array for non-valid fields var output = document.getElementById('output').firstChild; // grab feedback element var form = document.getElementsByTagName('form').item(0); // good if only one form on page form.onsubmit = function () { // form submit => do this stuff for ( var i = 0; i < form.length; i ++ ) { // walk through all form elements var element = form.elements[i]; // create reference to current element if ( element.getAttribute('required') ) { // test if required element if ( element.name == 'email' ) { // do extra testing on email element if ( !/@/.test( element.value ) ) { // pathetic email validation -- just an example errors.push( element.name.toUpperCase() ); // push the bad field to errors array } } else { if ( !element.value ) { // test other fields, this is a simplified method for text fields errors.push( element.name.toUpperCase() ); } } } } if ( errors.length ) { // if errors ... output.nodeValue = 'Please fill out the following fields: ' + errors.join(', '); errors = []; // reset errors for next submission attempt return false; // do not submit the form yet } else { output.nodeValue = 'Fields marked with (*) are required'; } }; }; </script> </head> <body> <form method="POST"> <table> <tr> <td id="output" class="warn" colspan="2">Fields marked with (*) are required<?php print $warning ?></td> </tr> <tr> <td><label for="name">Name <strong class="warn">*</strong></label></td> <td><input type="text" required="required" id="name" name="name" value="<?php print $_REQUEST['name'] ?>" /></td> </tr> <tr> <td><label for="email">Email <strong class="warn">*</strong></label></td> <td><input type="text" required="required" id="email" name="email" value="<?php print $_REQUEST['email'] ?>" /></td> </tr> <tr> <td><label for="pizza">Pizza</label></td> <td><input type="text" required="" id="pizza" name="pizza" value="<?php print $_REQUEST['pizza'] ?>" /></td> </tr> <tr> <td></td> <td><input type="submit" name="submit" /></td> </tr> </table> </form> </body> </html>
Due to the line-wraps it's difficult to understand this example ... I would copy the plain-text (Toggle Plain Text link above) and paste the above code into a code-editor with line numbers and syntax highlighting ...
Hope it helps :-)
...
Google is the answer to all of your questions -- the trick is knowing what question to ask in your specific predicament.
![]() |
Other Threads in the PHP Forum
- Previous Thread: display the data into listbox
- Next Thread: How to display part of text from msql
| Thread Tools | Search this Thread |
.htaccess alerts apache api archive array autocomplete beginner binary broken cakephp checkbox class cms code convert cron curl database dataentry date display duplicates dynamic echo email emptydisplayvalue error execute explodefunction file files firstoptioninphpdroplist folder form forms function functions google hack href htaccess html htmlspecialchars image include insert ip javasciptvalidation javascript joomla keywords limit link login mail matching menu methods mlm multiple mysql network object oop paypal pdf php problem query radio random recursion recursive redirect remote script search securephp server sessions shot sms source space sql subscription syntax system table tutorial tutorials update upload url validator variable video web youtube





