2017-04-01 54 views
-2

我已经联系了......本应该将用户重定向到“谢谢”页面,一旦提交了相同的详细信息;然而,在提交..用户没有被引导到“谢谢你”页面。你能找出错误吗?我会非常感激..非常感谢你!当我提交我的联系表时

<?php 
include("company_profile/lib/data.config.php"); 
$btnsubmit =isset($_POST['btnsubmit'])?$_POST['btnsubmit']:''; 
if(isset($_POST['btnsubmit'])) 
{ 
$name = $_POST['name']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$cource = $_POST['cource']; 
$message = $_POST['message']; 
$created_date = date('Y-m-d'); 
$time = date('H:i:s'); 
$q="Insert INTO enquiry_form SET name='$name',email='$email', 
contact='$phone',message='$message',cource='$cource', 
created_date='$created_date',etime='$time'"; 

    $r = mysqli_query($conn,$q); 

    if($r) 
    { 
    //echo "Thankyou for Inquery"; 
    header("location:thanks.php"); 
    //echo "<script>alert('Message Send')</script>"; 



    }else 
    { 
    echo "there was a problem"; 
    } 

    } 

    ?> 
+0

查询syntaxe pb ...并看看SQL注入... https://phpdelusions.net/sql_injection – Incognito

+0

有一件事'$ btnsubmit = isset($ _ POST ['btnsubmit'])?$ _ POST [ 'btnSubmit按钮']: '';如果(isset($ _ POST ['btnsubmit']))'你不应该这样做,第二;哪里的html表单呢? –

+0

你对SQL注入攻击很有信心,如果你还没有,你会被黑客攻击**。不要将任意数据直接连接到查询中。使用PDO或类似的绑定参数。 – Brad

回答

1

你试试下面

 INSERT INTO enquiry_form(name,email,contact,message,courece,created_date,etime) VALUES (?,?,?,?,?,?,?) 
if($stmt=$conn->prepare($q){ 
$stmt->bind_param('/dependent your datatype',$name,$email,$contact,...); 
$stmt->execute(); 
echo "<script> 
window.location.href='thank.php'; 
alert('Thank you'); 
</script>" 

SQL; }

+0

我的代码工作正常值成功保存在数据库,但页面不重定向 –

+0

您可以尝试'' – Akashii

+0

'我等一下,我编辑评论,并帮助您避免SQL注入 – Akashii

0

尝试此操作检查最后插入的ID,然后它会将您重定向到您的目标脚本。并请张贴您的HTML表单。也许在那里也是错误的。这必须工作100%。

PHP代码中接触page.php文件

<?php 

include("company_profile/lib/data.config.php"); 

if(isset($_POST['btnsubmit'])) 
{ 
    $name = mysqli_real_escape_string($conn, $_POST['name']); 
    $email = mysqli_real_escape_string($conn, $_POST['email']); 
    $phone = mysqli_real_escape_string($conn, $_POST['phone']); 
    $cource = mysqli_real_escape_string($conn, $_POST['cource']); 
    $message = mysqli_real_escape_string($conn, $_POST['message']); 
    $created_date = date('Y-m-d'); 
    $time = date('H:i:s'); 

    $q = "INSERT INTO enquiry_form (name, email, contact, message, cource, created_date, etime) VALUES ('$name', '$email', '$phone', '$message', '$cource', '$created_date', '$time')"; 

    $r = mysqli_query($conn, $q); 

    // if is returned last inserted id 
    if(mysqli_insert_id($conn)) 
    { 
     header("location:thanks.php"); 
    } 
    else 
    { 
     echo "there was a problem"; 
    } 

} 

?> 

HTML表单中接触page.php文件再次

<form action="contact-page.php" method="POST"> 
    <label>Name</label><br> 
    <input type="text" name="name" required /><br> 
    <label>Subject</label><br> 
    <input type="text" name="cource" required /><br> 
    <label>Email</label><br> 
    <input type="text" name="email" pattern="[^ @]*@[^ @]*" required /><br> 
    <label>Phone</label><br> 
    <input type="tel" name="phone" maxlength="10" pattern="[0-9]{10,11}" pattern="[0-9]{10}" required /><br> 
    <label>Message</label><br> 
    <textarea cols="46" rows="3" name="message" required></textarea><br> 
    <input class="button" type="submit" value="Sumbit" name="btnsubmit" /> 
</form> 
+0

@arifkhan试试这个代码,你会看到它的工作 – Mario

+0

ys马里奥我的权利,我将不得不mantion行动=“contact-page.php”然后每件事情工作很好,谢谢很多马里奥和saeed谁保存我的工作 –

0

使用PDO和过滤你的要求

<?php 
include("company_profile/lib/data.config.php"); 
$btnsubmit =isset($_POST['btnsubmit'])?$_POST['btnsubmit']:''; 
if ($_SERVER['REQUEST_METHOD'] == 'POST'){ 
if(isset($_POST['btnsubmit'])) 
{ 
$name = $_POST['name']; // filter string number encode ...... 
$email = $_POST['email']; // filter string number encode ...... 
$phone = $_POST['phone']; // filter string number encode ...... 
$cource = $_POST['cource']; // filter string number encode ...... 
$message = $_POST['message']; // filter string number encode ...... 
$created_date = date('Y-m-d'); // filter string number encode ...... 
// we are in 2017 use pdo 
$pdo = $con->prepare("Insert INTO enquiry_form SET name= :name,email=:email,contact=:phone,message=:message,cource=:cource,created_date= now()"); 
$pdo->execute(array('name' => $name,'email' => $email, 'phone' => $phone, 'message' => $message, 'cource' => $cource)); 
    if($pdo) 
    { 
    //echo "Thankyou for Inquery"; 
    header("location:thanks.php"); 
    //echo "<script>alert('Message Send')</script>"; 



    }else 
    { 
    echo "there was a problem"; 
    } 

    } 
} 
?>` 
+0

看到我想告诉你我的代码条件,我有一个三个文件的第一个文件名是contact-us.php,第二个文件是contact-page .php,第三个文件名是thanks.php,并且在contact-us.php中包含contact-page.php文件,我确实分享了我的contact-page.php文件.and一个为我已经给予的行动=“thanks.php”在contact-page.php –

-1

在PHP中,你需要写ob_start();在你的代码的开始,让你的头缓冲。您可以在ob_start:What's the use of ob_start() in php?的重要性中查看此前的帖子,或查看php手册:http://php.net/manual/en/function.ob-start.php

如果您没有该代码的瑕疵,那么您的标题将无法使用。

+0

可以编辑相同的代码,无论你说我请在我的办公室 –

+0

我没有。尝试添加ob_start();在<?php之后,看看它是否有帮助。我应该提到,这将帮助您重定向问题,但不一定是您的数据库问题。 –

+0

它不工作 –