2012-12-09 5 views
15

bittikten bu http://localhost/join/prog/ex.php?name=MEMORY+2+GB&price=20&quantity=2&code=1&search=addkaldır GET parametresi i GET yöntemini kullandığınızda bu <code>http://localhost/join/prog/ex.php</code></p> <p>gibi url var, (kullanmayan POST) PHP

Benim soru gibi url adresi: böylece , Hala GET yöntemini kullanıyorum ama GET yöntemini işledikten sonra bitirmek istiyorum, daha önce (POST yöntemi kullanmayan), URL'yi http://localhost/join/prog/ex.php'a geri (parametre kaldır) istiyorum. Nasıl yapabilirim?

+0

Bir üstbilgi yönlendirmesi yapabilirsin, ancak hangi amaçla? –

+0

değişkenleri kaybetmeden mi? neden olduğunu göremiyorum ama yine de html5 pushState – Popnoodles

+0

@pekka: Yönlendirme yok, ancak GET yöntemini kullanarak bittiğinde parametreyi kaldırmak istiyorum (sadece parametreyi kaldır) – dtnder

cevap

27

Bunu HTML dosyanıza koyun (HTML5). Örneğin, bir oturumu kullanarak bir arka uç çözümünü kullanarak;

<? 
    session_start(); 
    if (!empty($_GET)){ 
     $_SESSION['got'] = $_GET'; 
     header('Location: http://localhost/join/prog/ex.php'); 
     die; 
    } 
    else{ 
     if (!empty($_SESSION['got'])){ 
      $_GET = $_SESSION['got']; 
      unset($_SESSION['got']); 
     } 

     //use the $_GET vars here.. 
    } 
+0

' '. O çalışır, thx. – dtnder

+2

JS çözümü yalnızca HTML5 uyumlu tarayıcılarda çalışır. Arka uç versiyonu her durumda çalışır. – Sanne

+0

' ' Bu harika çalışıyor –

0

Eğer apache kullanıyorsanız, mod_rewirte ile bir .htaccess dosyası kullanmayı düşünün. Here hızlı başlangıç. Bu sonucun web.config dosyasıyla birlikte elde edilebileceğini düşünüyorum.

1

Dosya ex.php dosyasına yönlendirmek istediğiniz URL'yi çağırdıktan sonra sanırım bu sefer parametreler olmadan. Bunun için ex.php aşağıdaki kodu kullanmayı deneyin burada

<? 
if($_GET['name']!='' || $_GET['price']!='' ||$_GET['quantity']!='' ||$_GET['code']!='' || $_GET['search']!=''){ 

/* here the code checks whether the url contains any parameters or not, if yes it will execute parameters stuffs and it will get redirected to the page http://localhost/join/prog/ex.php without any parameters*/ 

/* do what ever you wish to do, when the parameters are present. */ 

echo $name; 
print $price; 
//etc.... 

$location="http://localhost/join/prog/ex.php"; 
echo '<META HTTP-EQUIV="refresh" CONTENT="0;URL='.$location.'">'; 
exit; 
} 
else{ 
/* here rest of the body i.e the codes to be executed after redirecting or without parameters.*/ 
echo "Hi no parameters present!"; 
} 
?> 

u kimliği sadece herhangi bir parametre sorgu dizesinde varsa kontrol etmeden aynı sayfaya yönlendirme yönlendirme yaptıklarını. kod, parametrelerin varlığını akıllıca kontrol eder, herhangi bir parametre vardır, ex.php'ye yönlendirme yapar, aksi takdirde "Parametreler mevcut değil!" dize!

5

Sadece querys yüklemeden sonra tarayıcınızın URL çubuğuna kaybolur GET yapmak gerekir dosyasının en bu koyun BASİT YANIT.

<script>  
    if(typeof window.history.pushState == 'function') { 
     window.history.pushState({}, "Hide", '<?php echo $_SERVER['PHP_SELF'];?>'); 
    } 
</script> 
İlgili konular