2

現在構築中の Web サイトにサインアップするための register.php ファイルを作成しました。XAMPP を実行して Web サイトをホストし、有料ホスト経由でアップロードする前にテストしています。いくつかのビデオとオンライン フォーラムの助けを借りて php ファイルを作成した後、それを Google Chrome で開き、作成した登録フォームに記入しました。しかし、「送信」を押すと、ユーザー情報が mysql データベースに正常に書き込まれる代わりに、次のエラーが表示されました。

非推奨: 関数 eregi_replace() は C:\xampp\htdocs\register.php の 53 行目で非推奨です

警告: mysql_num_rows() は、パラメーター 1 がリソースであると想定し、ブール値は C:\xampp\htdocs\register.php の 56 行目に指定されています

非推奨: 関数 eregi_replace() は C:\xampp\htdocs\register.php の 97 行目で非推奨です

非推奨: 関数 eregi_replace() は C:\xampp\htdocs\register.php の 98 行目で非推奨です

非推奨: 関数 eregi_replace() は C:\xampp\htdocs\register.php の 99 行目で非推奨です

非推奨: 関数 eregi_replace() は C:\xampp\htdocs\register.php の 100 行目で非推奨です

関数に関連するエラーの理由はeregi_replace()、php 言語でサポート/使用されなくなったためです。私はまた、代替案があることも認識していますがpreg_replace()、問題は、PHPの分野の初心者として、解決策を思いつくことができないということです。私は毎日少しずつ学んでいますが、私のウェブサイトを続けるためにこのページをすばやく作成する必要があり、学校では解決策を見つけるためにコードの多くのブロックを試す時間がありません. 謝罪します; 少しスプーンで餌をやる必要があります。:/私のコードを取得して、上記のエラーを修正する方法を教えてください。または、コードの修正されたコピーでより適切に対応していただければ、非常に高く評価されます! お時間をいただきありがとうございます。また、私の知識不足についてお詫び申し上げます。

register.php:

    <?php
//User check log
//include_once("Scripts/checkuserlog.php");
?>

<?php
// let's initialize vars to be printed to page in the HTML section so our script does not return errors 
// they must be initialized in some server environments
$errorMsg = "";
$firstname = "";
$lastname = "";
$email1 = "";
$email2 = "";
$pass1 = "";
$pass2 = "";

