相关疑难解决方法(0)

会话和php重定向不起作用

我正在制作一个PHP脚本check.php来检查用户是否已登录.只有一个用户,因此密码直接写在php代码中.将check.php被包括在与行各相关页面的顶部(1号线)<? include "check.php"; ?>.

代码

我已经删除了密码和域名.除此之外,以下是我的代码.这里的要点是您在登录页面输入密码,然后通过POST将其发送到此脚本.

如果密码是正确的 xxx,会话login将存储true.

如果密码不正确,但设置,意味着用户键入了错误,则任何现有会话都将结束session_destroy(),这意味着他已注销.

如果他到达页面但未登录,则会话login应为false或未设置,这意味着} elseif(!($_SESSION['login'])) {将使用该会话.

最后,如果他点击退出按钮,他将使用url发送到此脚本:check.php?logout=true.本logout=true应在被捕获$_GET在最后elseif语句和会话应该在那里结束.

<?
ob_start();
session_start();


if($_POST['password'] == 'xxx') {   // Correct password

    $_SESSION['login'] = true;
    header("Location: http://www.url.com/administration/index.php");

} elseif (isset($_POST['password'])) {  // Wrong password

    session_destroy();
    header("Location: http://www.url.com/administration/login.php?true");

} elseif(!($_SESSION['login'])) {   // Check at every page

    header("Location: http://www.url.com/administration/login.php");

} …
Run Code Online (Sandbox Code Playgroud)

php session redirect

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

发送HTTP 418我是一个茶壶

我有一个网络服务器,我想在某些条件下拥有HTTP状态代码418'我是一个茶壶',我相信我会使用if语句,我似乎无法让它去旅行,任何帮助?

php http

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

"如何修复PHP中的'已发送的标题'错误"

当您使用标头函数输出标头或使用setcookie函数在任何不在PHP标签内的回声或内容之后设置cookie时,PHP会显示此警告.标题显示函数我们需要确保发送的函数或者在进行任何输出之前必须调用HTTP头.

html css php c# database

6
推荐指数
0
解决办法
32
查看次数

警告:无法修改标头信息 - 已发送的标头(PHP)

我的问题有点类似于以下帖子..

PHP错误:无法修改标头信息 - 已发送的标头

但是在我的情况下,一旦我确定登录表单中没有验证错误并且用户的登录信息与数据库的登录信息匹配,我就选择启动会话.这是以下代码:

登录页面(在任何HTML之前)

session_name('username');
session_name('ip');
session_name('start');
session_start();    
Run Code Online (Sandbox Code Playgroud)

Login.php片段(在html的正文中)

         } else {
            $user = $_POST['username']; 
            $userpass = md5($_POST['password']); 
            $login_results = statement("select username, password from `$admin` where username='$user' and password='$userpass'");

            if (mysql_num_rows($login_results)!= 1) { 
                $errmsg = "<span id='error'>Login failed: Username or password not on file</span>";
            }else {

                $_SESSION['username'] = "$user"; 
                $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
                header("Location: index.php"); 
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

如果你查看上面代码的else块我正在验证登录,如果它好,我想分配会话变量并转到我的索引页面.从一开始就有这个代码:

 //Session Timeout Script -- used to determine the amount of time the user has been idle.  If it the …
Run Code Online (Sandbox Code Playgroud)

php session header

5
推荐指数
0
解决办法
3483
查看次数

错误 - 警告:无法修改标头信息 - 已发送的标头

错误:

警告:无法修改标题信息 - 已在第866行的/home/ya3mblog/public_html/wp-includes/pluggable.php中发送的标题(由/home/ya3mblog/public_html/wp-login.php:59开始输出)

网站:ipublisharticles.com错误发生在:ipublisharticles.com/wp-login.php?action=register

它使用正确的方法阻止用户注册.

wordpress

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

警告:无法修改标头信息 - 标头已由(输出开始于 /home/

我创建了一个 wordpress 站点。它运行良好,但现在显示错误如下:

警告:不能更改头信息-头已经发出(输出开始/首页/ ** /的public_html /可湿性粉剂内容/主题/ * * /includes/classy-options-init.php:1)在/ home / * / public_html/wp-includes/pluggable.php 在线 866

什么是确切的问题,请帮助我。

warnings wordpress-theming

5
推荐指数
0
解决办法
3191
查看次数

session_start()每次刷新都会创建新的会话

我有一个问题 session_start()。每次刷新/加载页面时,它都会创建一个新会话。

这是代码:

<?php
    $bob = session_id();
    echo "Session ID on load is ".$bob;
    echo "<br>";
    if($bob==""){
        session_start();
        $bob = session_id();
        echo ' session ID currently is '.$bob;
    }
// a bunch more stuff
Run Code Online (Sandbox Code Playgroud)

当我加载页面时,得到以下信息:

加载的会话ID为当前会话ID为ed320bc5e24c871c9db8ea30e6796c14(或其他版本)

如果刷新页面,我得到:

加载的会话ID为当前会话ID,当前为fbd69d01d511a7be382799dca7279a86(或变体)

会话ID在session_start()调用之前始终为空,并且始终是新的session_id()

它在所有浏览器中都执行此操作,并且我已检查以确保已打开Cookie。

会话保存路径为/tmp。我不确定确切的位置,但是通过我的根目录和所有其他目录,我找不到会话文件(假设它看起来像sess_fbd69d01d511a7be382799dca7279a86)。

因此,我认为保存路径上发生了一些事情,但是对于此事来说还太陌生,无法确定,服务器管理员对此毫无帮助。我在诊断问题时应该采取的下一步措施是什么?服务器正在运行5.3.22。

phpinfo在这里

谢谢你的帮助。

ps,您可以访问pcm.pcmxa.com亲自查看该问题。

php sessionid session-cookies

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

如果有输出,无法更改标题?

根据我的研究,在脚本输出后无法更改标题.那么为什么在我编写的代码示例中,脚本在创建新标题之前有几个输出,但一切正常?

<?php
$name = "tommy" ;
?>

<?php 
headers_sent($filename, $linenum) ;
header("name: $name") ;
echo "tommy <br>" ;
echo "Headers  sent in $filename on line $linenum" ;
?>
Run Code Online (Sandbox Code Playgroud)

此外,输出表示标题是在第0行发送的...如果我之后添加了标题,那怎么可能呢?

php output

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

PHP:如何检查用户是否已登录,否则重定向到登录页面

我是PHP新手,我正在努力解决以下问题:

我有一个页面,我想在他们看到网站内容之前检查某人是否是注册用户.所以我的想法是在我的头文件(在所有单个页面上引用require_once("includes/header.php");)我可以检查并将它们重定向到登录页面(login.php),如果他们还没有登录.

所以这是我在标题中的所有内容:

<!DOCTYPE html>
<html>
    <head>
        <?php 
            define("someUnguessableVariable", "anotherUnguessableVariable");
            session_start();
            if(!(isset($_SESSION['login']) && $_SESSION['login'] != '')){
                header ("Location: login.php");
            }

            include "system/config.php";

            $pageURL = basename($_SERVER["REQUEST_URI"]);
            $pageName = pathinfo(parse_url($pageURL, PHP_URL_PATH), PATHINFO_FILENAME); 

            $selectedLang = $_GET["lang"];
                if(!isset($selectedLang)){
                    $selectedLang = "de";
                }
            $langURL = "?lang=" . $selectedLang;

            $conn = new mysqli($dbServer, $dbUser, $dbPass, $dbName);
            $conn->set_charset("utf8");
            if($conn->connect_error){
                die("Connection failed: " . $conn->connect_error);
            } 
            // fetch main translations
            $location = "%main%";
            $stmt = $conn->prepare("SELECT tID, " . $selectedLang . " FROM TranslationsMain …
Run Code Online (Sandbox Code Playgroud)

php session redirect login session-variables

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

生成随机数,以便在后续页面中使用

目前,我正在为我的广告目标网页生成一个随机数,以弥补正在使用的MB,并且它运行良好.

但我想知道我是否有可能以某种方式获得每次生成的相同数字,<?php echo(rand(10,20)); ?>因此我可以在多个位置使用它.

php

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