问题列表 - 第43565页

PHP,MySQL和XML =乱码HTML输出

我在MySQL中有一个类型为text的字段,使用以下排序规则:utf8_general_ci.

使用使用DOMDocument构建的变量填充此XML字段:

function ed_audit_node($dom, $field, $new, $old){

    //create audit_detail node
    $ad = $dom->createElement('audit_detail');

    $fn = $dom->createElement('fieldname');
    $fn->appendChild($dom->createTextNode($field));
    $ad->appendChild($fn);

    $ov = $dom->createElement('old_value');
    $ov->appendChild($dom->createTextNode($old));
    $ad->appendChild($ov);

    $nv = $dom->createElement('new_value');
    $nv->appendChild($dom->createTextNode($new));
    $ad->appendChild($nv);

    //append to document
    return $ad;
}
Run Code Online (Sandbox Code Playgroud)

这是我如何保存到db($ xml来自$ dom-> saveXML()):

function ed_audit_insert($ed, $xml){
    global $visitor;

    $sql = <<<EOF
    INSERT INTO ed.audit
    (employee_id, audit_date, audit_action, audit_data, user_id) 
    VALUES (
        {$ed[emp][employee_id]}, 
        now(), 
        '{$ed[audit_action]}', 
        '{$xml}', 
        {$visitor[user_id]}
    );      
EOF;
    $req = mysql_query($sql,$ed['db']) or die(db_query_error($sql,mysql_error(),__FUNCTION__));
//snip  
}
Run Code Online (Sandbox Code Playgroud)

请参阅一个较旧的,平行的,稍微相关的关于我如何创建此XML的线程: 另一个PHP XML解析错误:"输入不正确的UTF-8,表示编码!"

有效: - 查询数据库,选择字段并使用jQuery(.ajax())输出并填充textarea.Firebug和textarea匹配数据库中的内容(与Toad确认).

什么不起作用 …

php xml utf-8 character-encoding

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

如何填写表单字段,并使用javascript提交?

如果我有一个粗略结构的html文档

<html>
<head>
</head>
<body class="bodyclass" id="bodyid">
<div class="headerstuff">..stuff...</div>
<div class = "body">
<form action="http://example.com/login" id="login_form" method="post">
<div class="form_section">You can login here</div>
<div class="form_section">
<input xmlns="http://www.w3.org/1999/xhtml" class="text" id="username"
       name="session[username_or_email]" tabindex="1" type="text" value="" />
</div>
<div class="form_section">etc</div>
<div xmlns="http://www.w3.org/1999/xhtml" class="buttons">
    <button type="submit" class="" name="" id="go" tabindex="3">Go</button>
    <button type="submit" class="" name="cancel" 
            id="cancel" tabindex="4">Cancel</button>
</div>
</form>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

您可以看到有一个用户名字段和一个Go按钮.我如何使用Javascript填写用户名并按Go ...?

我更喜欢使用普通的JS,而不是像jQuery这样的库.

javascript dom

36
推荐指数
3
解决办法
11万
查看次数

jqGrid - 如何取消选中标题行复选框

Here is the scenario:
Run Code Online (Sandbox Code Playgroud)

1.通过选中标题行复选框选择所有行.2.取消选择一行.3.仍然检查标题行复选框,该选项无效,因为未选择所有行.

如何取消选中hedaer行复选框?谢谢

checkbox row header jqgrid

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

Crypt()函数的河豚盐长度?

根据crypt()文档,salt需要是字母"./0-9A-Za-z"的22个64位.

这是他们给出的代码示例:

crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$');
Run Code Online (Sandbox Code Playgroud)

第一个令人困惑的部分是盐有25个字符,而不是22个字符.

问题1:这是不是意味着盐应该是更长的超过22个字符?

然后我自己测试了这个功能并发现了一些东西 如果我使用20个字符的盐,我会得到这个

// using 20 char salt: 00000000001111111111
crypt('rasmuslerdorf', '$2a$07$00000000001111111111$');
// $2a$07$00000000001111111111$.6Th1f3O1SYpWaEUfdz7ieidkQOkGKh2
Run Code Online (Sandbox Code Playgroud)

因此,当我使用20个字符的盐时,整个盐都在输出中.这很方便,因为我不必将盐存放在一个单独的地方.(我想使用随机盐).我将能够从生成的哈希中读取盐.

