在用户填写提交表单后将其重定向到他们的提交

Posted

技术标签:

【中文标题】在用户填写提交表单后将其重定向到他们的提交【英文标题】:Redirecting users to their submission after they fill out the submission form 【发布时间】:2011-12-09 04:29:43 【问题描述】:

我有一个图像提交表单,它只使用一个简单的 action="" 来访问一个 php 页面,该页面将提交详细信息添加到数据库并为提交创建一个独特的页面。这很好用。但是,我希望它重定向到他们的提交页面(使用 fwrite() 创建)我该怎么做?代码如下。

<?php
// For use in creating individual page
$tpl_file = "submission.php";
$tpl_path = "templates/";
$submissions_path = "submissions/";



// For use in querying submitter name

$username = $_GET['username'];
session_start();
$_SESSION['username'] = $username; 

//Database Information

   $dbhost = ""; 
   $dbname = ""; 
   $dbuser = ""; 
   $dbpass = ""; 

//Connect to database

mysql_connect ($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());


$name = $_GET['right_form_title'];
$filename = $_GET['right_form_url'];   
$submitter = $username;
$type = exif_imagetype($_GET['right_form_url']);

list($width, $height) = getimagesize($filename);

$query = "INSERT INTO images (name, filename, submitter, width, height, type)
VALUES('$name', '$filename', '$submitter', '$width', '$height', $type)";
mysql_query($query) or die(mysql_error());
mysql_close();

$php_file_name = $name.".php";
$path_for_link = $submissions_path.$php_file_name;


$tpl = file_get_contents($tpl_path.$tpl_file);
$tpl_and_values = preg_replace("(%([a-z_][a-z0-9_]*)%)ie",'$$1',$tpl);

$fh = fopen($submissions_path.$php_file_name, "w");
fwrite($fh, $tpl_and_values);
fclose($fh); 

?>

【问题讨论】:

【参考方案1】:

在关闭文件后添加它就可以了。

header('location: '.$submissions_path.$php_file_name);

【讨论】:

我收到以下错误:Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/lyons/public_html/uploadimages.php:1) in /home/lyons/public_html/uploadimages.php on line 12Warning: Cannot modify header information - headers already sent by (output started at /home/lyons/public_html/uploadimages.php:1) in /home/lyons/public_html/uploadimages.php on line 50。我认为这与我使用 $_SESSION 登录用户名有关,但我可能错了。 啊,是空格。感谢您的帮助!【参考方案2】:

我相信您需要做的就是在该文件的底部粘贴一个标题,该标题将重定向到新创建的文件。尝试将其添加到文件的底部。

header('Location: '.$submissions_path.$php_file_name);

【讨论】:

您好,感谢您的帮助。把它给了 MrTux 因为他是第一个但仍然被赞成。 :)

以上是关于在用户填写提交表单后将其重定向到他们的提交的主要内容,如果未能解决你的问题,请参考以下文章

将数据提交到 db 后将用户重定向到 PayPal

Django 会话表单(临时保存表单)

Ajax表单提交后如何将用户重定向到另一个页面

Ajax 表单提交后如何将用户重定向到另一个页面?

提交表单后重定向到另一个页面?

表单提交后PHP重定向到另一个页面