第一次单击后,单击按钮上的AJAX函数未运行PHP - php

我在按钮上具有以下功能:

$(function() {
    $("#submit").click(function(){
        $.ajaxSetup({ cache: false });
        $.ajax({
        url:'crfile.php',
        type:'GET',
    });
};

它调用以下PHP文件:

if (session_status() == PHP_SESSION_ACTIVE){
    session_destroy();
}
session_start();

$extension = ".txt";
$_SESSION['fname'] = substr(md5(rand()), 0, 7).$extension;
fopen("temp/" . $_SESSION['fname'], 'w');
$fname = $_SESSION['fname'];

它在temp /文件夹中创建一个具有随机名称的文件。两者都正常工作,除非我第二次单击#submit按钮而不重新加载页面。它会重新运行该函数,但是不会在PHP脚本中生成新的文件名。

我以为是缓存或会话,但是事实并非如此。我正在使用PHP 5.5。

有人可以请教吗?

参考方案

首先,您需要检查ajax函数。尝试使用方法“ post”,或对代码使用on('click',function(){.....})。

其次,您需要确保ajax函数确实有效。
使用“打印”和“退出”进行调试。

if (session_status() == PHP_SESSION_ACTIVE){
    session_destroy();
}
session_start();

$extension = ".txt";
$_SESSION['fname'] = substr(md5(rand()), 0, 7).$extension;
//debugging command
print  $_SESSION['fname'];
print  'see this?';
exit;


fopen("temp/" . $_SESSION['fname'], 'w');
$fname = $_SESSION['fname'];

这样,您将知道您的ajax是否有效。您可以在上述代码的末尾使用debug命令。

尝试这些代码,如果需要更多帮助,请告诉我。

php session header()重定向后丢失 - php

这是我第一次尝试创建会话。另外,成功登录后,我使用header()函数重定向页面,但是在重定向的页面上,我不再有会话。有代码:建立工作阶段:function userLogin($user){ session_start(); $_SESSION['username'] = $user; header("Location: /~…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…

PHP Memcached会话突然失效 - php

session.save_handler = memcached session.save_path = "127.0.0.1:11211" session.gc_maxlifetime = 86400 其余的标准。我希望自上次用户访问该页面以来,该会话至少可以保留86400秒,即,如果我在5分钟后启动了一个会话并访问了该页面,则该会话应…