这是我第一次在PHP上使用会话.从StackOverflow和其他网站获取一些信息我要建立我的第一个PHP登录但我遇到了问题,不知道如何解决它.
基本上,在我设置会话的那一刻,页面刷新后,此会话消失.不应该留一段时间吗?(可以用set_cookie_params等设置,但这是另一个话题)
我在页面的开头(全局)这段代码:
ini_set('session.cookie_httponly', 1);
ini_set('session.entropy_file', '/dev/urandom');
ini_set('session.hash_function', 'whirlpool');
ini_set('session.use_only_cookies', 1);
ini_set('session.cookie_secure', 1);
session_name("RANDOMID");
session_start();
if (isset($_SESSION['uid']))
{
if ($_SESSION['ipremote'] !== getUserIP() && $_SESSION['useragent'] !== getUserAgent())
{
session_unset();
session_destroy();
session_regenerate_id(true);
}
}
else
{
session_regenerate_id(true);
$_SESSION['ipremote'] = getUserIP();
$_SESSION['useragent'] = getUserAgent();
}
Run Code Online (Sandbox Code Playgroud)
然后在我的login.php文件中,当用户插入正确的信息时:
$_SESSION['uid'] = 3;
header("Location: index.php");
exit;
Run Code Online (Sandbox Code Playgroud)
那之后的重定向UID会消失的问题:我把在结束的index.php页面var_dump中的$_SESSION变量,而我看到的只是每次被设置在该IP和用户代理else条件.
编辑:我试图替换会话初始化的所有内容只是session_start();它的工作原理,我不明白为什么这个安全的会话初始化它不起作用,使会话消失.
目前我正试图用Javascript将页脚保持在底部.这是结果:
document.getElementsByTagName('body').onload = function() {KeepFoot()};
var element = document.getElementById('container');
var height = element.offsetHeight;
function KeepFoot() {
if (height < screen.height) {
document.getElementById("footer").style.position = "fixed";
document.getElementById("footer").style.bottom = "0";
document.getElementById("footer").style.left = "0";
document.getElementById("footer").style.right = "0";
}
}
Run Code Online (Sandbox Code Playgroud)
我的想法是取div容器的高度,并将其与电脑分辨率的高度进行比较.如果div容器的高度小于PC分辨率的高度,则设置为div页脚position: fixed;
但是脚本中存在问题,因为它不起作用.
另一个问题,我创建的脚本可以将页脚保持在底部吗?
HTML:
<html>
<head>
...
</head>
<body>
<div id="container">
<div id="header"></div>
<div id="content"></div>
<div id="footer"></div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) $_SERVER['HTTP_COOKIE']和$_COOKIE有什么区别?
为什么$_SERVER['HTTP_COOKIE']PHP 手册中没有记录
我正在创建一个用于管理 cookie 的类,并且我想创建一个函数来销毁所有设置的 cookie。我必须从 $_SERVER['HTTP_COOKIE'] 变量中销毁,例如:
public function destroy_all() {
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
$parts = explode('=', $cookie);
$name = trim($parts[0]);
setcookie($name, null, 1, $this->cookie_path);
}
}
Run Code Online (Sandbox Code Playgroud)
或者使用 $_COOKIE 数组,例如:
public function destroy_all() {
foreach($_COOKIE as $name => $cookie) {
setcookie($name, null, 1, $this->cookie_path);
}
}
Run Code Online (Sandbox Code Playgroud) 我编写了这个简单的 CSS 技巧,以便在您单击输入 (:focus) 时显示一个工具提示,将为您提供有关输入的一些信息。一切正常,但是工具提示显示在输入下方而不是上方。实际上我知道我可以使用边距来修复它,但我问是否有一种“更”干净的方法,当您以这种方式使用绝对位置时,它会自动将工具提示与输入对齐。
HTML:
<div>
<input type="text" placeholder="Username">
<span class="input_info">Info1</span>
</div>
<div>
<input type="text" placeholder="Password">
<span class="input_info">Info2</span>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.input_info {
display: none;
position: absolute;
background: #000;
border: 1px solid #fff;
color: #fff;
width: 100px;
margin-left: 80px;
}
input[type="text"]:focus + .input_info {
display: block;
}
Run Code Online (Sandbox Code Playgroud)
我想根据两个变量的内容返回一个值.让我解释一下,我有三个变量:
$var1 = 2; // This variable can change from 1 to 10 (based on the value in the database)
$var2 = 1; // This variable can have two values: 0 and 1 (based on the value in the database)
$result = ''; // This variable have a value based on the content of the two variables
Run Code Online (Sandbox Code Playgroud)
我从数据库的两个不同列($ var1和$ var2)获取两个值,我有$ result,一个变量,其值基于$ var1和$ var2的内容
这可以轻松完成,制定20个条件,如下所示:
if ($var1 == 1 && $var == 0) $result = 'good morning';
if ($var1 == 1 …Run Code Online (Sandbox Code Playgroud) 我做了一个脚本,基本上我爆炸了一个字符串,例如:
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
Run Code Online (Sandbox Code Playgroud)
我创造了一个条件,如果它是真的,我必须取消设置数组的第一个值(键0)
if (condition) {
unset($pieces[0]);
Run Code Online (Sandbox Code Playgroud)
问题是,当我取消设置第一个值时,它使数组以键1开始,我需要它以键0开始,因为我必须将值与并行数组合并.
所以,问题是:任何人都知道一个函数,以便用标准键(从0到n)重建数组.谢谢.
我四处寻找,但我没有发现任何关于我的问题.
我想在C中创建一个算法,找到一个可容纳10个值的数组中的最小数字.
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void) {
int array[10];
int i, smaller;
srand(time(NULL));
for (i = 0; i < 10; i++) {
array[i] = rand() % 100 + 1;
}
// Find smaller number in the array
for (i = 0; i < 10; i++) {
...
}
printf("Smaller: %d\n", smaller);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有关如何做的任何提示?