Jump to content

Recommended Posts

I have the following code in my register.php file and it all seems to work fine.

 

However, I have been led to believe that ereg_replace is not suitable anymore so I was wondering what are the alternatives for my situation?

 

<?php
$cleanun = ereg_replace("[^A-Za-z0-9]", "", $_POST['username']);
if(strlen($cleanun)<'8' || strlen($cleanun)>'15')
  {
  print "<b>Register</b> - Please enter a username of between 8 and 15 letters and/or numbers.<br /><br />";
  print "Already have an account? Click <a href='signin.php' target='_self'>Sign in</a>.<br /><br />";
  print "<form name='registerform' action='register.php' method='post'>";
  print "<label>Username:</label><input type='text' name='username' maxlength='15'></input><br /><br />";
  print "<b>NOTE: Anything other than letters and numbers will be stripped from the username.</b><br /><br />";
  print "<input class='bttn' type='submit' value='Next >>'></input>";
  print "</form>";
  }
else
  {
  $con = mysql_connect("localhost","root","password");
   if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }
   mysql_select_db("hiddenbid", $con);
   $username = mysql_real_escape_string($cleanun);
   $mysql = mysql_query("SELECT username FROM users WHERE username = '$username'");
    if(mysql_num_rows($mysql)==0)
     {
     print "Congratulations, your username is available.";
     print "<br /><br />";
     print "<form name='registerform2' action='register2.php' method='post'>";
     print "<label>Username:</label><input class='hide' type='text' name='username' value='" . $cleanun . "' disabled></input>";
     print "<br /><br />";
     print "<input class='bttn' type='submit' value='Next >>'></input>";
     print "</form>";
     }
    else
     {
     print "<b>Register</b> - Please enter a username of between 8 and 15 letters and/or numbers.<br /><br />";
     print "Already have an account? Click <a href='signin.php' target='_self'>Sign in</a>.<br /><br />";
     print "Sorry, but the username " . $cleanun . " is already taken.<br /><br />";
     print "<form name='registerform' action='register.php' method='post'>";
     print "<label>Username:</label><input type='text' name='username' maxlength='15'></input><br /><br />";
     print "<b>NOTE: Anything other than letters and numbers will be stripped from the username.</b><br /><br />";
     print "<input class='bttn' type='submit' value='Next >>'></input>";
     print "</form>";
     }
  }
?>

 

Thanks in advance.

Link to comment
https://forums.phpfreaks.com/topic/211061-ereg_replace-alternative/
Share on other sites

From the manual for ereg_replace():

Tip

preg_replace(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg_replace().

 

preg_replace()

 

Thanks, I did spot this but can't seem to get it to work for what I need.

 

They suggest:

 

<?php

$string = 'April 15, 2003';

$pattern = '/(\w+) (\d+), (\d+)/i';

$replacement = '${1}1,$3';

echo preg_replace($pattern, $replacement, $string);

?>

 

so I assumed this would be for me:

 

<?php

$string = '$_POST['username']';

$pattern = '[^A-Za-z0-9]';

$replacement = '';

echo preg_replace($pattern, $replacement, $string);

?>

 

or

 

<?php

$string = '$_POST['username']';

$pattern = array('[^A-Za-z0-9]');

$replacement = '';

echo preg_replace($pattern, $replacement, $string);

?>

 

However, this doesnt work. Any ideas why?

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.