2013-07-04 48 views
-4

警告:mysql_connect():訪問在C:\ xampp \ htdocs \ ramya \ store.php中被用戶'root'@'localhost'(使用密碼:YES)在37行無法連接本地主機:拒絕訪問用戶「根」 @「localhost」的(使用密碼:YES)當我在mysql數據庫中存儲圖像時我有錯誤

<?php 

    error_reporting(E_ALL); 
    $server = "localhost"; 
    $login = "root"; 
    $s_password = " "; 

    $hotel_name=$_POST['hotel_name']; 
    $street_name=$_POST['street_name']; 
    $city=$_POST['city']; 
    $state=$_POST['state']; 
    $country=$_POST['country']; 
    $zipcode=$_POST['zipcode']; 
    $phone_number=$_POST['phone_number']; 
    $fax=$_POST['fax']; 
    $email_id=$_POST['email_id']; 
    $pass=$_POST['password']; 

    foreach ($_FILES["pictures"]["error"] as $key => $error) { //used for multiple uploads 

     if ($error == UPLOAD_ERR_OK) { 
      $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; 
      } 
    } 

    $size = getimagesize($tmp_name); 

    $width = $size[0]; // get width of the image 
    $height = $size[1]; //get height of the image 
    $type = $size[2]; //get type of the image 
    $mime_type = $size['mime']; //get MIME of the image 

    if(!$data = addslashes(@fread(@fopen($tmp_name, "r"), @filesize($tmp_name)))){ 
     die("\n<BR>Cannot read temp file: $tmp_file"); 
    } 

    $link = mysql_connect($server, $login, $s_password); 
    if (!$link) { 
     die("\n<BR>Could not connect $server:" . mysql_error()); 
    } 

    $db_selected = mysql_select_db("test"); 

    if (!$db_selected) { 
     die ("\n<BR>Can\'t use Table : $db_selected" . mysql_error()); 
    } 

    $query = "INSERT INTO image_data "; 
    $query .= " (hotel_name,street_name,city,state,country,zipcode,phone_number,fax,email_id,password,image_type, image_width, image_height, image_data) "; 
    $query .= " values "; 
    $query .= " ('$hotel_name','$street_name','$city','$state','$country','$zipcode','$phone_number','$fax','$email_id','$pass','$mime_type', '$width', '$height', '$data') "; 

    $result = mysql_query($query); 

    if (!$result) { 
     $message = '<BR>Invalid query: ' . mysql_error() . "\n"; 
     die($message); 
    } 


    $image_id = mysql_insert_id() ; 
    echo "\n<IMG SRC=\"getimage.php?id=$image_id\" />"; 

    mysql_close($link); 

    exit(); 

?> 
+0

作爲第一行說:訪問被拒絕。檢查憑據。 – akonsu

+3

你甚至**讀過**錯誤嗎? –

+0

這樣的代碼給web開發者一個壞名字: – jterry

回答

0

請檢查存在密碼的空間,請嘗試刪除

$s_password = ""; 
+0

謝謝大家的迴應。 – Ramya

1

此特定錯誤無關,與你的代碼。你並沒有首先登錄到MySQL。確保您的帳戶有權訪問。

此外,這整個腳本是非常不安全的。使用準備/參數化查詢來避免SQL注入攻擊。現在處理數據的方式可能根本就不起作用。 addslashes()是不夠的。

0

這個錯誤的含義正是它所說的。這不是你的PHP文件的問題 - 而是你實際上沒有權限連接到你正在嘗試的MySQL服務器。

  1. 你的MySQL服務器是否真的託管在本地主機上?
  2. 是否要以root用戶身份連接到它?
  3. 你真的想用單個空格作爲密碼嗎?

話雖這麼說,有許多問題與你的PHP文件中。最明顯的就是你正在使用mysql_*函數。這些should not be used in new code,因爲他們不再維護,並正式棄用。 (見red box?)

您應該使用PDOMySQLi代替。

第二個問題是你非常容易受到SQL注入攻擊。您可以通過調用mysql_escape_string()對您在查詢中包含的每個變量修復此可能的問題,但更好的解決方案是切換到PDO或MySQLi並調查prepared statements

相關問題