Deyimi çalışmıyor eğer yönlendiriliyor

5 Cevap php

Hey, ben gerçek, basit bir sağ farklı bir sayfaya onları yönlendirmeleri bir if açıklama yapmak için çalışıyorum?

Ben bu çalışmıyor ama ben kullanıyorum neden emin değilim:

if ($_POST['accounttype']=='Paid User - £2 p/m'){
    $userid = strtolower($_SESSION['X2X2']);
    $getuser = mysql_query("SELECT * FROM XXXXXX WHERE X2X2 = '$userid'");
    $info = mysql_fetch_array($getuser);
    $id = $info['X3X3'];
    mysql_query("UPDATE members SET payment = '" . mysql_real_escape_string("XXXXXXXX"). "' WHERE X3X3 = $id");
    header('Location: http://beta.XXXXX.co.uk/purchase.php');
    mysql_close($con);
}

Ben koyduğunuzda

<?
echo $_POST['accounttype'];
?>

Ve geri almak

Paid User - £2 p/m

Hangisi doğru?

Any help would be appreciated, Thanks.

5 Cevap

O £ bağlı görünüyveya gibi, $_POST['accounttype'] olabilir bağlı olarak hangi değerleri üzerinde çeşitli olasılıklar var.

Öncelikle ben denemenizi öneririz:

if ($_POST['accounttype']=='Paid User - &pound;2 p/m'){

(as &pound; is £ in HTML).
If this doesn't wveyak, what is the part of the string, that makes it unique? Paid User veya 2 p/m? If any of these, it is sufficient to check against a substring like:

if (substr($_POST['accounttype'],-5)=='2 p/m'){

veya

if (substr($_POST['accounttype'],0,9)=='Paid User'){

veya any combination (avoiding £).

Herhangi bir şans eseri tarayıcı zaten çıkış şey sana sahip değil? Eğer yankı veya yazdırma ifadeleri kullandıktan sonra yere başlığını değiştirebilir, size ayrıntılı hataları veya günlük açık olmadığı sürece muhtemelen görmezsiniz bir uyarı verecektir.

PHP komut dosyası gönderilmesini konum üstbilgisi engeller yürütme, başlamadan önce UTF-8 dosya bayt sırası işareti (BOM) çıkışı vardır - bu PHP bazı sürümlerinde UTF-8 dosyaları ile olabilir biliyorum.

Ile HTTP başlığını değiştirerek header requires that the HTTP header has not been sent yet. This can be one reason for why it doesn’t work for you as the HTTP header is sent together with the first output of your script (any output including text before <?php).

Eğer error_reporting to E_ALL set ve display_errors to true PHP, size hemen tüm hataları görüntüler. Bu size hatanın nedenini belirlemek için yardımcı olabilir.

Benim ilk eğim aşağıdaki deneyerek POST verileri üzerinde herhangi bir ekstra karakterler olup olmadığını kontrol etmek olacaktır:

if (trim($_POST['accounttype']) == 'Paid User - £2 p/m') {