Jump to content

Call to undefined function (beginner)


Ricky55

Recommended Posts

Hi guys

PHP beginner.

I have just moved my site to a new server, the old server had an older version of PHP, 5. something and the new server has version 7.

I have a script that powers this page

https://www.jaybe.com/guarantee-register/

It just sends an email back to the user and also posts the form contents to a mysql database. A developer that I used to work with set this up for me a long time back.

Now when I run the script I get this error

Fatal error: Uncaught Error: Call to undefined function ereg() in /var/www/jaybe.com/public_html/_/scripts/guarantee.php:37 Stack trace: #0 {main} thrown in /var/www/jaybe.com/public_html/_/scripts/guarantee.php on line 37

The code from the script is here:-

<?php
	
	ini_set('display_errors', 1);
	ini_set('display_startup_errors', 1);
	error_reporting(E_ALL);

	$after = "/guarantee-register/thanks.php"; 
	$oops = "/guarantee-register/error.php";
	
if (isset($_POST['submit']) || isset($_POST['submit_x']) || $_SERVER['REQUEST_METHOD'] == "POST") {

    $exploits = "/(content-type|bcc:|cc:|document.cookie|onclick|onload|javascript|alert)/i";
    $profanity = "/(test)/i";
    $spamwords = "/(viagra|phentermine|tramadol|adipex|advai|alprazolam|ambien|ambian|amoxicillin|antivert|blackjack|backgammon|texas|holdem|poker|carisoprodol|ciara|ciprofloxacin|debt|dating|porn)/i";
    $bots = "/(Indy|Blaiz|Java|libwww-perl|Python|OutfoxBot|User-Agent|PycURL|AlphaServer)/i";

    if (preg_match($bots, $_SERVER['HTTP_USER_AGENT'])) {
        exit("<p>Known spam bots are not allowed.</p>");
    }
    foreach ($_POST as $key => $value) {
        $value = trim($value);

        if (empty($value)) {
        	if ($key != "email")  
        		{
            exit("<p>Please go back and complete the required fields.</p>");      
            	}
        } elseif (preg_match($exploits, $value)) {
            exit("<p>Exploits/malicious scripting attributes aren't allowed.</p>");
        } elseif (preg_match($profanity, $value) || preg_match($spamwords, $value)) {
            exit("<p>Please keep things clean, no naughty words!</p>");
        }

        $_POST[$key] = stripslashes(strip_tags($value));
    }

    if (!ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,6})$",strtolower($_POST['email']))) {
        exit("<p>How can we reply if you don't provide us with a valid email address?</p>");
    }

	conn();
	$sql = "INSERT INTO guarantee_reg (`gender`, `forename`, `surname`, `address`, `postcode`, `email`, `product`, `date_purchased`, `retailer`, `opt_in`)
			VALUES (
				'" . mysql_real_escape_string($_POST['gender']) . "', 
				'" . mysql_real_escape_string($_POST['name']) . "', 
				'" . mysql_real_escape_string($_POST['surname']) . "', 
				'" . mysql_real_escape_string($_POST['address']) . "', 
				'" . mysql_real_escape_string($_POST['postcode']) . "', 
				'" . mysql_real_escape_string($_POST['email']) . "', 
				'" . mysql_real_escape_string($_POST['product']) . "', 
				'" . mysql_real_escape_string($_POST['date']) . "', 
				'" . mysql_real_escape_string($_POST['retailer']) . "', 
				'" . mysql_real_escape_string($_POST['opt-in']) . "')";
	qry($sql);
				
    $recipient = "{$_POST['email']}";
    $subject = "Your Jay-Be Guarantee Confirmation";
    

	$message .= "Dear {$_POST['name']}, \n\n Thank you for completing the Jay-Be guarantee registration form. This email is your guarantee registration confirmation, you may wish to print it out for future reference.\n\n";
    
	$year = date('y');
	$month = date('m');

	$message = "";

    $message .= 'Reference number: JB' . $year . $month . "\n\n";
    
    $message .= "The details you provided are as follows: \n\n";
    
	$message .= "Title: {$_POST['title']} \n\n";
	$message .= "First Name: {$_POST['name']} \n\n";
	$message .= "Surname: {$_POST['surname']} \n\n";
	$message .= "Address:\n{$_POST['address']} \n\n";
	$message .= "Postcode: {$_POST['postcode']} \n\n";
	$message .= "Email: {$_POST['email']} \n\n";
	$message .= "Product purchased: {$_POST['product']} \n\n";
	$message .= "Date purchased: {$_POST['date']} \n\n";
	$message .= "Retailer purchased from: {$_POST['retailer']} \n\n";
	$message .= "Added to our marketing database (no if not specified): {$_POST['opt-in']} \n\n";
	
    $headers .= "From: {$_POST['email']}";

    if (mail($recipient,$subject,$message,$headers)) {
        echo "<meta HTTP-EQUIV=\"REFRESH\" content=\"0; url=$after\">"; 
    } else {
        echo "<meta HTTP-EQUIV=\"REFRESH\" content=\"0; url=$oops\">";
    }
}



function conn()
{
	$host='localhost'; 
	
	if($_SERVER['SERVER_ADDR']!='127.0.0.1') {
		$user='user'; $pwd='xxx'; $db='fff';
	}
	else {
		$user='root!'; $pass=''; $db='fff';
	}

	$conn = mysql_connect($host, $user, $pwd) or die ("<h1>mysql_connect Error</h1>\n
										<ul>\n
											<li>Error in: " . $_SERVER['PHP_SELF'] . "</li>\n
											<li>Selecting database : $db</li>\n
											<li>With username: $user</li>\n
											<li>And Password: $pass</li>\n
											<li>mysql_error: " . mysql_error() . "</li>\n
										</ul>\n");
										
	mysql_select_db($db, $conn) or die("<h1>mysql_select_db Error</h1>\n
										<ul>\n
											<li>Error in: " . $_SERVER['PHP_SELF'] . "</li>\n
											<li>Selecting database : $db</li>\n
											<li>With username: $user</li>\n
											<li>And Password: $pass</li>\n
											<li>mysql_error: " . mysql_error() . "</li>\n
										</ul>\n");
	return $conn;
}

function qry($sql)
{
	$res = mysql_query($sql) or die("<h1>Error Querying Database</h1>\n<ul><li>SQL: $sql</li>\n<li>Error: " . mysql_error() . "</li>\n</ul>");
	return $res;
}


function qry_row($sql)
{
	$res = qry($sql);
	$row = mysql_fetch_assoc($res);
	return $row;
}
?>

If anyone can shed any light I'd be very grateful.

Thanks

Richard

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.