我想知道在网站上存储/跟踪用户活动的最佳方式是什么.我正在考虑用户活动沿用户访问的网页,访问了多少次,他/她的视频的时间(即时间戳).
我目前正在考虑在我的数据库中为我网站上的每个网页创建多个表格,每个网页都会跟踪我网站上用户活动的一个方面.例如,1个表包含访问该网页的每个用户的时间戳和用户ID,另一个表存储他们在网页上完成的操作(例如喜欢的东西)
这是跟踪用户活动的好方法吗?还是有其他更好的方法吗?
PS:我在网站上使用PHP和MYSQL,并且这样做是为了改进我的编码,所以我不会使用谷歌分析或任何类似的东西.
我对编程很新,我知道如何将PHP与HTML分开,但我想知道在做什么方面有什么不同
这个:
<?php $rand="I love apples" ?>
<h1>This is a title</h1>
<div>
<p>This is a paragraph</p>
<?php echo"The variable contains the string $rand"; ?>
</div>
?>
Run Code Online (Sandbox Code Playgroud)
与此相比:
<?php
echo "<h1>This is a title</h1>";
echo "<div>";
echo "<p>This is a paragraph</p>";
echo "The variable contains the string $rand";
echo "</div>";
?>
Run Code Online (Sandbox Code Playgroud)
在性能等方面,从HTML代码中拆分PHP代码和在php中回显整个页面之间是否有任何区别?
我最近遇到了任意数据/任意json一词,我似乎无法理解究竟是什么和/或找到任何文件.我知道JSON是一种通过互联网发送数据的格式,那么格式究竟是如何随意的呢?
编辑::
//更多代码
var buildItem = function(item) {
var title = item.name,
args = [],
output = '<li>';
if (item.type == 'method' || !item.type) {
if (item.signatures[0].params) {
$.each(item.signatures[0].params, function(index, val) {
args.push(val.name);
});
}
title = (/^jQuery|deferred/).test(title) ? title : '.' + title;
title += '(' + args.join(', ') + ')';
} else if (item.type == 'selector') {
title += ' selector';
}
output += '<h3><a href="' + item.url + '">' + title + '</a></h3>';
output += '<div>' + …Run Code Online (Sandbox Code Playgroud) 我如何将$(this)的上下文传递给插件?
目前,我有一个插件(代码如下所示)
(function($) {
$.fn.slides={
slideIn:function(){
$(this).fadeIn().slideDown();
},
slideOut:function(){
$(this).fadeOut().slideUp();
}
}
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
当插件被调用时
$('h1').click(function(){
$(this).slides.slideOut();
});
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
Uncaught TypeError: Cannot read property 'defaultView' of undefined
Run Code Online (Sandbox Code Playgroud)
因为这个上下文没有正确传递给插件的slideOut()方法.就像slideOut这个上下文是对象$ .fn.slides的上下文.
除了使用.call()传递上下文,即
$('h1').click(function(){
$(this).slides.slideOut.call(this);
});
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以正确地将此上下文传递给slideOut(),或者无论如何构造我的插件,以便我可以通过方法调用方法slideOut()
$('h1').click(function(){
$(this).slides.slideOut();
});
Run Code Online (Sandbox Code Playgroud)
?
谢谢!
我有一个绑定到 mousemove 处理程序的事件处理程序,它将通过 console.log() 记录当前鼠标位置。我的目标是每秒触发事件不超过 5 次,以防止在我移动鼠标时被淹没.
目前,我有下面的代码,它在每次移动时记录鼠标位置,但没有限制它,我似乎无法弄清楚出了什么问题
//Code runs after document is ready
function logMouse(event){
console.log('The mouse is currently at ('+event.pageX+','+event.pageY+')');
}
$(document).on('mousemove',function(event){
setTimeout(function(){
logMouse(event);
},200);
});
Run Code Online (Sandbox Code Playgroud)
我试图通过使用 setTimeout 来限制 mousemove 事件,并将计时器设置为 200 毫秒,以便它会在 1 秒内触发 5 次,但我的代码不起作用,目前只是给我大量的鼠标位置,每当我移动我的鼠标。
我如何限制我的 mousemove 以使其每秒记录鼠标位置不超过 5 次?
我目前正在研究Java教程,现在正在使用Recursions.
我有以下代码来计算传递给阶乘方法的任何数字的阶乘
public class App {
public static void main(String[] args) {
//E.g 4! = 4*3*2*1(factorial 4)
System.out.println(factorial(4));
}
private static int factorial(int value){
//System.out.println(value);
if (value == 1){
return 1;
}
return factorial(value - 1)*value;
}
}
Run Code Online (Sandbox Code Playgroud)
我无法理解这部分内容
if (value == 1){
return 1;
}
return factorial(value - 1)*value;
Run Code Online (Sandbox Code Playgroud)
我的理解是return关键字只是终止方法,和/或返回方法声明的相同类型的值(即int,String等).
运行以下行时会发生什么?
return factorial(value - 1)*value;
Run Code Online (Sandbox Code Playgroud)
该函数返回总值(value - 1)*值,这将给我
(3)*4 = 12
(2)*3 = 6
(1)*2 = 2
Run Code Online (Sandbox Code Playgroud)
每次通过迭代.然而,System.out.println(factorial(4));给我一共24.这个数字是如何从这个方法得出的?没有变量来存储值的总和,那么存储它们的程序在哪里?另外,我如何24从这些值中获益?
(3)*4
(2)*3
(1)*2
Run Code Online (Sandbox Code Playgroud)
虽然我知道这24 …
我正在尝试使用PHP编写密码恢复脚本,在浏览了SO之后,最佳实践的共识似乎是
我目前有生成令牌的功能,但是我将如何使其过期?此外,令牌的保质期是多少?
令牌生成代码:
function crypto_rand_secure($min, $max) {
$range = $max - $min;
if ($range < 0) return $min; // not so random...
$log = log($range, 2);
$bytes = (int) ($log / 8) + 1; // length in bytes
$bits = (int) $log + 1; // length in bits
$filter = (int) (1 << $bits) - 1; // set all lower bits to 1
do {
$rnd = hexdec(bin2hex(openssl_random_pseudo_bytes($bytes)));
$rnd = $rnd & $filter; // discard irrelevant bits …Run Code Online (Sandbox Code Playgroud) 我有以下代码:
$a=$_POST['dsaghgjjkhfdsfdsfsdfdsjhkhkhgj'];
if(isset($a))
{
echo"exists";
}
else
{
echo"does not exist";
}
Run Code Online (Sandbox Code Playgroud)
回显值“不存在”,但是当我将修剪应用于 $_POST 变量时,
$a=trim($_POST['dsaghgjjkhfdsfdsfsdfdsjhkhkhgj']);
if(isset($a))
{
echo"exists";
}
else
{
echo"does not exist";
}
Run Code Online (Sandbox Code Playgroud)
代码将回显“存在”。为什么将不存在的 $_POST 变量传递给 trim() 会神奇地使它存在?
我目前正在尝试创建一个带有下拉列表的表单,该表单使用while循环从数据库填充自己.然后表单将用户的输入提交到我的数据库中的表中.为此,我使用的是while循环隐藏输入以标记下拉列表中填充的选项,然后我将使用该输入插入到我的数据库中.
问题: 如果我为隐藏输入编写代码,我的while循环不会循环,但它会在注释掉输入代码之后执行.
我的代码摘录:
<html>
<head><link rel="stylesheet" type="text/css" href="style.css" /></head>
<body>
<?PHP //include("AdminNav.php");?>
<form action="<?PHP echo $_SERVER['PHP_SELF']?>" name="AddSub" method="POST">
<table border="1">
<tr>
<td>Category: </td>
<td>
<select name="category">
<?php
include("cxn.inc");
if($_SESSION['Auth']=="Yes" && $_SESSION['Type']=="Admin")
{
$userid=$_SESSION['UserId'];
$branch="0";
$getcat="SELECT id,Category FROM Categories WHERE Business=$userid && Branch=$branch";
$cat=mysqli_query($cxn,$getcat) or die (mysqli_error($cxn));
while($row=mysqli_fetch_assoc($cat))
{
$catid=$row['id'];
echo"<option value=$row[Category]>$row[Category]</option>";
//echo"<input type='hidden' name='catid' value='$catid' />";<--This is the line
}
}
else if ($_SESSION['Auth']=="Yes" && $_SESSION['Type']=="Sub")
{
$userid=$_SESSION['UserId'];
$branchquery="SELECT id FROM Branch WHERE Bizid=$userid ";
$getbranch=mysqli_query($cxn,$branchquery) or die(mysqli_error($cxn));
$num=mysqli_num_rows($getbranch); …Run Code Online (Sandbox Code Playgroud)