Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何输入数据和使用get变量_Php_Mysql_Post - Fatal编程技术网

Php 如何输入数据和使用get变量

Php 如何输入数据和使用get变量,php,mysql,post,Php,Mysql,Post,我正在尝试编写一个页面,允许用户键入帖子,并在提交时打开一个包含帖子的新页面。这意味着文章必须先输入数据库,然后才能在另一个页面上检索。这类似于有人就stackoverflow提出问题。问题出现在一个新页面上,该页面被赋予一个唯一id,但我希望这个唯一id位于get变量中 当前页面的HTML(ask.php): 询问_action.php: <?php header("Location: http://localhost/biology/question.php?q=$id"); ?&g

我正在尝试编写一个页面,允许用户键入帖子,并在提交时打开一个包含帖子的新页面。这意味着文章必须先输入数据库,然后才能在另一个页面上检索。这类似于有人就stackoverflow提出问题。问题出现在一个新页面上,该页面被赋予一个唯一id,但我希望这个唯一id位于get变量中

当前页面的HTML(ask.php):

询问_action.php:

 <?php header("Location: http://localhost/biology/question.php?q=$id"); ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>


</head>
<body>

<?php
include '../connect.php';
    if (isset($_POST['questionSubmit'])){

    $question=mysql_real_escape_string($_POST['question']);
    $detail=mysql_real_escape_string($_POST['detail']);
    $date=date("d M Y");
    $time=time();
    $user=$_SESSION['id'];
    $put=mysql_query("INSERT INTO questions VALUES ('','$question','$detail','$date','$time','$user','biology','0')");

    $id=mysql_insert_id();

    }
?>


</body>
</html>


你这里有一些问题。首先,您需要使用类似于
mysql\u escape\u字符串($\u POST)
的东西来合成传入代码。您还需要命名您的文本字段,目前您正试图根据ID提取它,但这不会起作用

将:
更改为

你点的菜也倒了。如果不使用AJAX,最好的方法是在页面顶部使用PHP加载帖子和id,然后在生成的页面上实际写入数据库。

在“提交”页面上,需要让PHP代码插入数据库,然后使用PHP检索新帖子的id。然后,该页面可以使用刚刚检索到的ID作为GET参数将用户重定向到相应的页面(使用函数)

如果您不希望“询问”页面与查看文章的页面位于同一页面上,可以将其拆分为三个页面

第1页: 带有表单的页面,人们在其中撰写文章并提交。第2页将在表单的动作部分

第2页: 检索POST数据的页面。在这里,您将验证所有信息并将其提交到数据库。然后检索插入id并将用户重定向到要显示结果的页面。在重定向中使用insert查询中的id

第3页: 用户在其中查看提交的信息

我注意到你尝试过这种方法,但是你有一些错误需要纠正。首先,您的ask.php页面需要改进

在POST in方法之前缺少一个撇号('),您的操作需要更正。请记住,表单操作应该转到验证和处理表单数据的页面。在本例中,它将是*ask_action.php*页面。因此,ask.php页面应如下所示:

<form method='POST' action='ask_action.php'>
<input type='text' name='question' />
<input type='text' name='detail' />
<input type='submit'> value='submit' name='submit' />
</form>

value='submit'name='submit'/>
*ask_action.php*将处理数据、验证数据并重定向到查看数据的页面。验证它的页面上不需要html

<?php
include('../connect.php'); // your database connection etc.

if(isset($_POST['submit'])) { // only react if the submit button is pressed
    $question = mysql_real_escape_string($_POST['question']);
    $detail = mysql_real_escape_string($_POST['detail']);
    $date = date("d M Y");
    $time = time();
    $user = $_SESSION['id'];

    mysql_query("INSERT INTO questions VALUES('', '$question', '$date', '$time', '$user', 'biology', 0)");

    $id = mysql_insert_id();
    header("Location: view_page.php?id=$id");
} else { 
    echo "Nothing submitted.";
}
?>

这里的第一个问题是您的开始表单标签。应改为:

<form method='post' action='ask.php?q=<?php echo $id ?>'>
<input type='text' name='post' id='post' />

此标题看起来像什么?我更新了我的原始问题,以显示包含标题的ask_action.php文件。重定向时,get变量为空
<form method='post' action='ask.php?q=<?php echo $id ?>'>
<form method='post' action='ask.php?q=<?= $id ?>'>
<input type='text' name='post' id='post' />