2012-12-09 39 views
15

जब मैं GET पद्धति का उपयोग मैं इस http://localhost/join/prog/ex.phpनिकालें प्राप्त पैरामीटर, समाप्त हो गया है (पोस्ट का उपयोग नहीं) पीएचपी

तरह यूआरएल है इस http://localhost/join/prog/ex.php?name=MEMORY+2+GB&price=20&quantity=2&code=1&search=add

मेरा प्रश्न की तरह यूआरएल पता है: तो , मैं अभी भी जीईटी विधि का उपयोग करता हूं लेकिन मैं जीईटी विधि में प्रसंस्करण के बाद चाहता हूं, मैं यूआरएल वापस (पैरामीटर को हटाएं) http://localhost/join/prog/ex.php में, जैसा कि पहले (POST विधि का उपयोग नहीं कर रहा) में करना चाहता हूं। मैं यह कैसे कर सकता हूं?

+0

आप हेडर रीडायरेक्ट कर सकते हैं, लेकिन किस अंत में? –

+0

चर खोने के बिना? नहीं देख सकते हैं, यही कारण है कि क्या तुम करोगी लेकिन वैसे भी HTML5 pushstate – Popnoodles

+0

@pekka: नहीं रीडायरेक्ट, लेकिन मैं जब GET विधि के उपयोग समाप्त पैरामीटर निकालना चाहते हैं (बस पैरामीटर निकालने के लिए) – dtnder

उत्तर

27

रखें अपने HTML फ़ाइल में (एचटीएमएल 5) इस।

<script>  
    if(typeof window.history.pushState == 'function') { 
     window.history.pushState({}, "Hide", "http://localhost/join/prog/ex.php"); 
    } 
</script> 

या उदाहरण के लिए सत्र का उपयोग करके बैकएंड समाधान का उपयोग करना;

<? 
    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

' '। यह काम करता है, thx। – dtnder

+2

जेएस समाधान केवल HTML5 संगत ब्राउज़रों में काम करता है। बैकएंड संस्करण हर स्थिति में काम करता है। – Sanne

+0

' ' Thats बहुत अच्छा काम –

0

यदि आप अपाचे का उपयोग कर रहे हैं, तो mod_rewirte के साथ .htaccess फ़ाइल का उपयोग करने पर विचार करें। Here एक क्विकस्टार्ट। मुझे लगता है कि यह परिणाम iis पर भी web.config फ़ाइल

1

मुझे लगता है कि यूआरएल को कॉल करने के बाद आप ex.php फ़ाइल पर रीडायरेक्ट करना चाहते हैं, लेकिन इस बार बिना किसी पैरामीटर के। उस के लिए ex.php में निम्नलिखित कोड का उपयोग कर प्रयास

<? 
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!"; 
} 
?> 
यहाँ

यू क्या किया आईडी अभी जाँच के बिना एक ही पृष्ठ पर रीडायरेक्ट यदि कोई पैरामीटर क्वेरी स्ट्रिंग में है अनुप्रेषित। कोड बुद्धिमानी से पैरामीटर की उपस्थिति की जांच करता है, आईडी किसी भी पैरामीटर हैं, यह ex.php पर रीडायरेक्ट करेगा अन्यथा यह "हाय कोई पैरामीटर मौजूद नहीं होगा" प्रिंट करेगा! स्ट्रिंग!

5

सरल उत्तर

बस फ़ाइल आप प्राप्त querys लोड हो रहा है के बाद ब्राउज़र का यूआरएल बार से गायब करने के लिए की जरूरत के शीर्ष में रखें।

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