但是,如果我使用22字符盐作为文档说明,或者更长的盐,最后将盐切断.

// using 22 char salt: 0000000000111111111122
crypt('rasmuslerdorf', '$2a$07$0000000000111111111122$');
// $2a$07$000000000011111111112uRTfyYkWmPPMWDRM/cUAlulrBkhVGlui
// 22nd character of the salt is gone

// using 25 char salt: 0000000000111111111122222
crypt('rasmuslerdorf', '$2a$07$0000000000111111111122222$');
// $2a$07$000000000011111111112uRTfyYkWmPPMWDRM/cUAlulrBkhVGlui
// Same hash was generated as before, 21 chars of the salt are in the hash
Run Code Online (Sandbox Code Playgroud)

问题2:那么,盐的长度到底是多少?20?22?更长?

问题3:此外,在检查密码时,从哈希中读取盐是否是个好主意?而不是将盐存储在单独的字段中并从那里读取.(这似乎是多余的,因为盐似乎包含在哈希中).

php passwords hash cryptography blowfish

10
推荐指数
1
解决办法
6710
查看次数

CSS类选择器问题

为什么这不起作用?我是CSS的新手,我不知道为什么以下内容不起作用.

<div id="nav">
    <ul id="tabnav">
        <li class="selected"><a href="index.php">Tab One</a></li>
        <li><a href="index2.html">Tab Two</a></li>
        <li><a href="index3.html">Tab Three</a></li>
        <li><a href="index4.html">Tab Four</a></li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

ul #tabnav li.selected { 
    background-color: #f00;
}
Run Code Online (Sandbox Code Playgroud)

css css-selectors

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

使用jQuery获取带有函数的JSON

在我的.js文件的根目录中,我声明:

var Doe = {
            "foo": "The quick brown fox jumps over the lazy dog.",
            "bar": "ABCDEFG",
            "baz": [52, 97],
            "testfunc": function(){alert('json function');}
           }
Run Code Online (Sandbox Code Playgroud)

在我的HTML中:

<a id="lele" href="javascript:void(0)" onclick="Doe.testfunc()">Doe</a>
Run Code Online (Sandbox Code Playgroud)

当我单击它时它可以工作,所以我知道可以将函数放在JSON对象中.

现在,在.js我声明的根目录中:

$.getJSON("~/rule/2", function(data) {
    alert("2: " + data.foo);
    data.testfunc();
});
Run Code Online (Sandbox Code Playgroud)

并且服务器为此url返回此信息:

 context.Response.ContentType = "application/json";
 context.Response.Output.Write(@"{
                     ""foo"": ""The quick brown fox jumps over the lazy dog."",
                     ""bar"": ""ABCDEFG"",
                     ""baz"": [52, 97],
                     ""testfunc"": function(){alert('json function');}  
                                 }");
  context.Response.Flush();
Run Code Online (Sandbox Code Playgroud)

