Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Ajax'dan dönen işlemden sonra yönlendirme

İyi günler arkadaşlar,

Sorunum, ajax ile login işlemini JQuery Açılır Pencere içinde yaptırıyorum fakat login işlemi başarılı olduğu takdirde sayfanın üye profil sayfasına gitmesi gerekiyor.Php de işlem başarılı olduğu takdirde header(); ile yönlendirme yaptırmam işe yaramadı.

Bende ;
window.location="http://www.siteadresi.com";


kodunu kullanacağım. Fakat bu kodun success işlemi gerçekleştikten sonra eğer login başarılı ise 5 sn. sonra çalışmasını istiyorum. Geri sayım işlemini ve bu kodun aktif olmasını nasıl yaptırabilirim?


// AJAX LOGIN
	$('#loginajax').click( Login );
	
	function Login(){
		$('.requestlogin').html('<img src="images/ico_loading.gif" />');
	
		var username_l = $('.usrn_l').val();
		var password_l = $('.pass_l').val();
	
		$.ajax({
			type: 'POST',
			url: 'includes/login.php',
			data:"username_l="+username_l+"&password_l="+password_l,
			success: function(sonuc){	
				$('.requestlogin').fadeIn("slow");
				$('.requestlogin').html(sonuc);
				$('.requestlogin').fadeOut(5000);
			}
		});
	
	return false;
	}


JQuery Açılır Pencere Örneği:
http://www.sohtanaka.com/web-design/examples/modal-window/
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • Hasan adlı üyenin fotoğrafı
    13 yıl önce yazılmış
    63 cevap - 0 soru
    Bu şekilde çalıştırabilirsin.

    $('#loginajax').click( Login );
    	
    	function Login(){
    		$('.requestlogin').html('<img src="images/ico_loading.gif" />');
    	
    		var username_l = $('.usrn_l').val();
    		var password_l = $('.pass_l').val();
    	
    		$.ajax({
    			type: 'POST',
    			url: 'includes/login.php',
    			data:"username_l="+username_l+"&password_l="+password_l,
    			dataType: 'json',			
    			success: function(sonuc){	
    				if (sonuc.loginStatus){
    					$('.requestlogin').fadeIn("slow");
    					$('.requestlogin').html(sonuc.context);
    					$('.requestlogin').fadeOut(5000);					
    					setTimeout(function(){									
                			window.location = "http://www.google.com.tr";
            			}, 5000);
    				}else{
    					//bilgiler yanlış ise
    					$('.requestlogin').html(sonuc.context);
    				}
    			}
    		});
    	
    	return false;
    	}
    



    Burasıda login.php

    
    $username = $_POST['username_l'];
    $password = $_POST['password_l'];
    
    if(isset($_SESSION['tr_e'])){
    	$dberror1 = "Giriş işleminiz başarılı. 5sn. içinde yönlendiriliyorsunuz.."; // Success
    	$dberror2 = "Bir hata meydana geldi. Tekrar deneyiniz."; // Error
    	$dberror3 = "Hata: Lütfen tüm alanları doldurunuz."; // Attention
    }else{
    	$dberror1 = "Login successful. Redirected with in 5 sc.."; // Success
    	$dberror2 = "An error has occurred. Please try again."; // Error
    	$dberror3 = "Error: Please fill in all fields."; // Attention
    }
    
    	include("../config.php");
    	
    	if(!empty($username) and !empty($password)){
    	
    		$checkClient = mysql_query("SELECT * FROM members WHERE username='$username' and password='$password'");
    		if(mysql_num_rows($checkClient) > 0){
    		
    				session_start();
    				
    				$_SESSION['user'] = $username;
    				$_SESSION['pass'] = $password;
    				$_SESSION['sitelogin'] = true;
    				
    				echo '{"loginStatus":true, "context":"'.$dberror1.'"}';				
    				//echo '<div class="tamam">'.$dberror1.'</div>';
    								
    			}else{
    				echo '{"loginStatus":false, "context":"'.$dberror2.mysql_error().'"}';				
    				//echo '<div class="hata">'.$dberror2.mysql_error().'</div>';
    				
    			}
    	
    	}else{
    		echo '<div class="ikaz">'.$dberror3.'</div>';
    	}
    
    

