【问题标题】:Random php session causes different value when i use # this in img tag like <img src="#">当我在像 <img src="#"> 这样的 img 标签中使用 # this 时,随机 php 会话会导致不同的值
【发布时间】:2016-02-08 02:34:21
【问题描述】:

在我的项目中,我有一个文本编辑器,并且有一个图片上传规范,它将根据 $_SESSION['imageID'] 和 $_SESSION['userID'] 上传图片,完成后它将在我的编辑器 iframe。

注意:对于上传图片,我使用了弹出窗口和另一个 php 文件,如 uploader.php。

在我尝试为我的文本编辑器添加预览部分之前,每次都运行良好。然后我一一检查我的预览代码,我发现了问题。它只是 #,在 img 标签 src="#" 中。这会导致我的 uploader.php 中的值 $_SESSION['imageID'] 与 texteditor.php 不同。

只是导致这个问题的代码如下:

文本编辑器.php

<?php
session_start();
include 'function.php';
$_SESSION['imageID']=rast(); 
echo "Image ID :".$_SESSION['imageID'];?>
<img class="preview_image" src="#"/>

上传.php

<?php
session_start();
echo "Image ID :".$_SESSION['imageID'];
?>

例如这样的输出:

来自 texteditor.php

Image ID :vKF8Ro6hI2VpyYX

来自upload.php

Image ID :O5cg7Ro0vo882FP 

注意:rast();给我随机的 15 个包机,从 a 到 z、A 到 Z、0 到 9 和日期。

问题是为什么我的 $_SESSION['imageID'] 在我的 uploader.php 中导致与 texteditor.php 中的值不同,当我在 img 标签中使用“#”时,例如 that?

【问题讨论】:

  • 我很确定你必须像这样开始会话:session_start();
  • 还是一样,只是我忘了这里加起来
  • 为什么php $_SESSION['imageID']=rast(); 这一行以php开头?顺便说一句,在此过程中是否会重新加载 texteditor.php?
  • 抱歉编辑不好:(。还是一样
  • 我刚刚使用了 substr(str_shuffle("a to z, A to Z, 0 to 9 to 9 and date"), 0, "15");在我的 rast();函数,我尝试了 rand(); ,它会导致同样的问题。

标签: php html session


【解决方案1】:

折腾了一阵子,终于搞明白了。

当您将图像的来源设置为# 时,浏览器会将其转换为http://www.somesite.com/texteditor.php#

  • 这样如果你写#content,浏览器会滚动到id为content的元素

浏览器转换src标签后,会尝试加载页面http://www.somesite.com/texteditor.php#,因为它认为会收到一张图片。

因此,您的浏览器会加载页面两次,并且您的 rast() 函数会被调用两次。

【讨论】:

    猜你喜欢
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2020-07-21
    • 2016-06-09
    相关资源
    最近更新 更多