Jump to content

Regular Expressions crashing Page?!


doubledee

Recommended Posts

I have a payment form that submits its results to Authorize.net.

 

It works on my laptop without an SSL certificate using an Authorize.net test account.

 

But when I transfer this one file over to my GoDaddy account - which has cURL enabled and an SSL certificate - the page crashes when you submit the form results.  (Actually you just get a blank page except for echo statements I added?!)

 

If I take out my "Form Validation" block - which uses Regular Expressions - then the form runs on the server?!  :shrug:

 

Someone said it might be that "cURL must have SSL enabled in the build", but that isn't the issue, because I can send data to an HTTPS connection and receive a response back?!

 

Here is a streamlined version of my code...

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<title></title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<link type="text/css" rel="stylesheet" href=".css">
	<style type="text/css" >
		someStyleHere{
			font-weight: bold;
		}
	</style>
</head>
<body>
	<?php
		// Check Form.
		echo '*** Checking for Submitted Form ***<br />';
		if (isset($_POST['submitted'])){
			// Handle Form.
			echo '*** Form was Submitted ***<br />';
			echo '*** Handling Form ***<br />';

			// Trim all incoming data.
			$trimmed = array_map('trim', $_POST);

			// CHECK BILLING INFORMATION.
			echo '*** Check for Form Errors ***<br />';

			// Check First Name.
			if (!empty($_POST['firstName'])){
				if (preg_match('/^[A-Z \'.-]{2,20}$/i', $_POST['firstName'])){
					$firstName = $_POST['firstName'];
				}else{
					$errors['firstName'] = 'Must be 2-20 characters (A-Z \' . -)';
				}
			}else{
					$errors['firstName'] = 'Please enter your First Name.';
			}

			// Determine if any errors.
			if (empty($errors)){
				// PROCESS PAYMENT.
				echo '*** Processing Form ***<br />';

				$post_url = "https://test.authorize.net/gateway/transact.dll";


				// Output the Response Array to the screen as an HTML Numbered List.
				echo "<OL>\n";
				foreach($response_array as $value){
					echo "<LI>" . $value . " </LI>\n";
				}
				echo "</OL>\n";

				// Printe Response Code.
				switch($response_array[0]){
					case "1":
						echo "Response Code: Approved";
						break;
					case "2":
						echo "Response Code: Declined";
						break;
				}


				// Do not re-display Payment Form!!!
				exit();
				// *********************************************************************
			}// End of PROCESS PAYMENT.
		}// End of HANDLE FORM.
	?>

	<!-- HTML PAYMENT FORM -->
	<form id="payment" action="" method="post">
		<fieldset>
			<legend>Billing Details</legend>
			<ol>
				<!-- First Name -->
				<li>
					<label for="firstName">First Name:</label>
					<input id="firstName" name="firstName" class="text" type="text"
								 maxlength="20" value="<?php echo $firstName; ?>" />
					<?php
						if (!empty($errors['firstName'])){
							echo '<span class="error">' . $errors['firstName'] . '</span>';
						}
					?>
				</li>
			</ol>
		</fieldset>
		<!-- Submit Form -->
		<fieldset id="submit">
			<input name="submit" type="submit" value="Place Order" />
			<input name="submitted" type="hidden" value="true" />
		</fieldset>
	</form>
</body>
</html>

 

 

With my Regular Expressions in, I get this output after submitting the form...

 

*** Checking for Submitted Form ***

*** Form was Submitted ***

*** Handling Form ***

 

 

With NO Regular Expressions in, I get this output after submitting the form...

 

*** Checking for Submitted Form ***

*** Form was Submitted ***

*** Handling Form ***

*** Check for Form Errors ***

*** Processing Form ***

post-string = x_login=

 

and so on...

 

 

Response Code: Approved

 

(Which means the code is working...)

 

 

I am at wit's end with this problem...  :-[

 

Thanks,

 

 

 

Debbie

 

 

Link to comment
https://forums.phpfreaks.com/topic/233163-regular-expressions-crashing-page/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.