Cevaplar

  • 1
    eburhan adlı üyenin fotoğrafı
    13 yıl önce yazılmış
    8 cevap - 0 soru
    login.php'den geri dönen cevabı JSON haline getirin. Ve içerisine login işleminin başarılı olup olmadığını belirten bir değer ekleyin. Örnek:

     {"loginStatus":true, "context":"diğer içerik vs...."} 


    daha sonra success içerisinde şuna benzer bir kontrol yaptırabilirsiniz:

    success: function(response){
        // login işlemi başarılıysa
        if (response.loginStatus){
            setTimeout(funcrion(){
                window.location = "gidilecek url";
            }, 5000);
        }
    }
    
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      güzel soylemişsin. ama o verdigin biraz zor döner.. ben onla epey kafa patlatmıştım..
      php koduna sunlari ekle kardes:
      if basariliysa
      $data['success']=true;
      else
      $data['success']=false;

      php kodun en son cıktısını silip sunu ekle

      echo json_encode($data);

      simdi jquery kodlarına gelelim
      </javascript>
      success: function(data) {
      if(data.success) {
      // giris basariliysa yapacagin jquery
      $('.divalanin').html('buraya bir mesaj yaz...').show();
      setTimeout(function(){
      $(".divalanin").fadeOut("slow");
      window.location = 'http://www.google.com.tr';
      }, 5000); // body olan yere herhangi bir div alanıda yazabilirsin.

      }
      else {
      // giris basarili degilse
      $('.hatamesajialani').html('buraya bir mesaj yaz...').show();
      }

      </javascript>

      $.ajax kodunun hemen altına
      $('.hatamesajialani').hide(); eklemeyi unutma...
      12 yıl önce yazılmış
  • fka adlı üyenin fotoğrafı
    13 yıl önce yazılmış
    70 cevap - 0 soru
    JSON dönüş yap, sonra gelen sonuc değişkeni içerisine html ve bir de status gönder. Status 1 ise success functionu içerisine window.location.href = ... basabilirsin.
  • GncArt adlı üyenin fotoğrafı
    13 yıl önce yazılmış
    42 cevap - 13 soru
    JSON kısmını tam anlayamadım. Php de başarılı olunması durumunda echo mesajı:
    "Login successful. Redirected with in 5 sc.."

    Kullanımı bu şekilde mi yapacağım acaba:
    // AJAX LOGIN
    	$('#loginajax').click( Login );
    	
    	function Login(){
    		$('.requestlogin').html('<img src="images/ico_loading.gif" />');
    	
    		var username_l = $('.usrn_l').val();
    		var password_l = $('.pass_l').val();
    	
    		$.ajax({
    			type: 'POST',
    			url: 'includes/login.php',
    			data:"username_l="+username_l+"&password_l="+password_l,
    			success: function(sonuc){	
    				$('.requestlogin').fadeIn("slow");
    				$('.requestlogin').html(sonuc);
    				$('.requestlogin').fadeOut(5000);
    			},
    			{"loginStatus":true, "context":"Login successful. Redirected with in 5 sc.."}
    			function(response){
    			// login işlemi başarılıysa
    			if (response.loginStatus){
    				setTimeout(funcrion(){
    					window.location = "gidilecek url";
    				}, 5000);
    			}
    
    
    		});
    	
    	return false;
    	}
     
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      login.php sourcelerini yazabılırmısın..
      13 yıl önce yazılmış
    • GncArt adlı üyenin fotoğrafı GncArt
      Login.php:

       
      
      <?php 
      
      $username = $_POST['username_l'];
      $password = $_POST['password_l'];
      
      if(isset($_SESSION['tr_e'])){
      	$dberror1 = "Giriş işleminiz başarılı. 5sn. içinde yönlendiriliyorsunuz.."; // Success
      	$dberror2 = "Bir hata meydana geldi. Tekrar deneyiniz."; // Error
      	$dberror3 = "Hata: Lütfen tüm alanları doldurunuz."; // Attention
      }else{
      	$dberror1 = "Login successful. Redirected with in 5 sc.."; // Success
      	$dberror2 = "An error has occurred. Please try again."; // Error
      	$dberror3 = "Error: Please fill in all fields."; // Attention
      }
      
      	include("../config.php");
      	
      	if(!empty($username) and !empty($password)){
      	
      		$checkClient = mysql_query("SELECT * FROM members WHERE username='$username' and password='$password'");
      		if(mysql_num_rows($checkClient) > 0){
      		
      				session_start();
      				
      				$_SESSION['user'] = $username;
      				$_SESSION['pass'] = $password;
      				$_SESSION['sitelogin'] = true;
      				
      				echo '<div class="tamam">'.$dberror1.'</div>';
      								
      			}else{
      			
      				echo '<div class="hata">'.$dberror2.mysql_error().'</div>';
      				
      			}
      	
      	}else{
      		echo '<div class="ikaz">'.$dberror3.'</div>';
      	}
      
      ?>
      
      13 yıl önce yazılmış
    • Hasan adlı üyenin fotoğrafı Hasan
      {"loginStatus":true, "context":"Login successful. Redirected with in 5 sc.."}

      bu kodu login başarılı olduysa dönderdiğin echo ''; içine alman gerek.
      13 yıl önce yazılmış
    • GncArt adlı üyenin fotoğrafı GncArt
      Çok soru soruyorum ama dediğin gibi echo ile yazdırdım fakat kontrol kodunu success içine yazdığım zaman form çalışmıyor.

       
      function(response){
      	            // login işlemi başarılıysa
      	            if (response.loginStatus){
      	                setTimeout(funcrion(){
      	                    window.location = "gidilecek url";
      	                }, 5000);
      


      bu kodu buraya nasıl entegre edeceğim:
      $('#loginajax').click( Login );
      	
      	function Login(){
      		$('.requestlogin').html('<img src="images/ico_loading.gif" />');
      	
      		var username_l = $('.usrn_l').val();
      		var password_l = $('.pass_l').val();
      	
      		$.ajax({
      			type: 'POST',
      			url: 'includes/login.php',
      			data:"username_l="+username_l+"&password_l="+password_l,
      			success: function(sonuc){	
      				$('.requestlogin').fadeIn("slow");
      				$('.requestlogin').html(sonuc);
      				$('.requestlogin').fadeOut(5000);
      			}
      		});
      	
      	return false;
      	}
       
      13 yıl önce yazılmış