$ _SERVER ['PHP_SELF'] ile sorun

2 Cevap php

Ben kullanıcı oturum açmış arkadaşlar gösterilen ve bu sayfada bu gibi kullanıcının arkadaşlarından her biri için aşağıdaki gibi bir bağlantı olduğunu vardır benim php sayfaları birinde bir bağlantı var:

echo "<a href='profile.php?id=$row[friend_id]'>$friend_row[name]</a>";

Gördüğünüz gibi ve arkadaşının kimliği profil sayfasına geçirilir ve profil sayfasında kullanıcının kendi profilini görebilir ve onlar için yorum bırakın. İşte şeklidir:

<form name="comment" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="comment" class="comment" />
    <input type="submit" name="submit" value="submit" class="comment" />
</form>

ve bu php kod aşağıdaki gibidir:

$insert="INSERT INTO comment (login_id,friend_id,msg)
                    VALUES ('$_SESSION[friend_id]','$_SESSION[id]','$_POST[comment]')";
$result = mysql_query($insert) or die(mysql_error());

Şimdi soru $_SESSION[friend_id] $_GET[id] Bu komut tarafından $_SESSION[friend_id]=$_GET[id] için equall olduğunu olanı ve sayfaya passsed edildi önceki hiçbir değeri var ve 0 gibi görünüyor formu gönderdikten sonra benim SQL tablo. Ben bu php script idam olsun önce echo çalıştı ve doğru değeri vardı ama bu php kod çalıştırıldıktan sonra, o gitti!

Neden kimse bana söyleyebilir misiniz?

2 Cevap

Değişken aslında o başlatır kod sonrası sürece beklediğinizden daha farklı bir değer içeren Kimse neden söyleyebilirim, ama herkes bir SQL sorgusuna $ _GET süper küresel dizi çekin şey shoving bir olduğunu söyleyebilirim hemen korkunç bir fikir.

Kenara SQL enjeksiyon sıkıntılardan, o oturum gibi görünüyor başlatılan değil ...

Eğer herhangi bir PHP dosyası $ _SESSION değişkeni kullanmak için gidiyoruz, her zaman emin session_start var olun (); o dosyanın başında ..

Umarım ki olur ...