2017-05-13 3 views
0

Die Variablen arbeiten; als ich sie auf den Bildschirm zurückmelde. Aber es gibt nichts in die db/table ein. Es sagt mir keinen Fehlercode, aber es scheitert. Lassen Sie es mich wissen, wenn Sie weitere Informationen wie db_conn benötigen. Ich habe mehrere Antworten auf ähnliche Fragen ausprobiert und sie reparieren es nicht für mich. Das Formular ist um www.mommy-info.com/contact. Das zweite Formular auf der Seite ist das, mit dem ich gerade arbeite.

Meine Form Code:

<form action="/cq.php" method="post"> 
    <fieldset> 
     <legend>Username/Name</legend> 
     <input 
       placeholder="Insert your name" 
       type="text" name="user_name" id="user_name"/> 
    </fieldset> 
    <br> 
    <fieldset> 
     <legend>Email</legend> 
     <input id="email" 
       type="email" name="email" 
       placeholder="Insert your email address"/> 
    </fieldset> 
    <br> 
    <fieldset> 
     <legend>Question</legend> 
     <textarea 
       placeholder="Insert your question here." 
       name="question" 
       rows="5" 
       cols="100"> 

     </textarea> 
    </fieldset> 
    <br> 
    <input type="submit" value="Submit" name="submit" id="submit"/> 
</form> 

cq Datei

<?php 
$ptitle = "Question Submitted";?> 
<?php require_once $_SERVER["DOCUMENT_ROOT"] . '/head.php'; ?> 
<?php require_once $_SERVER["DOCUMENT_ROOT"] . '/navigation.php'; ?> 
<?php 
$user_name = $_POST['user_name']; 
$email = $_POST['email']; 
$question = $_POST['question']; 

$query = "INSERT INTO cq (user_name, email, question) VALUES ('$user_name','$email','$question')"; 
?> 
<section class="content"> 
    <?php 

    echo ($user_name); 
    echo ($email); 
    echo ($question); 

    $result= mysqli_query($db_conn, $query); 
    if($result){ 
     echo ('Your question was successfully submitted. You should receive an email 
     response in 2-3 days'); 
    } 
    else{ 
     echo mysqli_error($db_conn) . '<br> Sorry, your question was not submitted. Please try again.'; 
    } 
    mysqli_close($db_conn); 
    ?> 
</section> 
<?php include ('footer.php');?> 
+3

Der Code ist auf SQL-Injektionen anfällig. Bitte lernen Sie, vorbereitete Aussagen zu verwenden. –

+0

Sie erhalten also nur 'Sorry, Ihre Frage wurde nicht gesendet. Bitte versuchen Sie es erneut.' – chris85

+0

Wenn Sie versuchen, diese genaue Abfrage direkt in mysql (mit Daten statt Variablen) auszuführen, funktioniert es? – kojow7

Antwort

1

Ich habe ähnliches Problem wieder in meinem Projekt. Versuchen Sie, die Verbindungsdatei direkt in cq.php aufzurufen, dann machen Sie Verbindungsvariable global.

Bitte schließen Sie hier Ihre Verbindungsdatei zur Überprüfung an.

<?php 
$ptitle = "Question Submitted";?> 
<?php require_once $_SERVER["DOCUMENT_ROOT"] . '/head.php'; ?> 
<?php require_once $_SERVER["DOCUMENT_ROOT"] . '/navigation.php'; ?> 
<?php 
$user_name = $_POST['user_name']; 
$email = $_POST['email']; 
$question = $_POST['question']; 

$query = "INSERT INTO cq (user_name,email,question) VALUES ('".$user_name."','".$email."','".$question."')"; 


require_once('your/path/connection_file_name.php'); 
global $db_conn; 
echo '<section class="content">'; 
$result= mysqli_query($db_conn, $query); 
    if($result){ 
     echo ('Your question was successfully submitted. You should receive an email 
     response in 2-3 days'); 
    } 
    else{ 
     echo mysqli_error($db_conn) . '<br> Sorry, your question was not submitted. Please try again.'; 
    } 
    mysqli_close($db_conn); 
    echo '</section>'; 
    ?> 
    <?php include ('footer.php');?> 

Versuchen in sonst nur für das Debuggen von

<?php if($result){ 
     echo ('Your question was successfully submitted. You should receive an email 
     response in 2-3 days'); 
    } 
    else{ 
     echo 'MySql Error:'.mysqli_error($connect); 
    } ?>