【问题标题】:submit a $_GET variable as a submit button is clicked在单击提交按钮时提交 $_GET 变量
【发布时间】:2012-04-30 19:03:55
【问题描述】:

我正在尝试将包含用户 ID 的变量发送到另一个页面。

第一页是用户输入详细信息的表单页面,一旦单击提交按钮,详细信息就会输入到表格中,

接下来,第一页重定向到要求用户上传其显示图片的页面,并存储该图片的路径,我需要该页面上的 id,即图像上传页面上。

谁能告诉我如何才能做到这一点?

【问题讨论】:

  • 或者会话变量?

标签: mysql variables button get submit


【解决方案1】:

我突然想到,您实际上可能会问如何从您通过 mysql 添加的最近插入的照片中获取最后插入的 id。在这种情况下,您可以使用

$lastId = mysql_insert_id ($yourConnection); 

(详情请见http://php.net/manual/en/function.mysql-insert-id.php
(如果你使用 mysqli http://www.php.net/manual/en/mysqli.insert-id.php

查找 id。在插入之后和关闭连接之前执行此操作。然后在重定向时传递 id:

header('Location: yournextpage.php?id=' . $lastId);

id 将作为 GET 变量提供:$_GET['id']

或者,如果您问如何从表单中获取 id(假设是 PHP),请执行以下操作:

<form method="get" action="yournextpage.php">
    <input type="text" name="id">User ID here</input>
    <input type="submit" value="Continue"></input>
</form>

第一个输入框的值将存储为 $_GET['id'] 或任何您拥有的 'name' 属性。

【讨论】:

  • 对不起,我忘记了那部分,但是是的,那是 PHP
  • 让我们假设一个用户正在注册,同时在其他地方有另一个用户在前一个用户之前完成了他的注册过程,在这种情况下,最后一个 id 将被给出先完成注册的用户是错误的
  • mysql_insert_id 函数基于每个连接。您将为该其他用户创建一个新连接,因此不会产生竞争条件。
  • 我不是怀疑你,但你确定不会有这种可能性吗?
  • "mysql_insert_id() 的值仅受当前客户端连接中发出的语句影响。不受其他客户端发出的语句的影响。" dev.mysql.com/doc/refman/5.1/en/mysql-insert-id.html
【解决方案2】:

传统上,当您重定向到第二个页面时,您会在 URL 上传递 ID。所以,而不是这个为你的重定向:

header('Location: /upload-image.php', TRUE, 303);

你这样做(其中 $id 是当前表单的 ID):

header("Location: /upload-image.php?id=$id", TRUE, 303);

在上传图片页面上,您只需使用$_GET['id'] 阅读即可。

【讨论】:

  • 我正在使用此命令重定向到图片上传页面,是否可以更改,例如在下一页我可以使用 GET 或类似的方法检索 id?
  • @user1216752,完全正确。您在重定向 URL 中设置它,您可以在下一页使用$_GET 检索它。如果这是一个用户 ID,请忘记我所说的一切。它应该存储在会话中。您不能相信用户会为您提供正确的用户 ID。所有安全性都取决于仅对登录用户的数据应用更新。
  • 该死!我忘了告诉你我使用的是哪个命令:window.location = "../cropupload/jquery_upload_cropv1.2/upload_dp.php";
【解决方案3】:

传统上 $_POST 用于此目的,但如果您想使用 $_GET 您可以更改表单方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多