但没有任何反应:(显然是因为如果有错误,.getJSON将无声地失败.但是,如果我删除有关该函数的行:

$.getJSON("~/rule/2", function(data) {
    alert("2: " + data.foo);
});
Run Code Online (Sandbox Code Playgroud)

 context.Response.Output.Write(@"{ …
Run Code Online (Sandbox Code Playgroud)

javascript jquery json

2
推荐指数
1
解决办法
3655
查看次数

函数默认参数和命名值

假设我有一个R函数,其中参数可以是几个预定义命名值(其中一个是默认值)或自定义字符向量之一.如何在不依赖魔术值名称或其他标志的情况下实现此目的?

#allow use of predefined subsets or pass their own list
bratPack<-function(members='CORE',...){
  if (members=='CORE')
    members<-c('Emilio Estevez','Anthony Michael Hall','Rob Lowe','Andrew McCarthy','Demi Moore','Judd Nelson','Molly Ringwald','Ally Sheedy')
  else if (members=='ALL')
    members<-c('Emilio Estevez','Anthony Michael Hall','Rob Lowe','Andrew McCarthy','Demi Moore','Judd Nelson','Molly Ringwald','Ally Sheedy','James Spader','Robert Downey, Jr.','Jon Cryer', 'John Cusack', 'Kevin Bacon', 'Jami Gertz', 'Mary Stuart Masterson', 'Matthew Broderick', 'Sean Penn', 'Kiefer Sutherland')
  ...
}
Run Code Online (Sandbox Code Playgroud)

r function

49
推荐指数
2
解决办法
4万
查看次数

mysql_real_escape_string(htmlspecialchars($ value)); 足够?我怎样才能轻松改善它?

我在访问或插入数据库之前在每个$ _get或$ _post中使用它.

我确定这还不够......但它有多安全?我可以将它与一些表达相结合,使其更安全吗?

非常感谢!

那怎么样?mysql_real_escape_string(htmlspecialchars($ value));

php mysql security sql-injection

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

LINQ to SQL Projection:Func vs Inline

我在使用Func在LINQ to SQL查询中使用投影时发现了一些意外行为.示例代码将比单词更好地解释.

使用投影的基本L2S lambda查询:

db.Entities.Select(e => new DTO(e.Value));
Run Code Online (Sandbox Code Playgroud)

它转换为所需的SQL:

SELECT [t1].[Value]
FROM [Entity] AS [t1]
Run Code Online (Sandbox Code Playgroud)

但是,当投影放入Func时,如下所示:

Func<Entity, DTO> ToDTO = (e) => new DTO(e.Value);
Run Code Online (Sandbox Code Playgroud)

并且这样称呼:

db.Entities.Select(e => ToDTO(e));
Run Code Online (Sandbox Code Playgroud)

SQL现在撤回表中的所有列,而不仅仅是投影中的列:

SELECT [t1].[Id], [t1].[Value], [t1].[timestamp], [t1].[etc...]
FROM [Entity] AS [t1]
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何在没有LINQ to SQL实例化整个实体的情况下封装这个投影?

要记住的事情,我使用的DTO有一个受保护的默认构造函数,所以我不能使用对象初始化程序.由于无法修改DTO类,我必须创建一个子类来实现该行为.哪个好,如果这是唯一的解决方案.

谢谢.

编辑:

感谢Brian的解决方案.我之前尝试过一个Expression但无法弄清楚语法.这是工作代码:

Expression<Entity, DTO> ToDTO = (e) => new DTO(e.Value);
Run Code Online (Sandbox Code Playgroud)

然后像这样称呼它:

db.Entities.Select(ToDTO);
Run Code Online (Sandbox Code Playgroud)

起初我试图像这样调用它,这不会编译.这是调用Func的正确语法,但不是表达式.

db.Entities.Select(e => ToDTO(e));
Run Code Online (Sandbox Code Playgroud)

projection linq-to-sql

4
推荐指数
1
解决办法
1571
查看次数

为什么Python脚本可以在CLI中运行,但是从cron作业调用时却不行?

我创建了一个Python脚本,我想通过Ubuntu服务器上的cronjob每天运行.

这是从命令行运行此脚本的方式:

python  /home/username/public_html/IDM_app/manage.py cleanUpPosts  
Run Code Online (Sandbox Code Playgroud)

从CLI调用时,脚本运行正常.
但是,当我尝试通过cronjob运行脚本时,脚本无法正常运行.日志文件显示正在请求脚本,但它们未显示脚本未正确执行的原因.

我在脚本中添加了Python日志记录.从CLI调用脚本时,日志记录正确进行.从cron调用时,python日志记录无法写入其日志文件.

我怀疑问题是cronjob在请求脚本时没有运行shell.

我似乎无法找到cron守护进程记录错误的任何地方.

我创建了/var/log/cron.log
然而这似乎没有更新.

由于我认为问题源于ENV变量,我试图让cronjob为自己显示ENV.

这是我的crontab的样子:
$ crontab -u username -e

m h  dom mon dow   command  
43 17 * * * /bin/sh python /home/username/public_html/IDM_app/manage.py cleanUpPosts  
43 17 * * * python /home/username/public_html/IDM_app/manage.py cleanUpPosts  
45 21 * * * echo "-----------------"; echo "import os; print os.environ" | python  
47 21 * * * /bin/sh echo "------with shell-------"; echo "import os; printos.environ" | python  
MAILTO=bryanw@nowhere.com  
Run Code Online (Sandbox Code Playgroud)

我以为它会输出到屏幕,但它没有.ENV变量在哪里输出?

无论如何,这里是日志文件:

# tail -n 5 /var/log/*.log   
==> …
Run Code Online (Sandbox Code Playgroud)

python django cron environment-variables

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