在我的项目中,我有一个文本编辑器,并有一个图像上传规范,它将根据$_SESSION['imagesID']和$_SESSION['userID']上传图片,完成后,它将在我的编辑器iframe中显示该图片。
注意:对于上传图片,我使用了弹出窗口和另一个php文件,如uploader.hp.
在我尝试为文本编辑器添加预览部分之前,每个ting都运行良好。然后我一个接一个地检查我的预览代码,我发现了问题。它只是#,在img标签src="#"中。它导致我的uploader.php中的$_SESSION['imageID']值与texteditor.php中的不同。
导致此问题的原因代码如下:
texteditor.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
从上传.php
Image ID :O5cg7Ro0vo882FP
注:rast();给了我从a到z,从a到z,从0到9和日期的随机15个租船合同。
问题是,当我在img标记中使用"#"this时,为什么我的$_SESSION['imageID']在我的uploader.php中导致的值与texteditor.php中的值不同,比如<img src="#"/>那个?
经过一番折腾,我终于弄明白了。
当您将图像的源设置为#
时,浏览器会将其转换为http://www.somesite.com/texteditor.php#
- 这样,如果您编写了
#content
,浏览器就会滚动到id为content
的元素
在浏览器转换了src
标记之后,它会尝试加载页面http://www.somesite.com/texteditor.php#
,因为它认为它将接收图像。
因此,浏览器加载页面两次,rast()
函数调用两次。