|
Posted by Jerry Stuckle on 02/01/08 22:34
Animesh K wrote:
> Jerry Stuckle wrote:
>> Jezza wrote:
>>> Hi
>>>
>>> I wonder if anyone can help me out. I am a newby and have bought
>>> "PHP5 in easy steps" to work through. One project is to have an email
>>> form and responder built into one page. The form simply asks for a
>>> username, email address and comment. It validates to make sure all
>>> fields are filled in, checks the integrity of the email address and
>>> then posts it off.
>>>
>>> I have copied the code from the book exactly & even checked &
>>> re-checked the code. Desperately I even scanned the code in via OCR
>>> in case I missed something. When I run the php script the resulting
>>> web page is blank. Looking at the HTML page source, that is also
>>> blank (no <html>, <body> etc. tags). I suspect the code to be sound
>>> and that this problem is more to do with something within the php.ini
>>> file.
>>>
>>> I do have PHP files that run fine
>>>
>>> I am running Apache 2.2 server with PHP version 4.3.2 & here is the
>>> code:
>>>
>>>
>>> <html><head><title>Combined Feedback Form</title></head>
>>> <body> <?php #assign form values when applicable
>>>
>>>
>>>
>>> $username = $_POST['username'];
>>> $useraddr = $_POST['useraddr'];
>>> $comments = $_POST['comments'];
>>> $sent = $_POST['sent'];
>>>
>>>
>>> #the HTML form that can be written dynamically
>>>
>>> $form ="<form action=\"$_SERVER[`PHP_SELF`]\" method=\"post\">";
>>> $form.="Name:<input type=\"text\" name=\"username\"";
>>> $form.=" size=\"30\" value=\"$username\" > <br> <br>";
>>> $form.="Email:<input type=\"text\" name=\"useraddr\"";
>>> $form.=" size=\"30\" value=\"$useraddr\"> <br> <br>";
>>> $form.="Comments:<textarea name=\"comments\" ";
>>> $form.="cols=\"30\" rows=\"5\">$comments</textarea>";
>>> $form.="<br> <input type=\"submit\" name=\"sent\" ";
>>> $form. = "value=\"Send Form\"></form>" ;
>>>
>>>
>>> #execute this code if the form has been submitted once
>>> if($sent)
>>> { $valid=true; #set variable default value
>>>
>>> #check username field is not blank
>>> if( !$username )
>>> { $errmsg.="Enter your name:<br>"; $valid = false; }
>>>
>>> #check email useraddr field is not blank
>>> if ( !$useraddr )
>>> { $errmsg. =" Enter email address : <br>" ; $valid=false; }
>>> #check comments field is not blank
>>> if ( !$comments )
>>> { $errmsg. = "Enter your comments : <br>" ; $valid=false; }
>>> }
>>>
>>> if( !$useraddr )
>>> { $errmsg .="Enter email address:<br>"; $valid = false; }
>>> else ;
>>> {
>>> $useraddr = trim( $useraddr );
>>> #patterns for name,domain and top-level domains
>>> $_name = "/^[-!#$%&\'*+\\.\/0-9=?A-Z^_'{|}-]+";
>>> $_host = " ( [-0-9A-Z]+\.)+";
>>> $_tlds = "([0-9A-Z]){2,4}$/i";
>>> #check validity of email format
>>> if( !preg_match($_name."@".$_host.$_tlds,$useraddr) )
>>> {
>>> $errmsg .= "Email address has incorrect format!<br>"; $valid = false; }
>>> }
>>>
>>> #if invalid write the error message/s and the form
>>>
>>> if ( $valid != true )
>>> { echo ( $errmsg . $form ) ; }
>>>
>>> else #if the form is valid send the email
>>>
>>> { $to = "jo@test.co.uk";
>>> $re = "Feedback from $username" ;
>>> $msg = $comments;
>>> $headers = "From: $useraddr \r\n" ;
>>> if ( mail ( $to, $re, $msg, $headers ) )
>>> { echo ("Thanks for your comments, $username" ) ; }
>>> }
>>> ?>
>>>
>>> </body></html>
>>>
>>> ---
>>>
>>> Many thanks
>>>
>>> Regards
>>>
>>> Jeremy
>>>
>>
>> Jeremy,
>>
>> I didn't check all of your code, but to start, your line:
>>
>> $form ="<form action=\"$_SERVER[`PHP_SELF`]\" method=\"post\">";
>>
>> uses back tickeys (`) instead of single quotes ('). Hard to see, I know.
>>
>
> I use single quotes and it works fine on a Linux hosting service with
> Php5.0
>
Yes, that's the way you should do it. he didn't. Read my message again.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Navigation:
[Reply to this message]
|