2014-06-12 5 views
-1

사용자가 사용자 이름, 전자 메일, 이름, 암호 등을 변경할 수있는 '프로필'페이지에 문제가 있지만 둘 이상일 때 충돌이있는 것으로 보입니다. 1 양식은 모두 개별적으로 작동하므로 페이지에 있습니까?하나의 PHP 페이지에 여러 개의 양식이 있습니다.

누군가가 이드에게 많은 감사를 표할 수 있다면 분명히 뭔가 빠져있을 수 있습니다.

자료

<?php 
require 'core/init.php'; 
include 'includes/overall/header.php'; 
?> 
<h1><p>Hello <?php echo escape($user->data()->username); ?></a>!</p></h1> 

<h4><p>You joined the MMOunition community <?php echo escape($user->data()->joined); ?></a></p></h4> 

<alert_banner> 
<?php 
if(Session::exists('home')) { 
    echo '<p>', Session::flash('home'), '</p>'; 
} 
?> 
</alert_banner> 
<br /> 
<form action="changeusername.php" method="post"> 
    <div class="field"> 
     <label for="username">Username:</label> 
     <input type="text" name="username" id="username" value="<?php echo escape($user->data()->username); ?>"> 
     <input type="submit" value="Update"> 
     <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> 
    </div> 
</form> 


<br /> 
<form action="changepassword.php" method="post"> 
    <div class="field"> 
     <label for="password_current">Current password:</label> 
     <input type="password" name="password_current" id="password_current"> 
    </div> 
    <div class="field"> 
    <label for="password_new">New password:</label> 
     <input type="password" name="password_new" id="password_new"> 
    </div> 
    <div class="field"> 
     <label for="password_new_again">New password again:</label> 
     <input type="password" name="password_new_again" id="password_new_again"> 
     <input type="submit" value="Change"> 
     <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> 
    </div> 
</form> 


</br> 
<form action="changename.php" method="post">  
    <div class="field"> 
     <label for="name">Name:</label> 
     <input type="text" name="name" id="name" value="<?php echo escape($user->data()->name); ?>"> 
     <input type="submit" value="Update"> 
     <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> 
    </div> 
</form> 


<br /> 
<form action="changeemail.php" method="post">  
    <div class="field"> 
     <label for="email">Change email address:</label> 
     <input type="text" name="email" id="email" value="<?php echo escape($user->data()->email); ?>"> 
     <input type="submit" value="Update"> 
     <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> 
    </div> 
</form> 
<?php 
include 'includes/overall/footer.php'; 
?> 
+3

어떻게 충돌합니까? 정확히 어떻게됩니까? –

+0

에 링크 된 파일에 코드를 실행하는 대신 그것들에 연결됩니까? 그러나 theyre가 독자적으로하는 경우에, 다만 그것을해야한다처럼 그것을, 그래서 왜 페이지 당 1 개 이상 가지고있는 것이 문제 idk인가? – Parody

+0

_it이 them_을 (를) 말하면 브라우저가 (예를 들어)'changeemail.php'를로드하지만 거기에서 폼 처리 코드를 실행하지 못한다는 것을 의미합니까? 항상 코드를 개발할 때,'display_errors'를 켜서 스크립트의 맨 위에 (또는'init.php와 같은 공통 include 파일에) 오류를 화면에 표시하십시오. 'error_reporting (E_ALL); ini_set ('display_errors', 1); ' –

답변

-1

안녕하세요 문제가

이 게시물을 참조하십시오 서버 측에서 폼의 고유 한 식별이처럼 당신은 당신이 actualy에 직면하지만이 보이는 문제를 언급하지 않은

Multiple HTML Forms on One Page

희망이 도움이 될 것입니다.)

-1

각 양식 작업을 현재 페이지로 설정하고 숨겨진 입력을 사용하여 수행중인 작업을 결정하십시오. 이 방법을 사용하면 사용자가 다른 페이지로 떨어지는 것을 방지하고 사용하거나 조작 할 수있는 변수에 작업을 넣을 수 있습니다.

실제 기능을 위해 별도의 PHP 스크립트를 사용하려면 includes 또는 requires를 사용하십시오.

<form action="" method="post"> 
<div class="field"> 
    <label for="username">Username:</label> 
    <input type="text" name="username" id="username" value="<?php echo escape($user->data()->username); ?>"> 
    <input type="submit" value="Update"> 
    <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> 
    <input type="hidden" name="action" value="changeUsername"> 
</div> 
</form> 

PHP 스크립트는 POST에서 조치를 가져오고 스위치를 사용하여 호출 할 함수를 결정합니다.

if (isset($_REQUEST['action'])) { 
    $action = $_REQUEST['action']; 
    switch ($action) { 
     case "changeUsername": 
      changeUsername(); 
      break; 
     case "changePassword": 
      ... 

언급 한 바와 같이 이러한 기능을 별도의 PHP 파일에 포함하려면 include 또는 require를 사용할 수 있습니다.

이렇게하면 정보를 업데이트 할 때 동일한 페이지에 사용자 권한을 다시 추가하여 추가 업데이트를 할 수 있습니다.

관련 문제