2012-09-25 35 views
0

我有点迷路,我试图放置一个链接返回到“窗体”页面或“主页”页面为每个错误消息,当用户提交表单。当用户成功提交表单时,它会将链接返回到表单页面或主页。基本上我想修复链接返回到表单或主页。谢谢你们,请让我知道我能做什么或指导我。修复链接返回到表单或主页

这也是迄今为止该进程的一部分我的代码:

<?php 
// 
//umask(0007) 
//mkdir($newdir, 02770); 
//$filename = "../../data/status.txt"; 


$errors = array(); 
$permissionsArray = (isset($_POST['permission']) ? $_POST['permission'] : null); 

if (isset($_POST["statuscode"])) 
{ 
    $statusCode = $_POST["statuscode"]; 
    $patternCode = "/^S[0-9]{4}$/"; 
    if (preg_match($patternCode, $statusCode)) 
    { 
     $ans = ""; 
     $length = strlen($statusCode); 
     echo $statusCode . "<br />"; 
    } 
} 
else 
{ 
    array_push($errors, "Please fill in Status Code as they are mandatory field"); 
} 

if (isset ($_POST["status"])) 
{ 
    $status = $_POST["status"]; 
    $pattern = "/^[a-zA-Z0-9\s\.,!?]*$/"; 
    if (preg_match($pattern, $status)) 
    { 
     echo $status . "<br />"; 
    } 
} 
else 
{ 
    array_push($errors, "<b>Error:</b> Please fill in Status as they are mandatory field!"); 
} 

if (isset ($_POST["share"])) 
{ 
    $shareButton = $_POST["share"]; 
    echo $shareButton . "<br />"; 
} 
else 
{ 
    //Not possible unless in exceptional circumstances 
    array_push($errors, "Please choose a share"); 
} 

if (!isset($_POST["date"])) 
{ 
    $date = date("d/m/y"); 
    echo $date . "<br />"; 
} else { 
    $date = $_POST["date"]; 
} 

if (isset($permissionsArray)) 
{ 
    foreach($permissionsArray as $permission){ 
     echo $permission . "<br />"; 
    } 
} 


if(isset($statusCode, $status)) 
{ 
    if(empty($statusCode) || empty($status)) 
    { 
    array_push($errors, "Please fill in the required part!"); 
    } 
    if (0 === strlen($statusCode > 5 || $statusCode < 5)) 
    { 
     array_push($errors, "<b>Error:</b> You characters length is either less or more than 5 characters<br/>"); 
    } 
    if (0 === preg_match("/\S+/", $statusCode)) 
    { 
     array_push($errors, "<b>Error:</b> You forgot to fill in Status Code!<br/>"); 
    } 
    if (0 === preg_match("/\S+/", $status)) 
    { 
     array_push($errors, "<b>Error:</b> You forgot to fill in the Status! <br/>"); 
    } 
    if (0 === preg_match($patternCode, $statusCode)) 
    { 
     array_push($errors, "<b>Error:</b> please make sure that the first letter in Status Code is uppercase 'S' following by 4 numbers. <br/>"); 
    } 
    if (0 === preg_match($pattern, $status)) 
    { 
     array_push($errors, "<b>Error:</b> Please make sure to avoid symbols other than \",.?!\" <br/>"); 
    } 
} 

if (isset($errors)) 
{ 
    foreach ($errors as $error) 
    { 
     echo '<strong>', $error, '</strong>'; 
    } 
} 




?> 
+0

在表单打印代码之前添加此错误消息代码。 –

+0

当出现错误时,不要让它们返回。将表单提交给自己,在发布数据时对其进行验证,然后在表单上方显示错误,将$ _POST中的所有值放在其各自的表单字段中。当表格按照你描述你的方式工作时,我会受到皇室的愤怒。我失去了我输入的数据(主要问题),并且表单中还有一个额外的步骤,用户通常不喜欢。只需内联。在表单上方有一个'if(!empty($ _ POST ['some_field'])){//验证码}'。 – FluffyJack

回答

2

您可以使用链接在Javascript,这实际上是一样的点击浏览器的后退按钮调用history.go(-1)

例如,在PHP(文件),这将是:echo "<a href=\"javascript:history.go(-1)\"> GO BACK </a>";

编辑:

所以严格PHP?试试这个,然后:

header('Location: ' . $_SERVER['HTTP_REFERER']); 
+0

嗨1BJK903,我想严格做PHP,我做不到javascript:S –

+0

我已经更新了我的消息。试试那个...... – 1BJK903

+0

很抱歉问你很多,但还有其他方法吗? –

0

使用这一个

$ref = $_SERVER['HTTP_REFERER']; 
header("Location:".$ref); 

$ _ SERVER [ 'HTTP_REFERER']让你从你那里重定向的URL。