2015-08-08 175 views
1

所以我創建我的網頁註冊,並點擊「提交」按鈕後,我得到了這個錯誤...我創建了MySQL表,我不知道爲什麼這個錯誤顯示... 錯誤:Mysql數據庫警告

Warning: mysqli_connect(): (HY000/2013): Lost connection to MySQL server at 'reading initial communication packet', system error: 95 "Operation not supported" in /home/u771616840/public_html/FreeDay/PHP Form 2/configdb.php on line 2

數據庫錯誤

註冊代碼:

<?php 
session_start(); 
include('configdb.php'); 
if(isset($_POST['submit'])) 
{ 
//whether the username is blank 
if($_POST['username'] == '') 
{ 
    $_SESSION['error']['username'] = "User Name is required."; 
} 
//whether the email is blank 
if($_POST['email'] == '') 
{ 
    $_SESSION['error']['email'] = "E-mail is required."; 
} 
else 
{ 
    //whether the email format is correct 
    if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/", $_POST['email'])) 
    { 
    //if it has the correct format whether the email has already exist 
    $email= $_POST['email']; 
    $sql1 = "SELECT * FROM user WHERE email = '$email'"; 
    $result1 = mysqli_query($mysqli,$sql1) or die(mysqli_error()); 
    if (mysqli_num_rows($result1) > 0) 
      { 
    $_SESSION['error']['email'] = "This Email is already used."; 
    } 
    } 
    else 
    { 
    //this error will set if the email format is not correct 
    $_SESSION['error']['email'] = "Your email is not valid."; 
    } 
} 
//whether the password is blank 
if($_POST['password'] == '') 
{ 
    $_SESSION['error']['password'] = "Password is required."; 
} 
//if the error exist, we will go to registration form 
if(isset($_SESSION['error'])) 
{ 
    header("Location: index.php"); 
    exit; 
} 
else 
{ 
    $username = $_POST['username']; 
    $email = $_POST['email']; 
    $password = $_POST['password']; 
    $com_code = md5(uniqid(rand())); 

    $sql2 = "INSERT INTO user (username, email, password, com_code) VALUES ('$username', '$email', '$password', '$com_code')"; 
    $result2 = mysqli_query($mysqli,$sql2) or die(mysqli_error()); 

    if($result2) 
    { 
    $to = $email; 
    $subject = "Confirmation from TutsforWeb to $username"; 
    $header = "TutsforWeb: Confirmation from TutsforWeb"; 
    $message = "Please click the link below to verify and activate your account. rn"; 
    $message .= "http://www.yourname.com/confirm.php?passkey=$com_code"; 

    $sentmail = mail($to,$subject,$message,$header); 

    if($sentmail) 
      { 
    echo "Your Confirmation link Has Been Sent To Your Email Address."; 
    } 
    else 
     { 
    echo "Cannot send Confirmation link to your e-mail address"; 
    } 
    } 
} 
} 
?> 

Configdb文件:

<?php 
$mysqli=mysqli_connect('localhost','dbusername','dbpassword','databasename') or die("Database Error"); 
?> 

thanx的幫助:)

+1

這並不能幫助你'或死亡( 「數據庫錯誤」)'這並不'或死亡(mysqli_error($ mysqli的))' –

+1

一旦你已經改變了代碼按@弗雷德-II-。然後嘗試將''localhost''改爲''127.0.0.1'' – RiggsFolly

+0

好吧,所以我完成了你所說的,現在它顯示了2個錯誤...... First-'Warning:mysqli_connect():(HY000/2003):Can '在第二行的/ home/u771616840/public_html/FreeDay/PHP Form 2/configdb.php''上連接到'127.0.0.1'(111「連接被拒絕」)的MySQL服務器上。第二:'Warning:mysqli_error()expect parameters 1是mysqli,布爾在/ home/u771616840/public_html/FreeDay/PHP Form 2/configdb.php在第2行給出' – FreeDay

回答

0

我想分享我解決這個問題... MySQL的是顯示這個錯誤,因爲我有錯誤的表型......在register.php是以下幾點:

$username = $_POST['username']; 
    $email = $_POST['email']; 
    $password = $_POST['password']; 
    $com_code = md5(uniqid(rand())); 

因此,您必須創建以下到您的表...第一行的表必須是用戶名,第二封電子郵件,然後密碼和com_code。你不能給他們其他名稱,因爲你已經在你的php文件中定義了這個表名... 如果這不起作用,那麼檢查你是否有正確的數據類型...對於密碼是INT和文本只是TEXT

+0

你提到的錯誤只是簡單地說,我無法連接..有這個問題的原因很多.. –