我正在使用PHP-FPM和MySQL运行nginx服务器.PHP已经安装了MySQL和MySQLi扩展,如确认的那样phpinfo().我上传的脚本在localhost上完美运行,当我尝试加载页面时出现500错误.我的nginx日志显示了这个:
2012/01/19 22时01分27秒[错误] 3393#0:*14的FastCGI在标准错误发送:"PHP警告:mysqli的::制备():无法在/var/www/mydomain.com/取的mysqli第12行的chat/index.php
PHP致命错误:调用一个成员函数执行()一个非对象在/var/www/mydomain.com/chat/index.php上线13" ,而从上游,客户机读取响应标头:82.32.181.151,服务器:mydomain.com,请求:"GET/chat/HTTP/1.1",上游:"fastcgi://127.0.0.1:9000",主持人:"mydomain.com"
我已用我的实际域名替换了mydomain.com.在index.php的第12行,我有这个:
$stmt = $mysqli->prepare('SELECT r_id, name, room_pass, max_users FROM `rooms` ORDER BY name ASC');
Run Code Online (Sandbox Code Playgroud)
谷歌之后,我发现了几个原因.一个是我提前关闭了我的数据库连接,这不是它.另一个是我混合了OOP和功能MySQLi调用,这也不是问题.此外,我的数据库连接信息是正确的.
所以,我很难过.
我正在使用PBKDF2散列算法来生成密码,该算法从我的用户提供的密码生成一个字节数组,如下所示:
var DeriveBytes = new Rfc2898DeriveBytes(_Password, 20);
byte[] _Salt = DeriveBytes.Salt;
byte[] _Key = DeriveBytes.GetBytes(20); // derive a 20-byte key
Run Code Online (Sandbox Code Playgroud)
我想将这些保存到我的数据库中,但我不确定要使用哪种数据类型.从我所看到的,没有用于字节数组的数据类型,我很确定我不能只将它转换为字符串并存储它varchar,或者我可以吗?
我有一些使用以下样式在悬停时使用背景渐变设置样式的菜单项:
#sidebar ul li a:hover {
background-image: linear-gradient(bottom, rgb(68,68,68) 5%, rgb(51,51,51) 100%);
background-image: -o-linear-gradient(bottom, rgb(68,68,68) 5%, rgb(51,51,51) 100%);
background-image: -moz-linear-gradient(bottom, rgb(68,68,68) 5%, rgb(51,51,51) 100%);
background-image: -webkit-linear-gradient(bottom, rgb(68,68,68) 5%, rgb(51,51,51) 100%);
background-image: -ms-linear-gradient(bottom, rgb(68,68,68) 5%, rgb(51,51,51) 100%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.05, rgb(68,68,68)),
color-stop(1, rgb(51,51,51))
);
color: #f0f0f0;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否可以使用CSS3过渡或动画从右侧滑入新背景(由渐变定义)?或者我将不得不求助于使用精灵图像或Javascript?
我有一个在午夜运行的cron作业,它会重置当天的所有用户限制.我希望向用户显示一些内容Your limits reset in 1 hour 14 minutes.基本上倒计时到午夜(服务器时间).
目前我正在使用它来寻找午夜:
strtotime('tomorrow 00:00:00');
Run Code Online (Sandbox Code Playgroud)
它返回午夜翻身的时间戳,但我不知道如何显示用户友好的倒计时.是否有一个PHP库,或者没有库,这很容易吗?
我注意到在CakePHP的3.2版本中,他们使用bcrypt添加了对散列的支持.我想利用这个,但我似乎无法找到如何正确使用它.
在我的User模型beforeSave()方法我这样做:
if(isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = Security::hash($this->data[$this->alias]['password'], 'blowfish');
unset($this->data['User']['passwd']);
}
Run Code Online (Sandbox Code Playgroud)
它成功地在数据库中为用户帐户保存了bcrypt哈希.但是,我不确定我是如何登录用户的.我的用户控制器具有以下登录操作:
public function login() {
if($this->request->is('post')) {
if($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash('Invalid username or password, try again.');
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它每次都说"用户名或密码无效",我确定这是正确的电子邮件/密码.我认为这是因为AuthComponent不知道它应该使用bcrypt,但我不确定.
有什么建议?
我使用带有socket.io的Node.js在我的一个页面中实现websockets.server.js(运行Node.js)有这样的代码:
var http = require("http").createServer(),
io = require("socket.io").listen(http);
http.listen(8080);
io.sockets.on("connection", function(socket) {
socket.emit("message", {hello:"world"});
});
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试连接的代码:
var socket = new WebSocket("ws://92.60.122.235:8080/");
socket.onopen = function() {
alert("Socket has been opened!");
}
Run Code Online (Sandbox Code Playgroud)
当我加载页面时,没有任何反应.我正在使用Chrome,我知道支持websockets.错误控制台中没有错误,如果我从命令行看到socket.io服务请求,我看不到任何用户连接.
据我所知,这应该有效,任何人都可以解释可能出现的问题吗?
我试图让用户确认是否要使用MessageBox删除产品并捕获其结果.这是我的代码:
// Confirm if the user really wants to delete the product
DialogResult result = MessageBox.Show("Do you really want to delete the product \"" + productName + "\"?", "Confirm product deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.OK)
{
MessageBox.Show("deleted");
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码并尝试删除产品时,删除永远不会显示.在MSDN页面上,它表示使用MessageBoxResult而不是DialogResultVisual Studio无法识别MessageBoxResult,我DialogResult在我的代码中的其他地方用于打开文件对话框.显然,这不是检查它的正确方法.
我有一个 JFrame 表单StaffListMain,它在按钮单击事件之一中具有以下代码:
private void btnManageLeaveActionPerformed(java.awt.event.ActionEvent evt) {
// Open the new form and pass the selected staff member
ManageLeave manageLeaveForm = new ManageLeave(staff.getStaffAt(lstStaff.getSelectedIndex()));
manageLeaveForm.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
的StaffListMain类也有一个方法调用writeToFile(),一个我想其他类内使用,如在一个上面的代码段(ManageLeaveForm)。
因此,我需要一种方法来调用另一种形式的方法。这是可能的,还是我必须writeToFile()分成另一个类,然后根据需要在每个单独的类中使用它?
我正在尝试在我的画布游戏中实现像素完美碰撞检测,但是我似乎无法从我的精灵中获取像素信息.
我需要精灵的每个像素的x和y值,并且从我读过的内容中我使用该getImageData()方法来做到这一点.
但是,这不起作用:
this.sprite = new Image();
this.sprite.src = 'img/player.png';
console.log(this.sprite.getImageData());
Run Code Online (Sandbox Code Playgroud)
我可能使用了错误的精灵类型吗?因为我在控制台中收到此错误:
未捕获的TypeError:Object#没有方法'getImageData'
给定一个时间戳,这将是最优雅的解决方案,以四舍五入日期了第二天的凌晨最接近?
例如1374246685(19/07/13 10:11:25)将四舍五入到1374296400(20/07/13 00:00:00).
我在我的脚本中运行了两个查询room.php.两者都使用MySQLi预处理语句,其代码如下:
/* Get room name */
$stmt = $mysqli->prepare('SELECT name FROM `rooms` WHERE r_id=?');
$stmt->bind_param('i', $roomID);
$stmt->execute();
$stmt->bind_result($roomName)
/* Add this user to the room */
$stmt = $mysqli->prepare('INSERT INTO `room_users` (r_id, u_id) VALUES (?, ?)');
$stmt->bind_param('ii', $roomID, $_SESSION['userID']);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,我收到此错误:
Fatal error: Call to a member function bind_param() on a non-object in C:\wamp\www\room.php on line 24
Run Code Online (Sandbox Code Playgroud)
这是第二个查询.如果我从脚本中删除第一个查询,一切运行正常.同样,如果我删除第二个查询.这让我相信有一个问题,因为我正在重复使用这个$stmt对象.如果我尝试使用第二个查询,$stmt2我仍然会收到错误.
我的所有数据库表和字段都存在,因此查询没有任何问题.
我知道将一个可被10整除的随机数表示它毕竟不是随机的,但坚持我.想象一下10x10像素的游戏网格.我想在游戏网格上随机放置一个10x10精灵.
除了让我的随机数函数返回可被10整除的随机数之外,我已经完成了所有工作.如果我给它一个10和50的范围,我希望它只返回10,20,30,40,50.你知道我的意思.
这是我的功能:
public function randomNumber(low:Number = 0, high:Number = 1):Number
{
return Math.floor(Math.random() * (1 + high - low)) + low;
}
Run Code Online (Sandbox Code Playgroud)
我怎么能做到这一点?
谢谢!
在我的Java类中,我定义了以下属性:
private ArrayList requests;
Run Code Online (Sandbox Code Playgroud)
这是类中的构造函数:
public LeaveRecord() {
this.requests = new ArrayList<Request>();
this.daysLeft = ALLOWANCE;
}
Run Code Online (Sandbox Code Playgroud)
在另一种方法中,我试图Request根据ArrayList的索引返回相关对象.
public Request getRequestAt(int index) {
try {
return this.requests.get(index);
} catch (IndexOutOfBoundsException e) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
但是我在返回行(上面代码段中的第3行)上收到了一个错误,说它需要leaverecord.Request但是找到了java.lang.Object.
我不知道会出现什么问题,因为我将ArrayList定义为类型Request.
有人能指出我正确的方向吗?谢谢.
php ×5
c# ×2
java ×2
javascript ×2
mysql ×2
mysqli ×2
actionscript ×1
arraylist ×1
asp.net ×1
bcrypt ×1
cakephp ×1
canvas ×1
constructor ×1
css ×1
date ×1
dialogresult ×1
html ×1
jbutton ×1
messagebox ×1
nginx ×1
node.js ×1
pdo ×1
random ×1
socket.io ×1
sprite ×1
sql-server ×1
swing ×1
time ×1
timestamp ×1
types ×1
websocket ×1