회원정보 수정시 headers 에러문의

회원정보 수정시 headers 에러문의

QA

회원정보 수정시 headers 에러문의

본문

회원관리 하는 소스를 하나 퍼와서 공부중입니다.

 

예전 소스라서 그런지 수정할데가 많더군요. 없는 지식으로 조금씩 수정해나가고 있는데..  막히는게 있어서 문의드립니다.

 


<?php 
include ('db.php'); 
include ('header.php'); 
$ID=$_GET['id'];
?>
<body>

<div class="container">
<div class="hero-unit-header">
 <div class="container-con">
<!-- end banner & menunav -->
<div class="container">
<div class="row-fluid">
<div class="span12">
<div class="row-fluid">
<div class="span3"></div>
<div class="span6">

<div class="hero-unit-3">
<center>
<?php
  $query=mysqli_query($con,"select * from student where student_id='$ID'")or die(mysqli_error());
$row=mysqli_fetch_array($query);
  ?>
 <form class="form-horizontal" method="post"  enctype="multipart/form-data" style="float: right;">
                                <legend><h4>Edit</h4></legend>
                                <h4>Image</h4>
                                <hr>
                                <div class="control-group">
                                    <label class="control-label" for="inputPassword">
                                        <?php if($row['location'] != ""): ?>
                                        <img src="upload/<?php echo $row['location']; ?>" width="100px" height="100px" style="border:1px solid #333333;">
                                        <?php else: ?>
                                        <img src="images/default.png" width="100px" height="100px" style="border:1px solid #333333;">
                                        <?php endif; ?>
                                    </label>
                                    <div class="controls">
                                        <input type="file" name="image" style="margin-left:27px;">
                                        <button type="submit" name="image" class="btn btn-success" style="margin-top: 20px; margin-right: 131px;">Update</button>
                                    </div>
                                </div>
                                <hr>
                                <h4>Personal Information</h4>
                                <hr>
                                <div class="control-group">
                                    <label class="control-label" for="inputPassword">FirstName:</label>
                                    <div class="controls">
                                        <input type="text" name="fname" required value=<?php echo $row['fname']; ?>>
                                    </div>
                                </div>
                                <div class="control-group">
                                    <label class="control-label" for="inputPassword">MiddleName:</label>
                                    <div class="controls">
                                        <input type="text" name="mname" required value=<?php echo $row['mname']; ?>>
                                    </div>
                                </div>
                                <div class="control-group">
                                    <label class="control-label" for="inputEmail">LastName:</label>
                                    <div class="controls">
                                        <input type="text" name="lname" required value=<?php echo $row['lname']; ?>>
                                    </div>
                                </div>
                                <div class="control-group">
                                    <label class="control-label" for="inputPassword">Address:</label>
                                    <div class="controls">
                                        <input type="text" name="address" required value=<?php echo $row['address']; ?>>
                                    </div>
                                </div>
                                <div class="control-group">
                                    <label class="control-label" for="inputPassword">Email:</label>
                                    <div class="controls">
                                        <input type="text" name="email" value=<?php echo $row['email']; ?>>
                                    </div>
                                </div>
                                
                                 <div class="control-group">
                                    <div class="controls">
                                        <button type="submit" name="update" class="btn btn-success" style="margin-right: 65px;">Save</button>
                                        <a href="index.php" class="btn">Back</a>
                                    </div>
                                </div>
                            </form>
                            
<?php
$id=$_REQUEST['id'];
if (isset($_POST['image'])) {
//image
                            $image = $_FILES["image"] ["name"];
                            $image_name= addslashes($_FILES['image']['name']);
                            $size = $_FILES["image"] ["size"];
move_uploaded_file($_FILES["image"]["tmp_name"],"upload/" . $_FILES["image"]["name"]);            
$location=$_FILES["image"]["name"];
mysqli_query($con, " UPDATE student SET location='$location' WHERE student_id = '$id' ")or die(mysqli_error());
header('location:index.php');
}
?>
                            
                            <?php
                            
                            
                            $id=$_REQUEST['id'];
$result = mysqli_query($con, "SELECT * FROM student WHERE student_id = '$id'");
$test = mysqli_fetch_array($result);
if (!$result) 
        {
        die("Error: Data not found..");
        }
                
                                    $fname= $test['fname'];
                                    $mname= $test['mname'];
                                    $lname= $test['lname'];
                                    $address= $test['address'];
                                    $email= $test['email'];
                
                
                            
if (isset($_POST['update'])) {
                               
                                    $fname_save= $_POST['fname'];
                                    $mname_save= $_POST['mname'];
                                    $lname_save= $_POST['lname'];
                                    $address_save= $_POST['address'];
                                    $email_save= $_POST['email'];
                                
mysqli_query($con, "UPDATE student SET fname = '$fname_save' , mname = '$mname_save' , lname ='$lname_save',
address = '$address_save' , email ='$email_save' WHERE student_id = '$id'") or die(mysqli_error());     
//header("Location: index.php");
header('location: http://localhost/index.php');
exit;
                    
                                }
                                ?>
                                </center>
                                </center>
                                </div>
                                </div>
                                </div>
                                </div>
                                </div>
                                </div>
                                </div>
                                </div>
                                </div>
</body>
</html>

 

수정하는 소스입니다.

 

저기서 업데이트를 한뒤 header('location:index.php'); 이동을 못하고 에러가 납니다.

데이터는 제대로 수정돼서 DB에 들어갑니다.

 

인터넷 뒤져보니 호스트마다 주소를 넣어야 하기도 한다길래  header('location: http://ID.dothome.co.kr/test/index.php');  이렇게 해도 마찮가지네요.

 

저부분이 문제가 아닌거 같은데..  회원추가 같은건 제대로 동작하거든요..

 

3556550771_1643520200.2858.png

 

수정: 

회원관리 소스 출처 : https://www.happycgi.com/16130

혹시 예제로 쓰기에 좋은 소스가 있다면 소개 부탁드려요..  이 소스는 손볼게 많고 제 입장에선 좀 복잡하네요.

 

이 질문에 댓글 쓰기 :

답변 1


header가 사용되기 전에 출력이 있어서는 안됩니다
그러니 화일 상단에서 무언가 출력되기 전에 소스가 위치해야 합니다
 
include ('header.php'); <--여기서도 html태그가 있을테니 이 코드 보다 먼저 넣어야 합니다

답변 감사합니다.

원 소스는 잘 되니까 올린게 아니였나보군요.. ㅜㅜ;

검색해보니 스크립트로 강제로 바꿀수 있는데 <script>window.location.href='index.php';</script>

스크립으로 바꾸고선 동작은 잘 되는데...  이렇게 할경우는 어떤 문제가 있을까요?

새해 복 많이 받으세요~~

문제 될 것은 없습니다만 위에서 부터 차례로 실행 되는 것이니 좋은 코드가 될 수 없습니다
수정하기전에 $query=mysqli_query~~~ 이런 쿼리를 실행하고 되고
body 이하 html을  출력하다가 갑자기 디비 update 작업을 하고 곧바로 다른 페이지로 이동 하게
되니 쓸데없는 동작을 더 하게 되죠

답변을 작성하시기 전에 로그인 해주세요.
전체 125,873 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT