Re: PHP / Regex help?
| From: | Ronald Petty | Date: | Thu, 08 May 2003 16:50:58 +0000 |
| Subject: | Re: PHP / Regex help? | ||
| References: | 1 | Groups: | php.install |
| Request: | Send a blank email to php-install+get-10846@lists.php.net to get a copy of this message | ||
How is this off topic? Last time I checked regex was part of php, and
if she needs help understanding, that is what a list is for, of course
maybe Im wrong being from California and all.
Ron
On Thu, 2003-05-08 at 04:25, heilo wrote:
> hi!
>
> allthough this is off-topic of this mailing list you would help us, if you
> said us where the validation fails.
>
> .ma
>
> The_polymorph <The_Polymorph@rocketmail.com> wrote@08.05.2003 8:01 Uhr:
>
> > Hi.
> >
> > I am passing several form fields to the script below but even when the
> > data *should* be valid, it is being 'tagged' as invalid. Very puzzling.
> > Any help would be appreciated:
> >
> > <?php
> >
> >
> > // Define a manifest constant. Equate 'LOG' with the file.
> > define( "LOG", "survey_log.txt" );
> >
> > // Initialize three empty arrays.
> > $form_errors = array();
> > $form_data = array();
> > $form_fields = array();
> >
> >
> > // Assign form variables to local variables.
> > // HTMLSpecialChars is a function that converts HTML tags
> > // to ordinary text so that won't be interpreted by the
> > // browser.
> > $first_name = $_POST['first_name'];
> > $last_name = $_POST['last_name'];
> > $email_address = $_POST['email_address'];
> > $telephone = $_POST['telephone'];
> > $major = $_POST['major'];
> > $city = $_POST['city'];
> > $state = $_POST['state'];
> > $zip_code = $_POST['zip_code'];
> > $contact = $_POST['contact'];
> > $comment = HTMLSpecialChars( $_POST['comment'] );
> >
> >
> > // Assign each of the form fields to the '$form_fields' array.
> > // This was done to increase efficiency.
> > array_push( $form_fields, "first_name", "last_name",
> > "email_address",
> > "telephone", "major", "city", "state",
> > "zip_code" );
> >
> > // Check the value of each element in the $form_fields array.
> > // If it isn't blank and the contents match a specific pattern,
> > // assign the value to the $form_data array.
> > foreach( $form_fields as $field ) {
> > if( $field != "" && $field( $field ) ) {
> > $form_data[] = $field;
> > }
> >
> > // Assign the enclosed string to the '$form_errors' array
> > // if the field is either blank or the contents didn't
> > // match the individual pattern.
> > else {
> > $form_errors[] = "$field contains missing or invalid data<br/>";
> > }
> > }
> >
> > // Does the '$contact' variable have a value that evaluates
> > // to true?
> > if( $contact == "contact" ) {
> > $form_data[] = "Requesting contact";
> > }
> >
> > // Store the value of '$comment' in '$form_data'.
> > $form_data[] = "$comment";
> >
> >
> > // If there were errors in any of the form fields, loop
> > // through the '$form_errors' array and display each of
> > // them in sequence.
> > if( $form_errors ) {
> > echo "<center><h3>Form
> > errors</h3></center><br/><br/>";
> > foreach( $form_errors as $error ) {
> > echo "<font color=\"red\">$error<br/></font>";
> > }
> > }
> >
> > // No errors in form data. If the user has stated they would
> > // like to be contacted ( via the checkbox ), display the
> > // string 'You will be contacted shortly'. Otherwise, simply
> > // thank them for their feedback.
> > else {
> > echo "<html><body
> > bgcolor=\"aquamarine\"><center><h3>Thank you for
> > your
> > feedback.</h3></center></body></html><br/><br/>";
> > if( $contact ) {
> > echo "<html><body bgcolor=\"aquamarine\">You will be
> > contacted
> > shortly.</body></html><br/>";
> > }
> > }
> >
> > // If the 'survey_log.txt' file cannot be opened, display
> > // the string and exit.
> > if(!$file = fopen( LOG, "a+" ) ) {
> > echo "Could not open file " . LOG;
> > exit;
> > }
> >
> > // If the file is open and there are no form errors present,
> > // write a time stamp for the submission to disk.
> > if( $file && (!($form_errors) ) ) {
> >
> > $date_stamp = getdate();
> > $week_day = $date_stamp['weekday'];
> > $month = $date_stamp['month'];
> > $day = $date_stamp['mday'];
> > $year = $date_stamp['year'];
> > $hrs = $date_stamp['hours'];
> > $mins = $date_stamp['minutes'];
> > $secs = $date_stamp['seconds'];
> >
> > fwrite( $file, "\nSubmitted: $week_day $month $day $year at
> > $hrs:$mins:$secs\n" );
> >
> > // Iterate through the form data and write each of them
> > // to disk.
> > foreach( $form_data as $data ) {
> > fwrite( $file, "$data\n" );
> > }
> > }
> >
> > // There were form field errors.
> > else {
> > echo "Could not send form data to the server!<br/>";
> > exit;
> > }
> >
> >
> > // Could not close file.
> > if( !fclose( $file ) ) {
> > echo "Error closing file " . LOG;
> > }
> >
> >
> > // Validate first_name field. Must contain only alphabetic
> > // characters. If not, return false. Otherwise, return true.
> > function first_name( $first_name ) {
> >
> > if( eregi("[^a-z]+", $first_name ) ) {
> > return false;
> > }
> >
> > else {
> > return true;
> > }
> > }
> >
> > // Validate last_name field. Must contain only alphabetic
> > // characters. If not, return false. Otherwise, return true.
> > function last_name( $last_name ) {
> >
> > if( eregi("[^a-z]+", $last_name ) ) {
> > return false;
> > }
> >
> > else {
> > return true;
> > }
> > }
> >
> >
> > // Validate first_name field. Must contain only specific
> > // characters. If not, return false. Otherwise, return true.
> > function email_address( $email_address ) {
> >
> > if( !eregi( "^" .
> > "[a-z0-9]+([_\\.-][a-z0-9]+)*" .
> > "@" . "([a-z0-9]+([\.-][a-z0-9]+)*)+" .
> > "\\.[a-z]{2,}" .
> > "$", $email_address ) ) {
> >
> > return false;
> > }
> >
> > else {
> > return true;
> > }
> > }
> >
> > // Validate telephone field. Must contain only numeric
> > // characters which are seperated by either a dash('-')
> > // or a period('.'). If not, return false. Otherwise, return true.
> > function telephone( $telephone ) {
> >
> > if( !eregi("^[0-9]{3}[.-][0-9]{3}[.-][0-9]{4}$", $telephone ) ) {
> > return false;
> > }
> >
> > else {
> > return true;
> > }
> > }
> >
> > // Validate major field. Must contain only alphabetic
> > // characters. If not, return false. Otherwise, return true.
> > function major( $major ) {
> >
> > if( eregi("[^a-z]+", $major ) ) {
> > return false;
> > }
> >
> > else {
> > return true;
> > }
> > }
> >
> > // Validate city field. Must contain only alphabetic
> > // characters. If not, return false. Otherwise, return true.
> > function city( $city ) {
> >
> > if( eregi("[^a-z]+", $city ) ) {
> > return false;
> > }
> >
> > else {
> > return true;
> > }
> > }
> >
> > // Validate state field. Must contain only alphabetic
> > // characters. If not, return false. Otherwise, return true.
> > function state( $state ) {
> >
> > if( eregi("[^a-z]+", $state ) ) {
> > return false;
> > }
> >
> > else {
> > return true;
> > }
> > }
> >
> > // Validate zip_code field. Must contain only five numeric
> > // characters. If not, return false. Otherwise, return true.
> > function zip_code( $zip_code ) {
> >
> > if( !eregi("^[0-9]{5}$", $zip_code ) ) {
> > return false;
> > }
> >
> > else {
> > return true;
> > }
> > }
> >
> > ?>
> >
> >
> > Thanks,
> >
> > -Katie
> >
> > =====
> > One of the key characteristics of professionalism is a loyalty to the
> > profession that transcends loyalty to any single employer.
> >
> > -Andrew Koenig
> >
> > __________________________________
> > Do you Yahoo!?
> > The New Yahoo! Search - Faster. Easier. Bingo.
> > http://search.yahoo.com
>
> Matthias Steinböck
> Email: grillen@abendstille.at
> Web: http://www.abendstille.at
>
> Frühabendliches Webdesign.
> ------------------------------------------
> Im Übrigen sind wir der Meinung, dass
> Wir im Fall der Fälle auch ihre
> Zehennägel schneiden, denn der
> Kunde ist König.
>