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>';
    }
}




?>
4

2 に答える 2

2

リンクを使用して Javascript で呼び出すことができますhistory.go(-1)。これは、実際にはブラウザの [戻る] ボタンをクリックするのと同じです。

たとえば、PHP(ファイル)では次のようになります。echo "<a href=\"javascript:history.go(-1)\"> GO BACK </a>";

編集:

だから厳密にPHP?次にこれを試してください:

header('Location: ' . $_SERVER['HTTP_REFERER']);
于 2012-09-25T11:11:25.993 に答える
0

これを使って

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

$_SERVER['HTTP_REFERER'] は、リダイレクト元の URL を提供します。

于 2012-09-25T11:28:47.777 に答える