// This code runs only if the form submit button is pressed
if (isset ($_POST['firstname'])){
    
    /* Example of cleaning variables in a loop
    $vars = "";
    foreach ($_POST as $key => $value) {
       $value = stripslashes($value);
       $vars .= "$key = $value<br />";
    }
    print "$vars";
    exit();
    */
     $firstname = $_POST['firstname'];
     $lastname = $_POST['lastname'];
     $email1 = $_POST['email1'];
     $email2 = $_POST['email2'];
     $pass1 = $_POST['pass1'];
     $pass2 = $_POST['pass2'];

     $firstname = stripslashes($firstname);
     $lastname = stripslashes($lastname);
     $email1 = stripslashes($email1); 
     $pass1 = stripslashes($pass1); 
     $email2 = stripslashes($email2);
     $pass2 = stripslashes($pass2); 

     $firstname = strip_tags($firstname);
     $lastname = strip_tags($lastname);
     $email1 = strip_tags($email1);
     $pass1 = strip_tags($pass1);
     $email2 = strip_tags($email2);
     $pass2 = strip_tags($pass2);

     // Connect to database
     include_once "/Scripts/connect_to_mysql.php";
     $emailCHecker = mysql_real_escape_string($email1);
     $emailCHecker = eregi_replace("`", "", $emailCHecker);
     // Database duplicate e-mail check setup for use below in the error handling if else conditionals
     $sql_email_check = mysql_query("SELECT email FROM members WHERE email='$emailCHecker'");
     $email_check = mysql_num_rows($sql_email_check); 

     // Error handling for missing data
     if ((!$firstname) || (!$lastname) || (!$email1) || (!$email2) || (!$pass1) || (!$pass2)) { 

     $errorMsg = 'ERROR: You did not submit the following required information:<br /><br />';
  
     if(!$firstname){ 
       $errorMsg .= ' * First Name<br />';
     } 
     if(!$lastname){ 
       $errorMsg .= ' * Last Name<br />';
     } 
     if(!$email1){ 
       $errorMsg .= ' * Email Address<br />';      
     }
     if(!$email2){ 
       $errorMsg .= ' * Confirm Email Address<br />';        
     }  
     if(!$pass1){ 
       $errorMsg .= ' * Login Password<br />';      
     }
     if(!$pass2){ 
       $errorMsg .= ' * Confirm Login Password<br />';        
     }  
    
     } else if ($email1 != $email2) {
              $errorMsg = 'ERROR: Your Email fields below do not match<br />';
     } else if ($pass1 != $pass2) {
              $errorMsg = 'ERROR: Your Password fields below do not match<br />';
     } else if ($email_check > 0) { 
              $errorMsg = "<u>ERROR:</u><br />Your Email address is already in use inside our database. Please use another.<br />"; 
       
     } else { // Error handling is ended, process the data and add member to database
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
     $firstname = mysql_real_escape_string($firstname);
     $lastname = mysql_real_escape_string($lastname);
     $email1 = mysql_real_escape_string($email1);
     $pass1 = mysql_real_escape_string($pass1);
     
     $firstname = eregi_replace("`", "", $firstname);
     $lastname = eregi_replace("`", "", $lastname);
     $email1 = eregi_replace("`", "", $email1);
     $pass1 = eregi_replace("`", "", $pass1);
     
     // Add MD5 Hash to the password variable
     $db_password = md5($pass1); 

     // Add user info into the database table for the main site table(audiopeeps.com)
     $sql = mysql_query("INSERT INTO members (firstname, lastname, email, password, sign_up_date) 
     VALUES('$firstname','$lastname','$email1','$db_password', now())")  
     or die (mysql_error());
 
     $id = mysql_insert_id();
     
     // Create directory(folder) to hold each user's files(pics, MP3s, etc.)        
     mkdir("members/$id", 0755);    

    //!!!!!!!!!!!!!!!!!!!!!!!!!    Email User the activation link    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    $to = "$email1";
                                         
    $from = "admin@Connect.CloudNine.com";
    $subject = "Complete your registration at Cloud Nine";
    //Begin HTML Email Message
    $message = "Hi $firstname,

   Complete this step to activate your login identity at [ yourdomain ].

   Click the line below to activate when ready.

   localhost/activation.php?id=$id&sequence=$db_password
   If the URL above is not an active link, please copy and paste it into your browser address bar

   Login after successful activation using your:  
   E-mail Address: $email1 
   Password: $pass1

   See you on the site!
   ";
   //end of message
    $headers  = "From: $from\r\n";
    $headers .= "Content-type: text\r\n";

    mail($to, $subject, $message, $headers);
    
   $msgToUser = "<h2>One Last Step - Activate through Email</h2><h4>OK $firstname, one last step to verify your email identity:</h4><br />
   In a moment you will be sent an Activation link to your email address.<br /><br />
   <br />
   <strong><font color=\"#990000\">VERY IMPORTANT:</font></strong> 
   If you check your email with your host providers default email application, there may be issues with seeing the email contents.  If this happens to you and you cannot read the message to activate, download the file and open using a text editor.<br /><br />
   ";


   include_once 'msgToUser.php'; 

   exit();

   } // Close else after duplication checks

} else { // if the form is not posted with variables, place default empty variables
      
      $errorMsg = "Fields marked with an [ * ] are required";
      $firstname = "";
      $lastname = "";
      $email1 = "";
      $email2 = "";
      $pass1 = "";
      $pass2 = "";
}

?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Welcome To Cloud Nine</title>
<link href="CSS/register.css" rel="stylesheet" type="text/css">
<link href="CSS/css_boxes_register.css" rel="stylesheet" type="text/css">
<link href="CSS/reg_table_register.css" rel="stylesheet" type="text/css">

</head>

<body>
    <!--Floating Dock-->
    <div id="floating_dock">
    <a href="html_index.html" id="logo"><img src="Images/cloudnine_logo.png" width="220px"></a>
    <img src="Images/button.png" width="75" height="50" id="button"></div>
    <!--Floating Dock End-->
    
    <!--Content Wrap-->
<div id="container_alt">

<form action="register.php" method="post" enctype="multipart/form-data" class="box">
<h3>Account Registration</h3>
<p>&nbsp;</p>
<p>

<table width="447" border="0" align="center" cellpadding="5" cellspacing="1">
  <tr>
    <td width="435" align="center" valign="middle"><?php print "$errorMsg"; ?></td>
  </tr>
  <tr>
    <td align="center">First Name</td>
  </tr>
  <tr>
    <td align="center"><input name="firstname" type="text" id="firstname" value="<?php print "$firstname";?>" size="35" maxlength="35"></td>
  </tr>
  <tr>
    <td align="center">Last Name</td>
  </tr>
  <tr>
    <td align="center"><input name="lastname" type="text" id="lastname" value="<?php print "$lastname";?>" size="35" maxlength="35"></td>
  </tr>
  <tr>
    <td align="center">Password</td>
  </tr>
  <tr>
    <td align="center"><input name="pass1" type="text" id="pass1" value="<?php print "$pass1";?>" size="35" maxlength="35"></td>
  </tr>
  <tr>
    <td align="center">Confirm Password</td>
  </tr>
  <tr>
    <td align="center"><input name="pass2" type="text" id="pass2" value="<?php print "$pass2";?>" size="35" maxlength="35"></td>
  </tr>
  <tr>
    <td align="center">Email</td>
  </tr>
  <tr>
    <td align="center"><input name="email1" type="text" id="email1" value="<?php print "$email1";?>" size="35" maxlength="35"></td>
  </tr>
  <tr>
    <td align="center">Confirm Email</td>
  </tr>
  <tr>
    <td align="center"><input name="email2" type="text" id="email2" value="<?php print "$email2";?>" size="35" maxlength="35"></td>
  </tr>
  <tr>
    <td align="center"><input type="submit" name="submit" value="Submit Form"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
</p>
</form>

</div>
     


</body>

</html>
4

1 に答える 1

0

必要がない場合は、regexp を実行する必要はありません。変化する

eregi_replace("`", "", $emailCHecker);

str_replace("`", "", $emailCHecker);

mysql_* 関数は非推奨であるため、使用しないでください。mysqli や PDO など、お好きなフレーバーを使用してください。ただし、mysql_* はもう使用しないでください。

この拡張機能の使用はお勧めできません。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。詳細については、MySQL: API ガイドの選択および関連する FAQ も参照してください。

于 2012-10-12T06:12:33.537 に答える