PHP'nin oturumları ile sonraki sayfaya geçerli URL almak için

4 Cevap php

How can you use the part after the question mark in the url which comes as a output of the following variable?

$_SERVER['HTTP_REFERER'];

Ben başarısız çalıştırmak

if (0 !== $_GET['question_id'] && isset( $_GET['question_id'] ) ) {                                              
    $result = pg_execute( $dbconn, "query_fetch", array( $_GET['question_id'] ) ); 
}
if (isset( $_SERVER['question_id'] ) ) {
    $result = pg_execute( $dbconn, "query_fetch", array( $_SERVER['question_id'] ) ); 
}
                                                        // problem here!

4 Cevap

Ben bir sayfanın referer kullanmak isteyebilirsiniz düşünüyorum.

http://archives.devshed.com/forums/php-windows-119/get-referer-with-php-2329588.html

Sen kullanarak Referer'a ve $_GET equivilant alabilirsiniz:

$parts = explode("?", $_SERVER['HTTP_REFERER']);
$get = parse_str(end($parts))

Eğer değişken kullanımı zaman $_SERVER, sen önceden tanımlanmış değişkenlerden birini kullandığınızdan emin olun. $_SERVER['question_id'] $_SERVER dizi olması muhtemel değildir.

......
// These variables aren't normally present:
if (isset( $_SERVER['question_id'] ) ) {
    $result = pg_execute( $dbconn, "query_fetch", array( $_SERVER['question_id'] ) ); 
}

Reply to Gumbo's answer

Aşağıdaki gibi ben senin cevabını anlamak

$pattern = '/\?([^#]*)/';
$subject = $_SERVER['HTTP_REFERER'];
$query = preg_match($pattern, $subject, $match) ? $match[1] : '';  // extract query from URL
parse_str($query, $params);
$question_id = explode( "=", $query );           // to get the parameter
echo "This is the output: " . $question_id[1];

How can you access the variable $params without the use of explode?

Ben başarısız aşağıdaki komutları çalıştırın

print_r( $params );
var_dump( $params );

Eski ikinci şey ise, bana Array() verir.