按照本指南在VirtualBox中运行Ubuntu 14.04设置开发环境:http://klau.si/dev
安装phpmyadmin后,似乎我应该能够访问它,http://localhost/phpmyadmin但是apache会返回Not Found错误.本指南是否遗漏了某个配置步骤?我已经尝试重启apache服务.
apache2/sites-enabled或apache2/sites-available中没有phpmyadmin.conf文件,这是必需的吗?
如果是这样,我在哪里可以找到这些文件?
使用127.0.0.1而不是localhost返回相同的错误.http://localhost工作正常的默认apache页面.
浏览器中的控制台显示没有任何价值,只是未找到.
我还尝试使用dpkg-reconfigure -plow phpmyadmin重新运行安装脚本
当我nutch 1.10使用以下命令运行时,假设TestCrawl2以前不存在并且需要创建,...
sudo -E bin/crawl -i -D solr.server.url=http://localhost:8983/solr/TestCrawlCore2 urls/ TestCrawl2/ 20
Run Code Online (Sandbox Code Playgroud)
我收到索引索引的错误:
Indexer: org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/opt/apache-nutch-1.10/TestCrawl2/linkdb/current
Run Code Online (Sandbox Code Playgroud)
linkdb目录存在,但不包含"当前"目录.该目录由root拥有,因此不应存在权限问题.由于进程退出错误,因此linkdb目录包含.locked和.. locked.crc文件.如果我再次运行该命令,这些锁定文件会导致它在同一个地方退出.删除TestCrawl2目录,冲洗,重复.
请注意,nutch和solr安装本身之前已经运行而没有问题TestCrawl.刚才我正在尝试一个我遇到问题的新手.有关解决此问题的任何建议吗?
我在处理表单上的数字输入时遇到一个小问题,特别是在用户修改表单时尝试调用验证js函数时。
<input type="number" name="somenumber" onkeyup="validateForm()" />
Run Code Online (Sandbox Code Playgroud)
仅当用户在框中键入数字时,此方法才会调用;当用户使用浏览器提供的上/下按钮时,将忽略此方法。因此它并不完全有效。
<input type="number" name="somenumber" onchange="validateForm()" />
Run Code Online (Sandbox Code Playgroud)
此方法对使用向上/向下按钮的用户非常有用,但是如果他们在框中键入数字,则只有在他们移至另一个元素或在框外单击时才会执行。这不是世界末日,但我希望用户能够在框中键入内容并立即能够单击当前禁用的“提交”按钮,而不必单击其他位置以启用该按钮。
<input type="number" name="somenumber" onchange="validateForm()" onkeyup="validateForm()" />
Run Code Online (Sandbox Code Playgroud)
因此,为了获得最佳的用户体验,我正在这样做。问题在于该函数经常被调用两次。我猜它很好用。用户甚至没有注意到它正在运行两次。不过,似乎我缺少了一些东西,必须有某种“正确”的方式来处理此问题。
在那儿?还是这只是我们必须解决的事情之一?
我有一个页面,login.php,它处理用户名和密码,如果成功,它会设置会话变量,然后将用户重定向到 home.php。login.php 的相关部分在这里:
if ($pwdHash == $storedpass) {
$success = true;
$sessionStatus = session_status();
if ($sessionStatus !== PHP_SESSION_ACTIVE) {
session_start();
}
$_SESSION['user_id'] = $user;
$_SESSION['logged_in'] = true;
session_write_close();
header('Location: http://www.examplesite.com/home.php');
header("HTTP/1.1 303 See Other");
die("redirecting");
}
Run Code Online (Sandbox Code Playgroud)
然后 home.php 尝试收集会话变量
$sessionStatus = session_status();
if ($sessionStatus !== PHP_SESSION_ACTIVE) {
session_start();
}
$loggedIn = $_SESSION['logged_in'];
Run Code Online (Sandbox Code Playgroud)
问题是,在第一次登录尝试时,$_SESSION['logged_in'] 未定义并生成错误,即使 login.php 成功。
Notice: Undefined index: logged_in
Run Code Online (Sandbox Code Playgroud)
$_SESSION 的 var_dump 返回一个空数组,但 sessionStatus 报告会话已经启动,不必执行 session_start。
这会迫使用户再次登录,然后一切都很好。那么重定向是否发生得太快以至于会话变量无法设置?我应该延迟重定向吗?(我该怎么做?)或者这是我做错的其他事情?
编辑:我已经根据类似问题的答案与我的主机进行了检查,并确认会话永远不会由多个服务器提供服务,并且不需要启用粘性会话或类似的东西。我还根据下面提供的答案和其他一些研究更新了上面的代码,但错误仍然存在。
这是我正在尝试做的一个非常简单的例子.这些数组是使用服务器端代码生成的,我不知道哪些数组将存在,除了它们将始终是'array'后跟一个数字.
var array1 = ['cat','dog','fish','bird'];
var array2 = ['taco','pizza','burger','salad'];
var array3 = ['maple','elm','pine'];
Run Code Online (Sandbox Code Playgroud)
用户从select-1中选择一个选项
<select id="select-1" onchange="getArray()">
<option value="1">Pets</option>
<option value="2">Foods</option>
<option value="3">Trees</option>
</select>
Run Code Online (Sandbox Code Playgroud)
然后我需要我的函数来访问对应于select-1值的正确数组.select-1中出现的每个选项都有一个相应的数组.
function getArray() {
var x = document.getElementById("select-1").value;
//how do I access "arrayx"?
var y = arrayx[0];
}
Run Code Online (Sandbox Code Playgroud)
如何编写函数以从正确的数组中获取值?我需要类似的东西
arrayname = 'array' + x;
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何从这里到达那里.
这是一个设置为试验的小提琴:http://jsfiddle.net/6yor1kp5/9/
我有一个简单的输入按钮(不是提交),带有一个 onclick 函数来显示或隐藏另一个 div。出于某种原因,我必须单击按钮两次,一次选择它,然后第二次执行该功能。
这是简短的版本:
<input type="button" id="request_info_layer_button" onclick="showForm()" value="REQUEST INFORMATION" />
function showForm() {
var isdisplayed = document.getElementById("request_info_form_layer_wrapper").style.display;
if (isdisplayed == "none") {
document.getElementById("request_info_form_layer_wrapper").style.display = "block";
document.getElementById("request_info_layer_button").style.borderBottom = "0";
document.getElementById("request_info_layer_button").style.borderLeft = "0";
document.getElementById("request_info_layer_button").style.borderTop = "solid 3px #C4591B";
document.getElementById("request_info_layer_button").style.borderRight = "solid 4px #C4591B";
} else {
document.getElementById("request_info_form_layer_wrapper").style.display = "none";
document.getElementById("request_info_layer_button").style.borderTop = "0";
document.getElementById("request_info_layer_button").style.borderRight = "0";
document.getElementById("request_info_layer_button").style.borderLeft = "solid 3px #DFBC81";
document.getElementById("request_info_layer_button").style.borderBottom = "solid 4px #DFBC81";
}
Run Code Online (Sandbox Code Playgroud)
}
完整的代码和按钮行为在这里:http : //jsfiddle.net/yp5an1w7/3/
我有一个CKEditor textarea(版本4.3)和一个javascript函数,requiredCheck()我想在每次输入文本时调用它。
据说,此功能已在4.2版中内置到ckeditor中,作为“撤消”功能的一部分,但我找不到有关如何实际调用和使用它的任何信息。我通过搜索找到的所有内容都太旧了,无法提供帮助(在内置旧版本之前,这些版本遭受了痛苦的黑客攻击。)
我相信这是文档的相关部分,但是我对ckeditor或javascript不够熟练,无法真正理解我应该怎么做:
http://docs.ckeditor.com/#!/api/CKEDITOR.event-method-on
有没有人用4.2+中的内置功能做到这一点?
根据下面的响应,这就是我现在正在尝试的方法,但是仍然无法正常工作。希望这只是一个语法问题?
<textarea name="editor1" id="editor1" rows="20" cols="80" ></textarea>
<script>
CKEDITOR.replace( 'editor1', {
filebrowserUploadUrl: "upload.php",
on: {
change: function() {
requiredCheck();
}
}
} );
</script>
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。是的,我已经清除了浏览器缓存,我知道ckeditor对此很敏感。
我试图在浏览器中正常运行的页面上显示电子邮件地址,但在代码中进行了混淆,希望至少可以让一些垃圾邮件机器人忽略它们。
我有这个测试代码:
<?php
$email = "fake@test.com";
$mailto = "mailto:" . $email;
?>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body>
<p>PHP: <a href="<?php echo htmlentities($mailto); ?>"><?php echo htmlentities($email); ?></a></p>
<p> </p>
<p>MANUAL: <a href="mailto:fake@test.com">fake@test.com</a></p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这两个链接在页面上看起来和工作正常,但只有“手动”链接被编码。
我从 php.net 收到了关于 htmlentities 如何工作的相互矛盾的信息。
http://php.net/manual/en/function.htmlentities.php
该文档指出“所有具有 HTML 字符实体等效项的字符都被翻译成这些实体。” 由于字母表中的所有字母都有等价物,我希望每个字符都被转换。但是在该页面上的示例中,它表明基本字母不会被转换。
此外,当我查看该页面上的源代码时,php 代码似乎根本不起作用。我的期望是两个链接在代码中显示相同。这是“查看源代码”的结果。
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body>
<p>PHP: <a href="mailto:fake@test.com">fake@test.com</a></p>
<p> </p>
<p>MANUAL: <a href="mailto:fake@test.com">fake@test.com</a></p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
所以看起来 htmlentities() 根本没有做任何事情。甚至不编码'@'。
我应该添加一些标志吗?有一个更好的方法吗?如果我成功了,这甚至可以对抗机器人还是我在浪费时间?