Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 如何通过在url中输入用户id(无密码)来允许访问用户定义的变量?_Php_Mysql_Variables - Fatal编程技术网

Php 如何通过在url中输入用户id(无密码)来允许访问用户定义的变量?

Php 如何通过在url中输入用户id(无密码)来允许访问用户定义的变量?,php,mysql,variables,Php,Mysql,Variables,我有一个需要登录的会员网站,会员在其中创建带有特定用户定义变量的网页,以输入数据,这些数据将显示给公众访问这些网页,每个网页都显示特定产品的信息 共有7个通用网页模板,所有成员都可以从中选择,以显示与他们、他们的公司和特定产品(七个模板之一)相关的自定义变量。他们在表单中输入自定义信息,然后表单将这些值放置在网页模板上的适当位置,供潜在客户稍后查看 <input name='first_name' value='first_name'> <input name='last_na

我有一个需要登录的会员网站,会员在其中创建带有特定用户定义变量的网页,以输入数据,这些数据将显示给公众访问这些网页,每个网页都显示特定产品的信息

共有7个通用网页模板,所有成员都可以从中选择,以显示与他们、他们的公司和特定产品(七个模板之一)相关的自定义变量。他们在表单中输入自定义信息,然后表单将这些值放置在网页模板上的适当位置,供潜在客户稍后查看

<input name='first_name' value='first_name'>
<input name='last_name' value='last_name'>
<input name='company_name' value='company_name'>
<input name='phone_number' value='phone_number'>
<input name='product_id' value='product_id'>
<input name='product_size' value='product_size'>
<input name='product_color' value='product_color'>
<input name='product_price' value='product_price'>

当使用URL中的用户id访问网页时,我需要能够访问与特定用户和用户提供的特定产品相关的这些变量的值,例如


现在,只有用户在登录时才可以访问这些值。任何访问特定url的人都可以访问这些值,用户的自定义值将显示其产品信息。

查询可能如下所示:

<?php
$db_connection = new mysqli('localhost', 'root', 'root', 'test');
if ($db_connection->connect_errno) {
   echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}


$user_id = $_GET['user_id']; // from url
$product_id = $_GET['product_id']; // from url
// Make sure $db_connection matched your database connect script! Other wise it will come up with "Fatal error: Call to a member function prepare() on a non-object" error.
if($stmt = $db_connection->prepare("SELECT first_name, last_name, company_name, phone_number, product_id, product_size, product_color, product_price FROM table_name WHERE user_id = ? AND product_id = ?")) {
        $stmt->bind_param("ii", $user_id, $product_id);
        $stmt->execute();
        $stmt->bind_result($first_name, $last_name, $company_name, $phone_number, $product_id, $product_size, $product_color, $product_price);
        $stmt->fetch();
        echo $first_name;
        $stmt->close();
}
?>

您可能还希望使用.htaccess文件重写URL。如果你想你的网址是漂亮的


希望这能有所帮助。

出于某种原因,除了以下几点,我什么都做不到。这可能是我页面上其余代码的构造方式。我不知道。但这就是我所做的工作。使用$row->variable\u名称而不是$variable\u名称有点痛苦。但它是有效的

$db_connection = new mysqli("", "", "");
if ($db_connection->connect_errno) {
   echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " .       $mysqli->connect_error;
}

$id = $_GET['user_id'];
$query = mysql_query("SELECT * FROM table_name WHERE id = '$id' LIMIT 1") or die(mysql_error()); 
$row = mysql_fetch_object($query);

echo " // HTML GOES HERE

  $row->first_name
  $row->last_name
  $row->company_name

 ";

您应该能够为用户id编写一个查询,以检索要在页面中显示的七个自定义字段。这些值是否与user_id一起存储在一个表中?是的,所有值都与user_id位于同一个表中的同一行。您能给我一个示例,说明我将在url中使用user_id作为唯一标识符访问的文件中包含的查询吗?我得到了
致命错误:调用成员函数prepare()在/localhost/domain/file.php中的非对象上
需要用表名替换表名??我现在正在一个页面上使用这段代码,我刚刚对它进行了测试。我刚刚编辑了这段代码,这正是我正在使用的有效代码。检查您的字段名是否与查询中的字段名匹配。以及您用于连接的内容是否与$db_连接变量匹配。您好,不建议使用mysql_u函数。您应该使用mysqli_u函数。另外,在我的回答中使用事先准备好的陈述也是一个好主意。此外,您的答案还可以使用SQL注入加以利用,因此您不应该在公共网站上使用此选项。这是一个安全缺陷,这就是为什么我建议使用预先准备好的语句。