所以我正在创建一个应用程序(对会话来说是新的 - 并且一直在尝试使用会话创建一个简单的错误处理语句。
为简化起见,让我来介绍一下基础知识。
我关心的是最后一步,因为某些原因我无法让它发挥作用。
以下是与错误有关的代码:
相关代码:
<?php
session_start();
$ERROR = $_SESSION['error'];
if($ERROR) {
echo $ERROR;
}
?>
第2页:
<?
session_start();
---------------- And as we go down the file a bit ----------------
if(trim($getQuery == "")){
$ERROR = "no search criteria entered";
$_SESSION['error'] = $ERROR;
if(!isset($_SESSION['error'])) {
die("the session error was not set for some reason");
}
$url = "localhost:8000/mysite"; //index.php is page 1 in this case so I just redirect to the parent directory as index is loaded by default obviously in that case
header("Location:" . $url);
}
?>
$ getQuery是第1页的查询框中捕获的值,并通过post方法发送到第2页,您可能会自然而然地假设。
但是当我在查询框中输入任何内容然后发送查询时,页面刷新(当第2页意识到查询为空并且标题位置重新加载页面时应该如此)但是没有显示错误,它应该考虑到我在第2页检查它是否已设置。
有什么想法吗?
干杯, - SD
答案 0 :(得分:1)
您在Push
中输入的拼写错误应该是if(trim($getQuery == "")) { ... }
,因为您只想修剪if(trim($getQuery) == "") { ... }
变量,而不是整个条件。如果你改变它,那么它将起作用。
这是最低限度的工作示例
$getQuery
<?php // 1.php
session_start();
$ERROR = $_SESSION['error'];
if($ERROR) {
echo $ERROR;
}
?>
答案 1 :(得分:0)
有时浏览器重定向(您的标题(&#34;位置&#34;))可能比服务器更快。
在重定向之前,你应该放
// A high precedence, right associative backward pipe, more info here:
// http://tryfs.net/snippets/snippet-4o
let inline (^<|) f a = f a
/// <summary>Advanced operations on options.</summary>
type Microsoft.FSharp.Core.Option<'T> with
// Attempts to return Some either from the original value or by calling lambda.
// Lambda is required to return a monadic value (Option<'T>)
static member Or f (x:Option<'T>) =
match x with
| None -> f()
| x -> x
// Same as above, but for lambdas returning plain types (e.g., `T)
static member OrDefault f (x:Option<'T>) =
match x with
| None -> f() |> Some
| x -> x
只是为了确保会话是为下次编写的。