douji1999 2015-08-02 15:20
浏览 31
已采纳

PHP:数据添加到数据库后页面没有重定向[重复]

This question already has an answer here:

I wrote this code that adds data from a form to a database. That part works.

I am trying to redirect my page to completed.php after the data has been added sucessfully. Now it only adds data to my database table and nothing more.

This is my code:

<html>
<head>
<title>insert data in database using PDO(php data object)</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<div id="main">
<h1>Insert data into database using PDO</h1>
<div id="login">
<h2>Student's Form</h2>
<hr/>
    <form action="" method="post">
        <label>Student Name :</label>
        <input type="text" name="username" id="name" required="required" placeholder="Please Enter Name"/><br /><br />
        <label>Student Email :</label>
        <input type="email" name="email" id="email" required="required" placeholder="john123@gmail.com"/><br/><br />
        <input type="submit" value=" Submit " name="submit"/><br />
    </form>
</div>
</div>

<?php
if(isset($_POST["submit"])){

$hostname='localhost';
$username='adendud85_root';
$password='ayebruh';

try {
    $dbh = new PDO("mysql:host=$hostname;dbname=adendud85_aye",$username,$password);

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line

    $sql = "INSERT INTO aye (username, email)
    VALUES ('".$_POST["username"]."','".$_POST["email"]."')";

    if ($dbh->query($sql)) {
        //echo "Success";
        header("Location: completed.php?username=".$_POST["username"]."");
    }
    else{
        echo "error";
    }

    $dbh = null;

}


catch(PDOException $e)
    {
        echo "error";

    }

}


?>
</body>
</html>

Anyone knows what to do or what I did wrong?

</div>
  • 写回答

1条回答 默认 最新

  • dsgd5756 2015-08-02 15:34
    关注

    Tr this, all your echo statements should be after header.

        <?php
    if(isset($_POST["submit"])){
    
    $hostname='localhost';
    $username='adendud85_root';
    $password='ayebruh';
    
    try {
        $dbh = new PDO("mysql:host=$hostname;dbname=adendud85_aye",$username,$password);
    
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line
    
        $sql = "INSERT INTO aye (username, email)
        VALUES ('".$_POST["username"]."','".$_POST["email"]."')";
    
        if ($dbh->query($sql)) 
        {
            header("Location: completed.php?username=".$_POST["username"]);
            //echo "Success";
        }
        else{
            echo "error";
        }
    
        $dbh = null;
    
    }
    
    
    catch(PDOException $e)
        {
            echo "error";
    
        }
    
    }
    
    
    ?>
    
    <html>
    <head>
    <title>insert data in database using PDO(php data object)</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    
    <div id="main">
    <h1>Insert data into database using PDO</h1>
    <div id="login">
    <h2>Student's Form</h2>
    <hr/>
        <form action="" method="post">
            <label>Student Name :</label>
            <input type="text" name="username" id="name" required="required" placeholder="Please Enter Name"/><br /><br />
            <label>Student Email :</label>
            <input type="email" name="email" id="email" required="required" placeholder="john123@gmail.com"/><br/><br />
            <input type="submit" value=" Submit " name="submit"/><br />
        </form>
    </div>
    </div>
    
    
    </body>
    </html>
    

    Also, use prepared statements.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请问为什么我配置IPsec后PC1 ping不通 PC2,抓包出来数据包也并没有被加密
  • ¥200 求博主教我搞定neo4j简易问答系统,有偿
  • ¥15 nginx的使用与作用
  • ¥100 关于#VijeoCitect#的问题,如何解决?(标签-ar|关键词-数据类型)
  • ¥15 一个矿井排水监控系统的plc梯形图,求各程序段都是什么意思
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要