【问题标题】:Match single posted data with two column is mysql用两列匹配单个发布的数据是mysql
【发布时间】:2016-04-12 01:52:30
【问题描述】:

我有一个登录表单,如果用户电子邮件密码和 2 pic 正确然后回显登录,但问题是我的电子邮件匹配密码匹配但我如何将图像与单个 [选择 html 标签] 匹配。这是我的 html 表单....

<select name="image" multiple="multiple">
  <?php 
  for($i=0;$i<5;$i++)
   echo"<option  data-img-src=\"$pic[$i]\" value=\"$pic[$i]\" ></option>";
    ?>
  </select>

mysql 查询在这里.......

$mysql=mysql_query("SELECT * FROM `table` WHERE `email`='$email' AND `password`='$pass' AND `image1`='$image' AND `image2`='$image'") or die(mysql_error());

if(mysql_num_rows($mysql) ==1){
    $_SESSION['user']= $email;
    header("location: home.php");               
    } else {
    echo "error";
    session_destroy();
}

如果两个图像都匹配,则他成功登录,否则不是

【问题讨论】:

标签: php mysql


【解决方案1】:

我们的想法是,每个“图像”都与您的代码和/或数据库中的一个 ID 相关联。 当一个人选择一张图片时,他们实际上是在选择该图片所代表的 ID。

用户,设置他们的个人资料,经历一个类似的过程,选择一个图像(将图像的 ID 保存在他们的用户行中)。

在登录的时候,只是一个简单的例子,将选择的图像的ID与存储在用户行中的ID进行比较。

这是 BASIC 前提,不涉及此功能的安全方面。

我还看到您的 HTML 支持用户能够选择多个图像(尽管您在 SQL 查询中最多只能使用/引用两个图像)。与选择单个图像相比,它的实现没有太大变化,所以这个答案仍然适用。

【讨论】:

    【解决方案2】:

    (请原谅我的术语) 正如 Sean 的回答所暗示的,每张图片都应该与一个 id 相关联。

    在注册过程中,在将值插入数据库之前,您可以生成一个随机数并将图像重命名为该生成的数字并将该数字添加到数据库中。 文件结构是这样的

    用户/图像/random_id.jpeg

    我将如何进行登录过程,

    在更改输入时,我将执行 ajax 请求以获取与用户的电子邮件或用户名关联的唯一 ID,以及与该 ID 关联的图像和其他四个随机图像。

    那么剩下的就很简单了,用户会选择一张图片。我们当然会将其唯一标识符与数据库中存在的标识符进行匹配。

    如果匹配,请登录。

    这只是合乎逻辑的方法。

    除非这是一个学习练习,否则请切换到准备好的语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多