2017-09-10 5 views
0

私はこのURL(www.website/all_file/profil.php?u=username)を使用してプロファイルに入る前に、すべての情報がプロファイル画像を含むすべての情報を表示していました。URL変更後に画像が表示されないようにするには

しかし、私が(www.website/all_file/profil.php/username)のURLを変更してプロファイルに入れると、情報が表示されますが、ユーザーのプロフィール画像は表示されません

ここ

URL(www.website/all_file/profil.php?u=username)のコードである:

URLに
$uss = $_GET['u'] ; 


$m = "SELECT username,image_user,about,contact FROM database.users WHERE username= '$uss' "; 
     $de = mysqli_query($database_connection,$m); 



     while($rows = mysqli_fetch_assoc($de)){ 

     $cnt = $rows['contact']; 
     $abt = $rows['about']; 
     $usern = $rows['username']; 
     $img = $rows['image_user']; 


echo $cnt; 
echo $usern;  
echo <img width='100' height='100' src='image_users/".$img." '>; 

(www.website/all_file/profil.php/username)コード、私は$ uss = $ _GET ['u']を$ uss = 'username'に変更します。

ユーザープロファイル画像のストックファイル(images_users)とprofil.phpは、images_usersファイルの前にあります。画像がすでに入っているため、問題はデータベースではありません。 ありがとう

+0

あなたのコードは、SQLインジェクションの脆弱性である、あなたは修正する必要がありますこの。 – Enstage

+0

どうすれば修正できますか? –

+0

私は$ uss = mysql_real_escape_string($ _ GET ['u'])を追加する必要があることを知っています。しかし、私は$ uss = $ _GET ['u']をもう持っていません。私は$ uss = 'username'を代わりにURLから取っています(www.website/all_file/profil.php/username)。 –

答えて

0

URLを変更すると、相対URLは以前と同じ場所を指していません。 URLは/all_file/profil.phpたとき

以前は、image_users/$img/all_file/image_users/$img指さ - お使いのブラウザはprofile.phpは、ファイル名(最後の/後のすべてが)あったことを知っているから。

URLのパスの使用方法を変更すると、新しいパスは/all_file/profil.php/usernameになります。これをベースパスとして相対URLを指定すると、ブラウザはprofil.phpディレクトリパスの一部と考えています。したがって、ブラウザは/all_file/profile.php/image_users/$imgからイメージをロードしようとします。これは、image_users/$imgという名前のユーザーのプロファイルを読み込もうとしているため、失敗します。

あなたの代わりに相対的な画像を使用しての画像への絶対パスを使用している、と画像が再びロードする必要があり、パスを交換してください:

echo "<img width='100' height='100' src='/all_file/image_users/".$img." '>"; 
関連する問題