2016-04-02 17 views
0

Birisi size yardımcı olabilir umarım. Giriş yapmış kullanıcı bilgilerini görüntülemek istediğim bir profil sayfam var. Şimdiye kadar bunu profil sayfasında var.Profil sayfası kullanıcı profili bilgilerini görüntülemiyor ya da güncelleme yapıyor.

<?php 

/* This script pulls the existing name input and displays it when the user logs in. */ 

session_start(); 

include("db.php"); ?> 

<?php include("includes/header.php") ?> 

<?php include("includes/nav.php") ?> 




<?php 

    if(logged_in()) { 

    $result = mysqli_query($link,$query); 

    $row = mysqli_fetch_array($result); 


if (!$_POST['name'] && $_POST['name']=="") $error.="<br />Please enter your name"; 
if (!$_POST['email'] && $_POST['email']=="") $error.="<br />Please enter your email"; 
if (!$_POST['DOB'] && $_POST['DOB']=="") $error.="<br />Please enter your date of birth"; 
if (!$_POST['country'] && $_POST['country']=="") $error.="<br />Please enter your country"; 




if ($error) { 

       echo '<div class="alert alert-success alert-dismissable">'.addslashes($error).'</div>'; 

      } 

if(isset($_POST['form-control'])) { 

move_uploaded_file($_FILES['file']['tmp_name'],"img/".$_FILES['file']['name']); 
$query = mysqli_query("UPDATE users SET image = '".$_FILES['file']['name']."'"); 
}  


    } else { 

     redirect("login.php"); 

    } 

?> 


<Style> 


.alert{ 
display:none; 
} 

#profileimg { 
    height: 100px; 
    width: auto; 
}  

</Style> 


<div class="container"> 
<h1>Edit Profile</h1> 
<hr> 
<div class="row"> 
    <!-- left column --> 
    <div class="col-md-3"> 
    <div class="text-center"> 
     <img src="//placehold.it/100" class="avatar img-circle" alt="avatar" id="profileimg"> 
     <h6>Upload a different photo...</h6> 

     <input class="form-control" type="file" name="name"> 
    </div> 
    </div> 

    <!-- edit form column --> 
    <div class="col-md-9 personal-info"> 
    <div class="alert alert-success alert-dismissable"> 
     <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> 
     <strong>Profile updated.</strong> 
    </div> 
    <h3>Personal info</h3> 

    <form class="form-horizontal" role="form" action="edit_profile.php" method="post"> 

     <div class="form-group"> 
     <label class="col-lg-3 control-label name">name:</label> 
     <div class="col-lg-8"> 
     <input class="form-control" value="<?php echo $row['name'];?>" type="text" name="name" required> 
     </div> 
     </div> 
     <div class="form-group"> 
     <label class="col-lg-3 control-label">Email:</label> 
     <div class="col-lg-8"> 
      <input class="form-control" value="<?php echo $row['email'];?>" type="text" name="email" required> 
     </div> 
     </div> 
     <div class="form-group"> 
     <label class="col-lg-3 control-label">DOB:</label> 
     <div class="col-lg-8"> 
      <input class="form-control" value="<?php echo $row['DOB'];?>" type="date" name="DOB" required> 
     </div> 
     </div> 
     <div class="form-group"> 
     <label class="col-lg-3 control-label">Country</label> 
     <div class="col-lg-8"> 
      <input class="form-control" value="<?php echo $row['country'];?>" type="text" name="country" required> 
     </div> 
     </div> 

     <div class="form-group"> 
     <label class="col-md-3 control-label"></label> 
     <div class="col-md-8"> 
      <input class="btn btn-primary" value="Save Changes" type="submit"> 
      <span></span> 
      <input class="btn btn-default" id="updated" value="Cancel" type="reset"> 
     </div> 
     </div> 

    </form> 
    </div> 

 <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<!-- Include all compiled plugins (below), or include individual files as needed --> 
