小编jov*_*van的帖子

AJAX调用没有明显原因破坏会话

我知道它看起来像一个平庸的问题,但请阅读整个事情,我很难过.

我的一个页面上有一个AJAX调用,它是一个动态消息传递系统:

function validateMessage(){

  var recipient = document.getElementById("send_to").value;
  var subject = document.getElementById("popup_subject").value;
  var message = document.getElementById("popup_message").value;

  var parameters="message="+message+"&recipient="+recipient+"&subject="+subject;

   if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
   }
   else
   {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }

   xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("error_mess").innerHTML = xmlhttp.responseText;
    }
  }

  xmlhttp.open("POST","include/send_message.php",false);
  xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
  xmlhttp.send(parameters);

  }
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它被实现为同步,这不是问题所在.我尝试切换到异步,问题仍然存在.

这是send_message.php文件,它只是抓取POST变量并将它们保存到数据库中:

<?php
session_start();
include('db.php');
dbConnect();

$message=$_POST['message'];
$subject=$_POST['subject'];
$recipient=$_POST['recipient'];

$result=mysql_query("select * from korisnici where username='$recipient' ") or die(mysql_error());
$row=mysql_fetch_array($result);
$num=mysql_num_rows($result);

if($recipient=="Poruka za..." || …
Run Code Online (Sandbox Code Playgroud)

javascript php ajax session

6
推荐指数
1
解决办法
1183
查看次数

PHP Composer找不到我的项目的composer.json文件

我已经使用他们的安装指南在我的Linux/Apache服务器上的根目录(这是默认选项)中成功安装了Composer.到目前为止,这一切都非常简单,除了一个php.ini调整我必须做(detect_unicode = Off)但现在我被卡住了.

我正在尝试使用Composer安装Ratchet,并使用本指南:

http://socketo.me/docs/install

它说我需要" 在你的项目文件夹中创建一个名为composer.json的文件 ".所以我在我的应用程序的根目录中使用cPanel文件管理器创建了该文件(包含他们在页面上提供的内容).但是,当我运行Composer时:

php composer.phar install
Run Code Online (Sandbox Code Playgroud)

PuTTy给出以下错误消息:

Composer could not find a composer.json file in /root
To initialize a project, please create a composer.json file as described in the http://getcomposer.org/ "Getting Started" section
Run Code Online (Sandbox Code Playgroud)

但这似乎没有意义,如果文档说将JSON文件放在项目文件夹中,为什么我会将JSON文件放在服务器的根目录中呢?我错过了什么?

composer-php

6
推荐指数
2
解决办法
3万
查看次数

如何从包含数据库查询的Node.js函数返回值

我正在学习Node.js,我刚刚开始使用一些MySQL连接.我有一个函数,它应该从数据库中获取一组行,它正确地执行.但是,我不知道如何在之后返回那组行.我尝试了两个选项(在下面的代码段中的注释中都有解释).

function fetchGameList(){
    var ret = 0;

    connection.query("SELECT * from tbl", function(err, rows, fields) {
        //some stuff happens here, and 'ret' is set to a vlue, for instance
            //ret = 7;
        //ret has the value 7 here, but if I put 'return ret' here, nothing is returned
    });

    return ret; //returns 0 because Node is asynchronous and the query hasn't finished yet
}
Run Code Online (Sandbox Code Playgroud)

所以,问题是,如何返回正确的值ret(在这种情况下为7)?我是否正确地构建了这个?

javascript node.js

6
推荐指数
1
解决办法
3万
查看次数

MySQL"大于"条件有时会返回具有相等值的行

我遇到了一个基本的MySQL查询令人困惑的问题.

这是我的表:

id | rating
1  | 1317.17
2  | 1280.59
3  | 995.12
4  | 973.88
Run Code Online (Sandbox Code Playgroud)

现在,我试图找到rating列大于某个值的所有行.如果我尝试以下查询:

SELECT * FROM (`users`) WHERE `rating` > '995.12'
Run Code Online (Sandbox Code Playgroud)

它正确返回2.

但是,如果我尝试

SELECT * FROM (`users`) WHERE `rating` > '973.88'
Run Code Online (Sandbox Code Playgroud)

它回来了4!所以就好像它认为表中的973.88大于973.88,但它与995.12没有同样的错误.无论我是从PHP脚本还是在phpMyAdmin中运行查询,都会发生这种情况.

有任何想法吗?

mysql floating-point floating-accuracy floating-point-conversion

6
推荐指数
1
解决办法
5703
查看次数

如何在Vuejs项目中导入多个同名组件?

我继承了一个 Vue.js 项目,其中包括:

import Multiselect from 'vue-multiselect';

<multiselect :multiple="true"
   v-model="selectedTags"
   :options="tagOptions"
   label="title"
   track-by="id"></multiselect>
Run Code Online (Sandbox Code Playgroud)

现在,在同一页面上,我们还应该有一个不同的多选对象,从不同的位置导入,如下所示:

import Multiselect from './../../../../../../vendor/devcompany/scripts/vue/components/form/multiselect.vue';

<multiselect v-model="selectedTeacherIds"
   :sortable="true"
   :options="computedTeacherOptions">
   <template slot="selected-option-value" slot-scope="{optionKey}">
      {{teacherNames[optionKey]}}
   </template>
Run Code Online (Sandbox Code Playgroud)

其中每一个单独工作都很好,但我应该以某种方式导入它们并在同一组件中使用它们。显然,如果不对代码进行某种修改,这将无法工作。

是否有某种语法可以import as更改其中一个对象的名称?或者我是否需要进入其中之一的源代码并更改其中的命名?前者(或不需要更改多选核心文件本身的其他解决方案)会更理想。

编辑:这就是代码更广泛的样子。

import Multiselect from 'vue-multiselect';

import BbcodeEditor from './../elements/bbcode-editor';

import ApiVideoSelect from './api-video-select';

/* import other assets */

export default {

    components: {ApiVideoClassDetail, ApiProgramCard, ApiUploader, Multiselect, Draggable, Datepicker, BbcodeEditor, ApiVideoSelect},
Run Code Online (Sandbox Code Playgroud)

所以我想知道如何编辑此语法以在不同的名称下添加其他多选。我不明白这是如何运作的:

import Multiselect from 'vue-multiselect';
import Multiselect from './../../../../../../vendor/frismedia/scripts/vue/components/form/multiselect.vue';
Run Code Online (Sandbox Code Playgroud)

vue.js vue-component

6
推荐指数
1
解决办法
5017
查看次数

jQuery sortable - 基于输入字段的值排序

免责声明 - 我不完全确定这是可能的.但在那种情况下,我仍然希望有人指出可能的替代方案或某种类型的黑客.

这是情况.

我有一个使用jQuery UI Sortable的工作列表,因此用户可以拖放列表中的项目.

jQuery:

$(document).ready(function() {
    $("#test-list").sortable({
      handle : '.big-handle',
      update : function () {
          var order = $('#test-list').sortable('serialize');
        $("#info").load("../sortable/process-sortable.php?"+order);
      }
    });
});
Run Code Online (Sandbox Code Playgroud)

Ajax部分将新订单存储在数据库中,您无需担心这一点.

HTML:

<ul id="test-list">
<li id='listItem_1'><div class='main-item big-handle'><img src='../sortable/arrow.png' alt='move' width='16' height='16' class='handle' /><strong>Item 1</strong></div></li>
<li id='listItem_2'><div class='main-item big-handle'><img src='../sortable/arrow.png' alt='move' width='16' height='16' class='handle' /><strong>Item 1</strong></div></li>
<li id='listItem_3'><div class='main-item big-handle'><img src='../sortable/arrow.png' alt='move' width='16' height='16' class='handle' /><strong>Item 1</strong></div></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

一切正常.现在,棘手的部分.我的客户希望每个列表项旁边都有一个输入字段,用户可以输入一个数字,该数字应该onBlur将该列表项移动到指定位置.因此,如果用户在列表项目号旁边的字段中输入"1".3,然后该项应该移动到列表中的第一个点,就像它被拖动到那里一样.可以这样做吗?

你不需要为整个列表提出完整的解决方案,让我们说我只需要一个可以移动项目号的字段.3左右.

javascript jquery jquery-ui-sortable

5
推荐指数
1
解决办法
2515
查看次数

CSS不适用于Chrome和IE中的HTTPS页面

在我的网站上,如果使用https打开页面,则Chrome无法加载样式表.

例如,在页面test.php上我有以下CSS包括:

<link href="http://www.domain.com/css/mainstyle.css" rel="stylesheet" type="text/css">
Run Code Online (Sandbox Code Playgroud)

它使用绝对路径,因为有很多SEO,子目录等,所以像这样包含它比通过寻找相对路径更容易.

如果我打开页面http://www.domain.com/test.php它工作正常,但如果我打开它作为https://www.domain.com/test.php Chrome拒绝加载样式表!

它适用于Firefox和Safari.我可以理解IE是一个"特殊需求"浏览器,但为什么Chrome会这样做,我该如何解决?

使用https://domain.com/css/mainstyle.css调用CSS文件可以解决问题,但这是否真的有必要?

css https internet-explorer google-chrome

5
推荐指数
1
解决办法
4539
查看次数

尽管Laravel中的令牌正确,但Ajax调用仍返回419错误

我在Laravel应用程序中使用Ajax发出了一堆POST请求。

典型的请求如下所示:

$.ajax({
    url: '/path/to/method',
    data: {'id': id},
    type: 'POST',
    datatype: 'JSON',
    success: function (response) {
        //handle data
    },
    error: function (response) {
        //handle error
    }
});
Run Code Online (Sandbox Code Playgroud)

我已经设置了CSRF令牌,并且大多数情况下一切正常:

jQuery(document).ready(function(){
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
});
Run Code Online (Sandbox Code Playgroud)

但是,经过长时间的中断(例如,计算机长时间处于睡眠状态),所有Ajax调用都会返回419错误,就像未设置令牌一样。重新加载页面后,一切恢复正常。这是在本地服务器上。

我该如何解决?通话前是否可以通过某种方式“更新”令牌?$.ajaxSetup每次通话前我都需要做一点吗?仅在页面加载一次就做还不够吗?

php laravel

5
推荐指数
1
解决办法
1146
查看次数

如何在 HTML 页面中嵌入 kepler.gl 地图?

我已经下载了 kepler.gl 的源代码,https://github.com/uber/kepler.gl并使用存储在 geojson 中的数据集成功创建了本地地图:

在此处输入图片说明

现在我的问题是,如何将此地图嵌入到我网站的 HTML 页面中?

我有数据的 JSON,我有源代码,但文档似乎没有告诉我如何将它嵌入到网页中。文档侧重于使用此界面构建地图和导出数据,但据我所知,没有提供有关在网页中嵌入地图的信息:

https://github.com/uber/kepler.gl/tree/master/docs
Run Code Online (Sandbox Code Playgroud)

mapbox-gl-js deck.gl kepler.gl

5
推荐指数
1
解决办法
3529
查看次数

为什么 Laravel 的错误屏幕上的信息是隐藏的?

我接手了一个 Laravel 5.5 的项目,发生了一件我从来没有遇到过的事情——报错画面的内容全部换成了星星。

在此处输入图片说明

我不知道以前的开发人员为实现这一目标做了什么,但显然我希望能够看到这些信息。.env 内容似乎相当明显:

APP_ENV=local
APP_HOST=http://localhost
APP_DEBUG=true
APP_TESTMODE=false
APP_CACHE_ENABLED=true
Run Code Online (Sandbox Code Playgroud)

除此之外,还有用于 Stripe、AWS 等的 API 密钥,但不会阻止我查看错误屏幕上的信息。

为什么会出现这个问题,我该如何解决?

php laravel

5
推荐指数
1
解决办法
85
查看次数