2012-11-02 3 views
1

나는 PHP로 문의 양식을 작성 중입니다. 내가 모든 것을 채우고 제출하면 특정 이메일 주소로 메시지를 보내지 않습니다. 몇 가지 오류 메시지가 표시됩니다.소켓을 통해 로컬 MySQL 서버에 연결할 수 없음 문제

오류 메시지 :

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect 
to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /homez.91 
/maaks/www/hotel/eng/resellers.php on line 93 

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the 
server could not be established in /homez.91/maaks/www/hotel/eng/resellers.php on line 
93 

etc..... 

PHP 코드 : 내 코드에서 뭐가 문제

<?php 
     if(isset($_POST['Send']) && $_POST['Send'] == "Submit") 
     { 
      $fname = mysql_real_escape_string($_POST['fname']); 
      $email = mysql_real_escape_string($_POST['email']); 
      $conum = mysql_real_escape_string($_POST['conum']); 
      $country = mysql_real_escape_string($_POST['country']); 
      $find = mysql_real_escape_string($_POST['find']); 
      $msg = mysql_real_escape_string($_POST['msg']); 

      $err = array(); 


if(isset($fname) & isset($email) & isset($conum) & isset($country) & isset($find) & 
isset($msg)) 
      { 

if(empty($fname) & empty($email) & empty($conum) & empty($country) & empty($find) & 
empty($msg)) 
       { 
        $err[] = "All field require"; 
       } 
       else 
       { 
        if(empty($fname)) 
        $err[] = "Your first name require"; 
       } 

      } 
      else 
      { 
      if(!empty($err)) 
       { 
        foreach($err as $er) 
        { 
           echo "<font color=red>$er</font><br/>"; 
        } 
       } 
      else 
      { 
       $to = "[email protected]"; 
       $subject = "Message from Customer"; 
         $message = "$msg";            
         $from = "$email"; 
         $headers = "From:" . $from; 
         mail($to,$subject,$message,$headers); 

       if(mail()) 
        { 

        echo "<script>"; 
          header("Refresh: 0; url=Thankyou.html"); 
        echo "</script>"; 
        } 
        else 
        { 
         echo "Something is wrong" . mysql_error(); 
        } 
       } 
      } 

     }   

?> 

?

+0

mysql이 설치되어 있습니까? – jarchuleta

+0

예, 내 서버에 Phpmyadmin을 가지고 있습니다 – Babu

+1

mysql_connect()를 사용해 보셨습니까? – jarchuleta

답변

1

mysql_real_escape_string 기능을 사용하려면 먼저 mysql 데이터베이스에 연결해야합니다. 또한, mysql_ *은 php에서 더 이상 사용되지 않으므로 mysqli 또는 pdo를 사용하여 데이터베이스 작업을해야한다.

또한 mysql_real_escape_string은 mysql 데이터베이스를 주입 시도로부터 보호하기위한 것이지만 전자 메일 만 보내는 것입니다.

+0

데이터베이스에 연결하지 않고 mysqli를 사용할 수 있습니까? – Babu

+1

@Babu - 문제를 이해하지 못합니다. mysql과 mysqli는 데이터베이스를위한 것이다. 그것은 연결을 필요로하는 데이터베이스 물건 외에는 아무것도하지 않습니다. 나는 당신이하고있는 모든 것이 이메일을 보내는 것이라면 왜 mysql 함수를 사용하는지 이해하지 못한다. – Erik

+0

음, @Erik 맞아. – Babu

관련 문제