2013-07-04 8 views
-4

경고 : mysql_connect() : C : \ xampp \ htdocs \ ramya \ store.php에서 'root'@ 'localhost'(암호 사용 : YES) 사용자의 액세스가 거부되었습니다. 라인 37에서 로컬 호스트를 연결할 수 없습니다 :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

이 코드는 웹 개발자에게 나쁜 이름을 부여합니다. – jterry

답변

0

암호 공간이 확인하시기 바랍니다 첫 번째 줄과 같은

$s_password = ""; 
+0

답장을 보내 주셔서 감사합니다. – Ramya

1

이 특정 오류 코드와 아무 상관이있다 : 액세스 (YES 암호를 사용하여) 사용자가 '루트'@ 'localhost를'거부. 처음에는 MySQL에 로그인하지 않았습니다. 계정에 액세스 할 수 있는지 확인하십시오.

또한이 전체 스크립트는 매우 안전하지 않습니다. 준비된/매개 변수가있는 쿼리를 사용하여 SQL 주입 공격을 피하십시오. 데이터를 처리하는 방식이 지금은 전혀 작동하지 않습니다. addslashes()은 충분하지 않습니다.

0

오류 란 정확히 말합니다. 그것은 PHP 파일에 문제가 아닙니다. 실제로 MySQL 서버에 연결할 수있는 권한이 없습니다.

  1. MySQL 서버가 실제로 localhost에서 호스팅되고 있습니까?
  2. root 사용자로 연결 하시겠습니까?
  3. 암호로 공백 하나만 사용 하시겠습니까?

말했다되고 있다는뿐만 아니라 당신의 PHP 파일로 많은 문제가있다. 가장 확실한 점은 단순히 mysql_* 기능을 사용하고 있다는 것입니다. 이 should not be used in new code 더 이상 유지 관리되지 않으며 공식적으로 사용되지 않기 때문에 (참조 red box?) 대신 PDO 또는 MySQLi를 사용한다

.

두 번째 문제는 SQL 삽입에 매우 취약하다는 것입니다. 이 일 수 있으며 쿼리에 포함 된 각 변수에 mysql_escape_string()을 호출하여 해결할 수 있지만 더 나은 해결 방법은 PDO 또는 MySQLi로 전환하고 prepared statements을 조사하는 것입니다. 액세스가 거부 :

관련 문제