2015-12-29 46 views
1

我真的在和這個做鬥爭,我已經嘗試了每個關於這個的youtube/google頁面,沒有任何東西可以解決這個問題。

當點擊提交數據庫只收集「idContactForm」,但不休息(名稱/電子郵件/主題/消息)

我已經試過了所有我能找到使用if(isset)$ _ POST線,但我總是看到($ name/$ email/$ subject/$ message)上的「Undefined index:」錯誤

我在做什麼錯?

<?php 

    include 'config.php'; 

    if (!isset($_POST['submitted'])) { 

     $name = trim(mysqli_escape_string($conn,$_POST['Name'])); 
     $email = trim(mysqli_escape_string($conn,$_POST['Email'])); 
     $subject = trim(mysqli_escape_string($conn,$_POST['Subject'])); 
     $message = trim(mysqli_escape_string($conn,$_POST['Message'])); 

    } else { 
    ## connect mysql server 
     $mysqli = new mysqli('localhost', 'root', '******', 'tomepublications'); 
     # check connection 
     if ($mysqli->connect_errno) { 
      echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>"; 
      exit(); 
     } 


      # insert data into mysql database 
      $sql = "INSERT INTO `contactform` (`idContactForm`, `Name`, `Email`, `Subject`, `Message`) 
        VALUES (NULL, '{$name}', '{$email}', '{$subject}', '{$message}')"; 

      if ($mysqli->query($sql)) { 
       //echo "New Record has id ".$mysqli->insert_id; 
       echo "<p>Registred successfully!</p>"; 
      } else { 
       echo "<p>MySQL error no {$mysqli->errno} : {$mysqli->error}</p>"; 
       exit(); 
      } 
     } 

    ?> 

HTML

<form method="post" action="contactf.php"> 
            <div class="form-group"> 
             <input type="text" name="name" id="Name" class="form-control" placeholder="Name" required> 
            </div> 
            <div class="form-group"> 
             <input type="email" name="email" id="Email"class="form-control" placeholder="Email" required> 
            </div> 
            <div class="form-group"> 
             <input type="text" name="subject" id="Subject"class="form-control" placeholder="Subject" required> 
            </div> 
            <div class="form-group"> 
             <textarea name="message" class="form-control" id="Message" rows="15" placeholder="Message" required></textarea> 
            </div> 
            <input type="hidden" name="submitted" value="true"> 
            <input type="submit" value="submit" class="btn btn-primary">Send Message</> 
           </form> 

回答

2

你如果是錯的,$名稱,$電子郵件,$主題和$消息不在的其他範圍。

<?php 

include 'config.php'; 

if (isset($_POST['submitted'])) { 

    ## connect mysql server 
    $mysqli = new mysqli('localhost', 'root', '******', 'tomepublications'); 
    # check connection 
    if ($mysqli->connect_errno) { 
     echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>"; 
     exit(); 
    } 

    $name = trim(mysqli_escape_string($conn,$_POST['name'])); 
    $email = trim(mysqli_escape_string($conn,$_POST['email'])); 
    $subject = trim(mysqli_escape_string($conn,$_POST['subject'])); 
    $message = trim(mysqli_escape_string($conn,$_POST['message'])); 


    # insert data into mysql database 
    $sql = "INSERT INTO `contactform` (`idContactForm`, `Name`, `Email`, `Subject`, `Message`) 
       VALUES (NULL, '{$name}', '{$email}', '{$subject}', '{$message}')"; 

     if ($mysqli->query($sql)) { 
      //echo "New Record has id ".$mysqli->insert_id; 
      echo "<p>Registred successfully!</p>"; 
     } else { 
      echo "<p>MySQL error no {$mysqli->errno} : {$mysqli->error}</p>"; 
      exit(); 
     } 
    } 

?> 
+0

THX Iamfree回答..這奏效了! 非常感謝 –

+0

你*必須*在運行'mysqli_escape_string()'之前連接到服務器' –

+0

@Dragon我認爲你是對的! –

3

的變量是區分大小寫的。表單使用name="name",全部小寫,但你想找的,$_POST['Name']大寫ň

+0

喜袞,感謝名單快速回復 我已經改變了一切,現在爲小寫,還是給了我同樣的錯誤 –

+0

和問題的另一半iamfreee –

1

當在else塊中構建SQL查詢時,這些變量($ name,$ email,$ subject,$ message)仍然未定義。變量只在if塊中定義。