2017-02-18 2 views
0

Я пытаюсь сделать контактную форму и подключиться к базе данных, а ошибка продолжать сообщать мне, что я не могу получить доступ к таблице в базе данных. . Я почти перестал в течение 7 часов, и я очень устал любой помощи ребята error imageНевозможно использовать DB_NAME: Доступ запрещен для пользователя

table image

<?php 
 
$DB_NAME = "form"; 
 
$DB_USER = "root"; 
 
$DB_PASSWORD = ""; 
 
$DB_HOST = "localhost"; 
 

 
\t $link = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD,$DB_NAME); 
 

 
\t if (!$link){ 
 
\t \t die("could not connect:" . mysql_error()); 
 
\t }; 
 

 

 
\t $db_selected = mysql_select_db($DB_NAME,$link); 
 

 
\t if(!$db_selected) { 
 
\t \t die("Can\'t use " . $DB_NAME . ' : ' . mysql_error()); 
 
\t }; 
 

 
\t $value = $_POST["user_name"]; // required 
 
\t $value2 = $_POST["user_eamil"];// required 
 
\t $value3 = $_POST["subject"]; 
 
\t $value4 = $_POST["text_massege"];// required 
 
\t 
 

 
\t 
 
\t $sql = "INSERT INTO form (user_name , user_eamil , subject , text_massege) VALUES ('$value','$value2','$value3','$value4')"; 
 

 
\t if (!mysql_query($sql)){ 
 
\t \t die("Error: " . mysql_error()); 
 
\t }; 
 

 

 
\t // Build the email (replace the address in the $to section with your own) 
 
\t $email_from = $value2;//<== update the email address 
 
\t $email_subject = "New Form submission"; 
 
\t $email_body = "You have received a new message from the user $value.\n". 
 
\t  "Here is the message:\n $value4". 
 
\t  
 
\t $to = "mail";//<== update the email address 
 
\t $headers = "From: $email_from \r\n"; 
 
\t $headers .= "Reply-To: $value2 \r\n"; 
 
\t 
 

 
\t if (!preg_match("/^[a-zA-Z ]*$/",$value)) { 
 
\t $nameErr = "Only letters and white space allowed"; 
 
\t } 
 
\t //Send the email! 
 
\t mail($to,$email_subject,$email_body,$headers); 
 
\t //done. redirect to thank-you page. 
 
\t header('Location: thank-you.html'); 
 

 

 
\t // Function to validate against any email injection attempts 
 
\t \t function IsInjected($str) 
 
\t \t { 
 
\t \t $injections = array('(\n+)', 
 
\t \t    '(\r+)', 
 
\t \t    '(\t+)', 
 
\t \t    '(%0A+)', 
 
\t \t    '(%0D+)', 
 
\t \t    '(%08+)', 
 
\t \t    '(%09+)' 
 
\t \t    ); 
 
\t \t $inject = join('|', $injections); 
 
\t \t $inject = "/$inject/i"; 
 
\t \t if(preg_match($inject,$str)) 
 
\t \t  { 
 
\t \t  return true; 
 
\t \t } 
 
\t \t else 
 
\t \t  { 
 
\t \t  return false; 
 
\t \t } 
 
\t \t } 
 
\t mysql_close(); 
 
?>

+0

первые ноты кажется, что у вас есть набор паролей для корневой базы данных для БД: форма и если не кажется, что вы выбор соты дб в mysql_select_db заявлении() – RohitS

+0

Вы уверены, что база данных называется 'form', ваш таблица называется 'form', они оба одинаковые? В противном случае это просто проблема с правами на доступ к базе данных, и у вас нет доступа к этой базе данных. – Augwa

+0

Я предлагаю вам использовать 'mysqli', поскольку' mysql' устарел –

ответ

0

Попробуйте

<?php 
$DB_NAME = "form";//Database name 
$DB_USER = "root"; 
$DB_PASSWORD = ""; 
$DB_HOST = "localhost"; 

$link = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD,$DB_NAME); 

if (!$link){ 
    die("could not connect:" . mysql_error()); 
}; 


$db_selected = mysql_select_db($DB_NAME,$link); 

if(!$db_selected) { 
    die("Can\'t use " . $DB_NAME . ' : ' . mysql_error()); 
}; 

if (isset($_POST["user_name"])) { 
    $value = $_POST["user_name"]; // required 
    $value2 = $_POST["user_eamil"];// required 
    $value3 = $_POST["subject"]; 
    $value4 = $_POST["text_massege"];// required 


    //Please use table name here 
    $sql = "INSERT INTO form (user_name , user_eamil , subject , text_massege) VALUES ('$value','$value2','$value3','$value4')"; 

    if (!mysql_query($sql)){ 
     die("Error: " . mysql_error()); 
    }; 


    // Build the email (replace the address in the $to section with your own) 
    $email_from = $value2;//<== update the email address 
    $email_subject = "New Form submission"; 
    $email_body = "You have received a new message from the user $value.\n". 
     "Here is the message:\n $value4". 

    $to = "mail";//<== update the email address 
    $headers = "From: $email_from \r\n"; 
    $headers .= "Reply-To: $value2 \r\n"; 


    if (!preg_match("/^[a-zA-Z ]*$/",$value)) { 
     $nameErr = "Only letters and white space allowed"; 
    } 
    //Send the email! 
    mail($to,$email_subject,$email_body,$headers); 
    //done. redirect to thank-you page. 
    header('Location: thank-you.html'); 


    // Function to validate against any email injection attempts 
     function IsInjected($str) 
     { 
      $injections = array('(\n+)', 
         '(\r+)', 
         '(\t+)', 
         '(%0A+)', 
         '(%0D+)', 
         '(%08+)', 
         '(%09+)' 
        ); 
      $inject = join('|', $injections); 
      $inject = "/$inject/i"; 
      if(preg_match($inject,$str)) 
      { 
      return true; 
      } 
      else 
      { 
      return false; 
      } 
     } 
    mysql_close(); 
} 
?> 

<form method="post"> 
    <input type="text" name="user_name" > 
    <input type="text" name="user_eamil" > 
    <input type="text" name="subject" > 
    <input type="text" name="text_massege" > 
    <input type="submit" value="submit" > 
</form> 
+1

Можете ли вы объяснить, какие изменения вы внесли, что заставляет вас полагать, что это сработает? – Augwa

+0

МОЙ человек, ты один, проблема в том, что я использовал имя таблицы, а не имя базы данных. –

+0

Я не думаю, что ответ относится к вопросу, который является актуальной проблемой, которая не может подключиться к базе данных. Но ответ принят ... интересно, как ??? –