• 20-07-2015, 23:21:00
    #1
    Merhaba, üye girişi sonrası profilden bilgi güncelleme yaptırmak istiyorum. Kodlar aşağıda;

    Edit: Birde sayfayı açar açmaz eksik alanları doldurunuz hatası dönüyor. Bunu nasıl engelleyebilirim. Teşekkürler.

    Güncellemeden önce;

    Notice: Undefined index: degisik in C:\wamp\www\noktacom\kimayarlar.php on line 112

    Olarak
    $degismail = trim($_POST["degisik"]);
    satırı hata veriyor. Güncelleme işlemi için farklı bir mail adresi yazdığımda

    "Bir sorun oluştu!" yazısı dönüyor. Fakat mail adresi güncelleniyor.

    Yani işlem gerçekleşiyor ama döngüsel sorunlar var sanırım. Yardım ederseniz sevinirim.


    <section id="content">
    										<h3>E-Mail Adresinizi Değiştirin</h3>
    										<form name="update" action="" method="POST">										
    										<div class="6u 12u$(xsmall)">
    											<input type="text" name="degisik" value="" placeholder="<?php 
    
    							$acaba = $_SESSION['kadi'];
    							if($calistir = mysqli_query($baglan, "SELECT * FROM uyeler WHERE kadi = '$acaba'" )) {
    
    							$oku = mysqli_fetch_assoc($calistir);
      							
    							echo $oku['eposta'];
    
    							}
    							 ?>" />
    										</div><div class="12u$">
    											<ul class="actions">
    												<li><input type="submit" value="Güncelle" class="special" /></li>
    												
    											</ul>
    										</div>	</form>
    
    
    
    <?php
    $degismail = trim($_POST["degisik"]);
    
    if (!$degismail) {
    	echo "<div class=\"fa login\"> Lütfen Eksik Alanları Tamamlayınız. </div>";
    } else {
    	if ( !filter_var( $degismail, FILTER_VALIDATE_EMAIL ) ) {
    		echo "<div class=\"fa login\"> Lütfen Geçerli Bir E-Mail Adresi Giriniz. </div>";	
    	} else {
    				$varmiiki=mysqli_num_rows(mysqli_query ($baglan, "SELECT * FROM uyeler WHERE eposta = '$degismail'"));
    				if ($varmiiki!=0) {
    					echo "<div class=\"fa login\"> Bu E-Mail Adresi Bulunuyor. </div>";
    				}	else {
    		$stmt =  $baglan->stmt_init();
    		$stmt->prepare("UPDATE uyeler SET eposta=?");
    		$stmt->bind_param("s",$degismail);	
    			if ($stmt->execute()) {
    				echo "<div class=\"fa login\"> Başarıyla Kaydoldunuz! </div>";	
    					} else {
    						echo "<div class=\"fa login\"> Bir Sorun Oluştu! </div>";	
    			}
    			}
    		}
    	}
    		
    
    
    
    
    ?>
    
    									
    
    									</section>
  • 20-07-2015, 23:33:14
    #2
    if($_POST) eklemek sorunu çözecektir

    <?php
    if($_POST) {
    $degismail = trim($_POST["degisik"]);
     
    if (!$degismail) {
       echo "<div class=\"fa login\"> Lütfen Eksik Alanları Tamamlayınız. </div>";
    } else {
       if ( !filter_var( $degismail, FILTER_VALIDATE_EMAIL ) ) {
          echo "<div class=\"fa login\"> Lütfen Geçerli Bir E-Mail Adresi Giriniz. </div>";   
       } else {
                $varmiiki=mysqli_num_rows(mysqli_query ($baglan, "SELECT * FROM uyeler WHERE eposta = '$degismail'"));
                if ($varmiiki!=0) {
                   echo "<div class=\"fa login\"> Bu E-Mail Adresi Bulunuyor. </div>";
                }  else {
          $stmt =  $baglan->stmt_init();
          $stmt->prepare("UPDATE uyeler SET eposta=?");
          $stmt->bind_param("s",$degismail);  
             if ($stmt->execute()) {
                echo "<div class=\"fa login\"> Başarıyla Kaydoldunuz! </div>"; 
                   } else {
                      echo "<div class=\"fa login\"> Bir Sorun Oluştu! </div>";   
             }
             }
          }
       }
           
     
     
     
     }
    ?>
  • 21-07-2015, 01:20:46
    #3
    Sable adlı üyeden alıntı: mesajı görüntüle
    if($_POST) eklemek sorunu çözecektir

    <?php
    if($_POST) {
    $degismail = trim($_POST["degisik"]);
     
    if (!$degismail) {
       echo "<div class=\"fa login\"> Lütfen Eksik Alanları Tamamlayınız. </div>";
    } else {
       if ( !filter_var( $degismail, FILTER_VALIDATE_EMAIL ) ) {
          echo "<div class=\"fa login\"> Lütfen Geçerli Bir E-Mail Adresi Giriniz. </div>";   
       } else {
                $varmiiki=mysqli_num_rows(mysqli_query ($baglan, "SELECT * FROM uyeler WHERE eposta = '$degismail'"));
                if ($varmiiki!=0) {
                   echo "<div class=\"fa login\"> Bu E-Mail Adresi Bulunuyor. </div>";
                }  else {
          $stmt =  $baglan->stmt_init();
          $stmt->prepare("UPDATE uyeler SET eposta=?");
          $stmt->bind_param("s",$degismail);  
             if ($stmt->execute()) {
                echo "<div class=\"fa login\"> Başarıyla Kaydoldunuz! </div>"; 
                   } else {
                      echo "<div class=\"fa login\"> Bir Sorun Oluştu! </div>";   
             }
             }
          }
       }
           
     
     
     }
    ?>
    Teşekkürler hocam dediğinizi yaptım. Fakat şu an ufak bir sorunum var. Bu kodları birebir sadece değişken ve değer adlarını değiştirip başka bir alan için kullanıyorum. Tüm kullanıcıların bilgilerini değiştiriyor. Sizce nedeni ne olabilir?

    edit: Hocam şuan fark ettim ki her iki bölümde oluyormuş. Giriş yapan kullanıcının değil tablodaki sütunlar unique olduğu için id 1'in unique olmayınca da komple değiştiriyor. Belirlenen kullanıcıya etki etmesini nasıl sağlayaccağım teşekkürler.
  • 21-07-2015, 02:31:52
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    sql sorgunuza kullanıcı id'sini where ile ekleyin. o şarta uyan kullanıcı için değişiklikler yaptırın.
  • 21-07-2015, 03:12:16
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    UPDATE uyeler SET ad='ali' WHERE ad='veli'
    bu şekilde koşul belirtirseniz sadece belirtmiş olduğunu alandakiler değişir mesela burada ad alanı veli olanları ali olarak değiştiriyor.
  • 21-07-2015, 04:05:39
    #6
    _BuKi_ adlı üyeden alıntı: mesajı görüntüle
    sql sorgunuza kullanıcı id'sini where ile ekleyin. o şarta uyan kullanıcı için değişiklikler yaptırın.
    sercander adlı üyeden alıntı: mesajı görüntüle
    UPDATE uyeler SET ad='ali' WHERE ad='veli'
    bu şekilde koşul belirtirseniz sadece belirtmiş olduğunu alandakiler değişir mesela burada ad alanı veli olanları ali olarak değiştiriyor.
    +r10 cevaplar için çok teşekkürler.