2013-01-14 5 views
0

나는 PHP는 형태를 갖는, 마크 업의 많은, 그래서 예를 들면 무엇을 지금 뭐하는 거지 그래서, 편집을위한 새 페이지 항목과 동일한을 만드는 같은 형태를 반복해야하고하는 것은이 코드를 반으로자를 수 있습니까?

if($_GET['page'] == 'hello') { 
    //A whole lot of markup goes here 
    <form method="post"> 
    <input type="text" name="whatever" /> 
    <input type="submit" name="create_new" /> 
    </form> 
} elseif ($_GET['page'] == 'edit_hello') { 
    //Same form markup is here, only change is the retrieved 
    //data values are echo'ed out in respective fields 
    $query = mysqli_fetch_array(mysqli_query(...)); 
    <form method="post"> 
    <input type="text" name="whatever" value="<?php echo $query['column_name']; ?>" /> 
    <input type="submit" name="create_new" /> 
    </form> 
} 

입니다 그래서 어떤 생각을 어떻게 양식 값을 업데이 트뿐만 아니라 새로운 항목을 만드는 동일한 코드를 사용할 수

답변

1

변수를 사용하고 빈 문자열의 기본값을 제공합니다.

if($_GET['page'] == 'hello') { 
    $whatever = ""; 
} elseif ($_GET['page'] == 'edit_hello') { 
    $query = mysqli_fetch_array(mysqli_query(...)); 
    $whatever = $query['column_name']; 
} 

<form method="post"> 
    <input type="text" name="whatever" 
     value="<?php echo htmlspecialchars($whatever); ?>" /> 
    <input type="submit" name="create_new" /> 
</form> 

XSS 공격을 피할 수 있도록 적절한 탈출구를 추가했습니다. 이 같은

+0

오 나중에이 내가 i'l for..anything 갈 수있는 방법이 그리워하거나 내가 이것을 사용하는 경우 내가 문제가 끝날 것입니까? +1 –

+0

이것은 내가하는 방법입니다. 아마도 가장 깨끗한 접근 방법 일 것입니다. –

+0

나는 항상 htmlspecialchars, 엔터티 및 real_escape_string을 사용하므로 데이터 위생의 문제는없고 GET에서 검색되는 값도 추적합니다. –

0

뭔가

$value = ''; 

if ($_GET['page'] == 'edit_hello') $value = $query['column_name']; 

if (in_array($_GET['page']), array('hello', 'edit_hello')) { ?> 
<form method="post"> 
    <input type="text" name="whatever" value="<?php echo $value; ?>" /> 
    <input type="submit" name="create_new" /> 
    </form> 
<?php } ?> 
0

난 내가 질문을 잘 이해 확실하지 오전 (안된) 작동합니다. 새 양식을 만들거나 수정하려면 동일한 양식을 사용하고 싶습니까? 간단한 방법은 예를 들어 이렇게 할 수 있지만 다른 방법이 많이 있습니다.

편집 모드의 양식을 만들면 숨겨진 필드가 추가됩니다. 양식의 게시물 요청 후이 변수를 확인할 수 있습니다. Remenber : 올바른 데이터베이스 레코드를 업데이트 할 수 있도록 일부 키를 업데이트해야합니다.

if (isset($_POST["variable"])) 
{ 
//updateaction 
} 
else 
{ //insertaction 
} 

친절 감사

관련 문제