2017-02-08 4 views
2

Я новичок в PHP, и я просто делаю простую веб-страницу формы ввода. проблема в том, что после того, как веб-сайт отправки отправится на пустую страницу, я хочу, чтобы он вернулся к исходному. Я прочитал здесь, что мне может помочь, добавив header() в мой код, но это не поможет. Вот мой код:Как вернуться на страницу после отправки формы с помощью PHP

<!DOCTYPE html> 
<html> 
<head> 
    <title> Sample Form </title> 
    <link href = "stl.css" rel = "stylesheet" type="text/css" /> 
</head> 
<body> 

<form method="post" action="connect.php"> 
    <input class = "PaganForm" id = "name" type="text" name="name" value=""> 
    <input class = "PaganForm" id = "img" type="text" name="img" value=""> 
    <input class = "PaganForm" id = "dsc" type="text" name="dsc" value=""> 
    <input type="submit" id = "SubmitButton" > 
</form> 
<?php 
    header("Location: http://localhost/simple-form.php"); 
    exit; 
    $servername = 'localhost'; 
    $username = 'root'; 
    $password = ''; 
    $database = 'cero_db'; 
    $conn = new mysqli($servername, $username, $password,$database); 

    $sql = "SELECT * FROM pg"; 
    $result = $conn->query($sql); 
    while($row = $result->fetch_assoc()) { 
     $newName = $row['Name']; 
     $newLink = $row['Link']; 
     $newDsc = $row['Description']; 

     echo "<h1>".$newName."</h1>"; 
     echo "<img src = \"".$newLink."\" />"; 
     echo "<p>".$newDsc."</p>"; 
    } 

?> 
<body> 
</html> 

Вот connect.php:

<?php 
$name = $_POST["name"]; 
$lnk = $_POST["img"]; 
$dsc = $_POST["dsc"]; 

$servername = 'localhost'; 
$username = 'root'; 
$password = ''; 
$database = 'cero_db'; 



$conn = new mysqli($servername, $username, $password,$database); 



$sql = "INSERT INTO pg (Name, Link, Description) 
     VALUES ('".$name."', '".$lnk."', '".$dsc."')"; 
$conn->query($sql); 

?> 

Любые предложения?

P.S. Я не мог найти вопросов, которые помогли мне, если это дубликат, просто свяжите оригинал, и я удалю это.

+3

'Header()' должен быть добавлен __after__ код отправки. –

+1

Проблема заключается в том, что функция header() после некоторого html. Вы не можете использовать заголовок после того, как вы что-то выдали. Вам нужно найти способ поместить заголовок полностью или использовать буферизацию вывода. Это широко обсуждается на SO –

+0

Измените 'action =" connect.php "' на 'action =" simple-form.php "', потому что вы обрабатываете значения формы на самой странице, на которой вы разместили форму – elementzero23

ответ

1

Попробуйте

header("Location: simple-form.php"); 

Вы должны добавить это в connect.php, потому что ваш представить кнопки в форме направит вас к connect.php.

Ваш connect.php должен выглядеть следующим образом: 3

<?php 
    $name = $_POST["name"]; 
    $lnk = $_POST["img"]; 
    $dsc = $_POST["dsc"]; 

    $servername = 'localhost'; 
    $username = 'root'; 
    $password = ''; 
    $database = 'cero_db'; 

    $conn = new mysqli($servername, $username, $password,$database); 



    $sql = "INSERT INTO pg (Name, Link, Description) 
      VALUES ('".$name."', '".$lnk."', '".$dsc."')"; 
    $conn->query($sql); 

    header("Location: simple-form.php"); 
?> 
0

Я буду писать здесь, прежде чем он забиваются под комментариями:

вам необходимо переместить функцию заголовка выше всего, что будет отправлен в браузер. Поскольку вы отправляете некоторый html перед вызовом заголовка, заголовки уже отправляются с вашим html-кодом. прочитать об этом http://php.net/manual/en/function.header.php широко спросил на SO, а также поиск заголовка PHP перенаправление

Поэтому вам нужно обработать форму beofre послать любой выход или использовать буферизацию вывода. Я рекомендую вам зарегистрироваться http://php.net/manual/en/function.ob-start.php

Вы также можете использовать javascript, чтобы отправить вас в нужное место.

0

Пример пример кода ...

простого form.php

<!DOCTYPE html> 
<html> 
    <head> 
     <title> Sample Form </title> 
     <link href = "stl.css" rel = "stylesheet" type="text/css" /> 
    </head> 

    <body> 
     <form method="post" action="connect.php"> 
      <input class = "PaganForm" id = "name" type="text" name="name" value=""> 
      <input class = "PaganForm" id = "img" type="text" name="img" value=""> 
      <input class = "PaganForm" id = "dsc" type="text" name="dsc" value=""> 
      <input type="submit" id = "SubmitButton" > 
     </form> 
    <body> 
</html> 

подключение. php

<?php 
    $servername = 'localhost'; 
    $username = 'root'; 
    $password = ''; 
    $database = 'cero_db'; 
    $conn = new mysqli($servername, $username, $password,$database); 

    $sql = "SELECT * FROM pg"; 
    $result = $conn->query($sql); 
    while($row = $result->fetch_assoc()) { 
     $newName = $row['Name']; 
     $newLink = $row['Link']; 
     $newDsc = $row['Description']; 

     echo "<h1>".$newName."</h1>"; 
     echo "<img src = \"".$newLink."\" />"; 
     echo "<p>".$newDsc."</p>"; 
    } 

    header("Location: simple-form.php"); 
    exit; 
?> 
Смежные вопросы