<script src="js/bootstrap.min.js"></script> 

    <script> 

    $("#updated").click(function(){ 

$(".alert").hide().show('medium'); 

    </script> 


</body> 
</html> 

Sonra bu güncelleme için başka bir php dosyası var:

<?php 

session_start(); 

include("db.php"); 



$name = $_POST['name']; 
$email = $_POST['email']; 
$DOB = $_POST['DOB']; 
$country = $_POST['country']; 
$password = md5($salt.$_POST['password']); 



$query = "UPDATE users SET name = '".$name."', email = '".$email."', DOB = '".$DOB."', country = '".$country."', password = '".$password."'"; 




$result = mysqli_query($link,$query); 




header('Location: profile.php'); 

?> 

Yani kısa o görüntüler veya güncelleme gelmez ve ben değilim Peki neden. Ben PHP için yeniyim, eğer bu basitse, benim aramam kolay olsun, aradım ama cevabı bulamıyorum.

Şimdiden teşekkürler. Buna

+1

burada "$ _SESSION ['id']' atanmış mı? –

+1

da, "form-kontrol" isim özniteliğine ihtiyacım yok, yani eğer (isset ($ _ POST ['form-kontrol'])) {...} 'asla ateş etmeyecek. Sonra dosyaları kullanıyorsunuz ama bununla ilgili hiçbir şey görmüyorum. Hataları kontrol etmiyorsun. Açılışınızdan sonra PHP dosyalarınızı açtıktan hemen sonra dosyalarınızın üstüne hata bildirimi ekleyin; örneğin <

+0

Aşağıda bir cevap var. Onlara şimdi sorun. İyi şanslar –

cevap

1

Im yeni de ancak bir OTURUM kimliği aktif olup olmadığını kontrol ederken normalde Ayrıca sonuçlarını görüntülemek için sorgulamak için çalışıyoruz endeksli satırları geri yankı gerekir

if(isset($_SESSION['id'])) { 
$query = "UPDATE users SET name = '".$name."', email = '".$email."', DOB = '".$DOB."', country = '".$country."', password = '".$password."' WHERE id='".$_SESSION['id']."'"; 
} 

kullanmak

$name = row['username']; 
echo $name; 
0

Kodunuzda birçok hata var: Aynı sayfaya bir dosya yüklemeye çalışırken form verilerini başka bir sayfaya gönderiyorsunuz. Form doğrulamasını nasıl ele alacağınız da biraz fazladır. Formda yaptığım değişiklik şudur: Gönderim düğmenize name = "save" yazıp kullanıcı profil kimliğinizi saklamak için yeni bir gizli girdi ekledim. Kodunuzda login() işlevinin ne yaptığından emin değilim, ($ id) {} ​​için daha iyi sopa.

bu deneyin:

<?php 

/* This script pulls the existing name input 
    and displays it when the user logs in. */ 
session_start(); 
include("db.php"); 
include("includes/header.php"); 
include("includes/nav.php"); 
$id = $_SESSION['id']; 
if(loginned()) {//you can do if($id){} 
    $query="SELECT * FROM users WHERE id='$id' LIMIT 1"; 
    $result = mysqli_query($link,$query); 
    $row = mysqli_fetch_array($result); 
?> 
<style> 
.alert{ 
display:none; 
} 
#profileimg { 
    height: 100px; 
    width: auto; 
}  
</style> 

<div class="container"> 
<h1>Edit Profile</h1> 
<hr> 
<div class="row"> 
    <!-- left column --> 

    <!-- edit form column --> 
    <div class="col-md-9 personal-info"> 
    <div class="alert alert-success alert-dismissable"> 
     <button type="button" class="close" data-dismiss="alert" 
      aria-hidden="true">&times;</button> 
     <strong>Profile updated.</strong> 
    </div> 
    <h3>Personal info</h3>  
    <form class="form-horizontal" role="form" 
      action="edit_profile.php" method="post">  
     <div class="form-group"> 
     <label class="col-lg-3 control-label name">name:</label> 
     <div class="col-lg-8"> 
     <input class="form-control" value="<?php echo $row['name'];?>" 
       type="text" name="name" required> 
     </div> 
     </div> 
     <div class="col-md-3"> 
    <div class="text-center"> 
     <img src="//placehold.it/100" class="avatar 
      img-circle" alt="avatar" id="profileimg"> 
     <h6>Upload a different photo...</h6> 
     <input class="form-control" type="file" name="name"> 
    </div> 
    </div> 
     <div class="form-group"> 
     <label class="col-lg-3 control-label">Email:</label> 
     <div class="col-lg-8"> 
      <input class="form-control" value="<?php echo $row['email'];?>" 
       type="text" name="email" required> 
     </div> 
     </div> 
     <div class="form-group"> 
     <label class="col-lg-3 control-label">DOB:</label> 
     <div class="col-lg-8"> 
      <input class="form-control" value="<?php echo $row['DOB'];?>" 
       type="date" name="DOB" required> 
     </div> 
     </div> 
     <div class="form-group"> 
     <label class="col-lg-3 control-label">Country</label> 
     <div class="col-lg-8"> 
      <input class="form-control" value="<?php echo $row['country'];?>" 
       type="text" name="country" required> 
     </div> 
     </div> 

     <div class="form-group"> 
     <input type="hidden" name="id" value="<?php echo $row['id'];?>"> 
     <label class="col-md-3 control-label"></label> 
     <div class="col-md-8"> 
      <input class="btn btn-primary" name="save" 
       value="Save Changes" type="submit"> 
      <span></span> 
      <input class="btn btn-default" id="updated" 
       value="Cancel" type="reset"> 
     </div> 
     </div>   
    </form> 
    </div> 
    <?php }else{ redirect("login.php"); } ?> 

edit_profile.php Önce Biz yayınlanan verileri doğrulamak, Kaydet bir adı olan mesaj olup olmadığını kontrol edin. Doğrulama başarılı olursa, dosyanızı yüklemeye ve ardından güncelleme sorgunuzu çalıştırmaya devam ederiz.

<?php 
    session_start(); 
    include("db.php"); 
if(isset($_POST['save'])){ 
     $id = isset($_POST['id'])? $_POST['id']:''; 
     $name = isset($_POST['name'])? $_POST['name']:''; 
     $email = isset($_POST['email'])? $_POST['email']:''; 
     $dob = isset($_POST['DOB'])? $_POST['DOB']:''; 
     $pass = isset($_POST['passwrd'])? md5($salt.$_POST['password']):''; 
     $country = isset($_POST['country'])? $_POST['country']:''; 

     if(empty($name)){ 
      $error = 'Please enter your name'; 
     }elseif(empty($email)){ 
      $error = 'Please enter your email'; 
     }elseif(empty($dob)){ 
      $error = 'Please enter your date of birth'; 
     }elseif(empty($country)){ 
      $error = 'Please enter your country'; 
     }elseif(empty($pass)){ 
      $error = 'Please enter your password'; 
     }else{ 
      move_uploaded_file($_FILES['file']['tmp_name'],"img/".$_FILES['file']['name']); 
      $query = mysqli_query("UPDATE users SET image = '".$_FILES['file']['name']."' 
            WHERE id='$id'"); 
      $query = "UPDATE users SET name = '$name', email = '$email', 
         DOB = '$DOB', country = '$country', password = '$password' 
         WHERE id='$id'"; 
      $result = mysqli_query($link,$query); 
      header('Location: profile.php'); 
     } 

} ?>

<?php if(!empty($error)){ 
     echo '<div class="alert alert-success 
      alert-dismissable">'.addslashes($error).'</div>'; 
    }else{ 
     echo '<div class="alert alert-success">Success</div>'; 
     } 
    ?> 

Ben demo here ekledik. En azından bu, şu yardımcı olur:

+0

Yardım için zaman ayırdığınız için çok teşekkürler. Haklısın, kodum berbat ve ben çok yeni mücadele ediyorum. Kodumu her iki dosya için yaptıklarınızla düzenledim ve hala hiçbir şey olmuyor. Bilgiyi çekmiyor ya da değiştirmiyor. Başka düşünceler var mı? Tekrar teşekkürler. İlk sayfada – will

+0

print_r ($ row) ve sorudaki çıktıyı gösterir. –

+0

sadece bitti. Hiçbir şey olmadı. – will

İlgili konular