2011-12-29 15 views
0

私の問題の解決策はいくつか見受けられましたが、その適用方法はわかりません。私はそれが大きいので、私の検証ファイルのポスト部分に行くつもりです。エラーが発生した場合のフィールド値の保持

if ($action == "submit" && ($member_submit == 0 || ($member_submit==1 
    && $_SESSION['loggedin']==1))){ 

        $frompage = $_SERVER['HTTP_REFERER']; 

        if($_POST['thumburl']=="http://") 
        $_POST['thumburl']=""; 

        // Check to see if the user is trying to bypass your requirements, and if so, redirect them! 
        if ($_SESSION['nosubmit']==1){ 
        $_SESSION['submitstatus'] = "<div class=error><b>Error:</b> There was something wrong with your 
    submission. Please try again later</div>"; 
         header('Location: '.$frompage.''); 
         exit;   

        } 
        // End Cheat Check 

        // Check to see if IP address is allowed to submit. If not, redirect! 
        if (ban_check("submit") == "banned"){ 
        $_SESSION['submitstatus'] = "<div class=error><b>Error:</b> Cannot Add Submission At This Time</div>"; 
         header('Location: '.$frompage.''); 
         exit;   

        } 
        // End Ban Check 

        $submissiontime = time(); 
        if (($submissiontime - $delay) <= $_SESSION['submission']){ 
        $_SESSION['submitstatus'] = "<div class=error><b>Error:</b> Flood Control Initiated</div>"; 
         header('Location: '.$frompage.''); 
         exit; 
        } 
     $ipaddress = $_SERVER['REMOTE_ADDR']; 
       $contenttitle = clean_string($_POST['contenttitle']); 
       $contentdescription = clean_string($_POST['contentdescription']); 
       $contenturl = clean_string($_POST['contenturl']); 
       $contenturl2 = strtolower($contenturl); 
       $category = clean_string($_POST['category']); 

       // Make sure they selected a category 
       if ($category == 0){ 
       $_SESSION['submitstatus'] = "<div class=error><b>Error:</b> Please select a category</div>"; 
        header('Location: '.$frompage.''); 
        exit; 
       } 

     // Check to see if have backlink and nofollow atribute 
     $parse = parse_url($contenturl); 
     $base_url = $parse["host"]; // domain.com 

     $linkback1 = reciprocal_linkback($contenturl, "http://www.dumpvid.com", 1); 

     if ("$linkback1"=="0") { 


     $_SESSION['submitstatus'] = "<div class=error><b>Error:</b> Backlink was not found, or nofollow detected.</div> "; 
     header('Location: '.$frompage.''); 
     exit; 

     } 

     // Check to see if have backlink in the main also 
     $parse = parse_url($contenturl); 
     $base_url = $parse["host"]; // domain.com 

     $linkback2 = reciprocal_linkback($base_url, "http://www.dumpvid.com", 1); 

     if ("$linkback2"=="0") { 


     $_SESSION['submitstatus'] = "<div class=error><b>Error:</b> Backlink found only on content url.</div> "; 
     header('Location: '.$frompage.''); 
     exit; 

     } 

       // Check if TITLE and URL are filled in 
       if (empty($contenttitle) || $contenttitle == "Title?"){ 
       $_SESSION['submitstatus'] = "<div class=error><b>Error:</b> Please Fill In Title</div>"; 
        header('Location: '.$frompage.''); 
        exit; 
       } 

       elseif (empty($contenturl) || $contenttitle == "http://"){ 
       $_SESSION['submitstatus'] = "<div class=error><b>Error:</b>Invalid URL</div>"; 
        header('Location: '.$frompage.''); 
        exit; 
       } 
       elseif (empty($contentdescription) || $contentdescription == "Nice description gets more traffic..."){ 
       $_SESSION['submitstatus'] = "<div class=error><b>Error:</b> Invalid or Missing Descriptio</div>"; 
        header('Location: '.$frompage.''); 
        exit; 
       } 


       // Check if VALID URL 
       if (is_url("$contenturl")) {  
       } else { 
        $_SESSION['submitstatus'] = "<div class=error><b>Error:</b> Doesn't seem to be a valid URL</div>"; 
        header('Location: '.$frompage.''); 
        exit; 
       } 

バリデーションファイルの構造は、基本的にはこれです。バリデーションファイルとフォーム全体を投稿する必要がある場合は、私にお知らせください。

妥当性検査が失敗した場合に備えて、ユーザーが入力したフィールド値をそのまま保持したいだけです。

答えて

0

私はあなたのようなHTMLにこれをしなければならないと思う理解したよう:

<input type="text" value="<?php echo (isset($_REQUEST['firstname'])) ? $_REQUEST['firstname'] : ''; ?>" name="firstname"> 

これはすべてのフィールドに、このようなものを適用します..あなたが望むことを返します。..

EDIT:送信ボタンをクリックすると上記が動作し、次に 'firstname'の値が表示されます。それ以外の場合は空白になります。<form>タグの上にあるページの上部にあることを確認してください。 。

+0

ありがとうございますjogesh_p私はそれを試してみると、その例で遊んでみると、私は初心者です、そして、私はただphpが世界であることに気づきました。 –

+0

@DaniQueiroga問題を心配する必要はありません、Stackoverflowは問題を解決するのに最適な場所です。 –

+0

私はあなたのコードを使用し、タイトル入力の名前であるcontenttitleにファーストネームの値を変更しました。エラー:eエラー:予期しないT_ECHOの構文エラー、...これはどうして起こっているのですか? –

1

header('Location:...')を使わずに、フォームを再度表示する必要があります。これは、リダイレクト後にフォームを使用して送信されたパラメータが失われるためです。あなたは2つのファイルがある場合は

function getParam($name, $defaultVal = null){ 
    return isset($_REQUEST[$name]) ? $_REQUEST[$name] : $defaultVal; 
} 


<input type="text" value="<?php echo getParam('firstname', ''); ?>" name="firstname"> 

EDIT

:あなたは、HTMLでのparamsをretrivingための機能を使用することができます - あなたのフォーム定義 save_form.php - form.phpフォーム検証、save_form.phpで次に

をお次のようなものを使用できます:

//... 
if($error){ 
    include 'form.php'; 
    die(); 
} 

とあなたがお互いに競合する可能性が十分と$ _GETで定義された同じPARAMがあるかもしれないようform.php

<input type="text" value="<?php echo getParam('firstname', ''); ?>" name="firstname"> 
+0

あなたは正しいかもしれません。私のフォームに何も作用しない理由は、私の検証ファイルでヘッダの場所の代わりに何を使うべきか教えてください。ありがとうPSあなたの仕事havent仕事どちらでも –

+0

私のポストをもう一度チェックしてください。私の関数は、フォームを表示するためにリダイレクトを使用しないときに機能するはずです。 – piotrekkr

+0

私はヘッダーの場所のリダイレクトを避ける方法を知らないので、その仕事はありません:S –

0
<?php 
session_start(); 

//save post values into session 
if(strtolower($_SERVER['REQUEST_METHOD']) == 'post'){ 
    $_SESSION['_postHistory'] = $_POST; 
} 


//this will restore your previously posted values into $_POST global 
if(isset($_SESSION['_postHistory']) && is_array($_SESSION['_postHistory'])){ 
    foreach($_SESSION['_postHistory'] as $key => $val){ 
     if(!isset($_POST[$key])) $_POST[$key] = $val; 
    } 
} 

function getPostValue($key, $default = null){ 
    return (isset($_POST[$key])) ? $_POST[$key] : $default; 
} 
?> 

<input type="text" value="<?php echo getPostValue('fieldname')?>" name="fieldname"/> 

に私はポストのために$ _REQUESTを使用することはお勧めしません。

+0

あなたの返信のおかげで、あなたのコードを使用しましたが、私はフォローエラーが発生します:構文エラー、予期しないT_STRING、 ....... 5行目 –

+0

うん!私はそれを編集しました。あなたはそれを確認しましたか? – rbncha

+0

それは大丈夫と思われるが、それは私のために働かない –

関連する問題