2016-02-14 5 views
3

Я создал Simple Html-форму под названием new.html, которая на Submission вызывает страницу data.php, , где я вставляю данные формы в свою базу данных. Оба файла new.html и data.php находятся в одной папке.Перенаправление страницы (PHP, HTML)

Что я хочу сделать, это перенаправить обратно с data.php обратно на new.html. Я знаю, что есть такие методы, как -

<meta http-equiv="refresh" content="0;URL=http://www.example.com" /> 

или

header("Location: http://www.yourwebsite.com/user.php"); 

или

window.location 

Но я не получаю четкое представление о том, где именно поставить эти строки кода. Может кто-нибудь, пожалуйста, отредактируйте мой код, чтобы предоставить мне необходимую функциональность. Вот мой код-

<?php 
    $name = $_REQUEST['name']; 
    $contact = $_REQUEST['contact']; 
    $email = $_REQUEST['email']; 

    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "mydb"; 

    $conn = mysqli_connect($servername,$username,$password,$dbname); 

    $sql = "INSERT INTO candidates(

    full_name, 
    contact, 
    email) 
    VALUES(
    '$name', 
    '$contact', 
    '$email')"; 

    if (mysqli_query($conn, $sql)) 
    { 
     echo "New record created successfully"; 
    } 
    else 
    { 
     echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
    } 

    $conn->close(); 
?> 
+0

** alternatve **: Вставьте скрытый тег в исходный HTML-страницы (например, ) вместо сообщения о состоянии. Этот html-файл может быть запрошен ** напрямую **, но также может использоваться как ** шаблон ** для добавления сообщения о реальном статусе. ** Перепрограммирование не требуется **, так как страница будет обновлена ​​скриптом автоматически. Если вас это интересует, сообщите мне. – hherger

ответ

3

, чтобы вы начали в правильном направлении:

if (mysqli_query($conn, $sql)) 
{ 
    header("Location: new.html"); 
    die(); 
} 
1

При написании редирект заголовка, (или любой заголовок для этого вещества) оно должно быть первым содержание должны быть записаны на этой странице.

Таким образом, вам нужно поместить его перед любыми другими инструкциями эха и перед любым содержимым HTML.

https://secure.php.net/manual/en/function.header.php

Обратите внимание, что это приведет к ошибке:

<html> 
<?php 
header('Location: http://www.example.com/'); 
exit; 
?> 

Но это не будет:

<?php 
header('Location: http://www.example.com/'); 
exit; 
?> 
<html> 

"мета обновления" перенаправление должно быть расположено в <head> секции ваш документ.

Переадресация javascript может быть расположена в любом месте страницы, но имейте в виду, что переадресация javascript ниже на странице может создавать вспышки содержимого, которые вы, возможно, не хотите видеть посетителю. Переадресация Javascript имеет больше смысла в приложениях javascript, где перенаправление является ответом на действие пользователя на странице.

0
<?php 
$name = $_REQUEST['name']; 
$contact = $_REQUEST['contact']; 
$email = $_REQUEST['email']; 

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "mydb"; 

$conn = mysqli_connect($servername,$username,$password,$dbname); 

$sql = "INSERT INTO candidates(

full_name, 
contact, 
email) 
VALUES(
'$name', 
'$contact', 
'$email')"; 

if (mysqli_query($conn, $sql)) 
{ 
    $msg= "New record created successfully"; 
} 
else 
{ 
    $msg= "Error: " . $sql . "<br>" . mysqli_error($conn); 
}//add message to url if desired` 

$conn->close(); 
header("Location: new.html");?> 
+0

это не сработает, так как есть выход, начинающийся с 'echo' перед' header' – bansi

+0

@ bansi- Я думаю, что он получает идею. Теперь можно работать – MichaelG

Смежные вопросы