Kullanıcı adı ile veri çekme yardım!
Merhaba arkadaşlar, Aşağıda ki belirttiğim bir link var ben bu linkte ki "kullaniciadi" kısmı ile veritabanına eklediğim birinin verilerini çekmek için nasıl bir kod kullanmalıyım?
$_SERVER['REQUEST_URI']; bu şekilde çekmeyi denediğimde hata alıyorum yardımcı olabilirseniz sevinirim.
<?php
site.com/kullaniciadi
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (11)
Öncelikle merhaba bunu htaccess ile yapıcaksın
RewriteEngine On
RewriteRule ^([0-9a-zA-Z_]+)(/?)$ index.php?kul_adi=$1
Php'de yapman gereken ise
<?php
$kullanici_adi = $_GET["kul_adi"];
$row = $db->query("SELECT * FROM uyeler WHERE kullanici_adi = '" . $kullanici_adi . "' ")->fetch_assoc();
echo $row["sifre"];
?>
Daha fazla örnek için: https://www.phpr.org/php-htaccess-kullanimi/
İyi çalışmalar...
Neden "hakkimda.php" dosyasını sayfaya dahil etmeyi denemiyorsunuz?
Yapmak istediğiniz şeyi şöyle anladım;
.htaccess dosyanızı aşağıdaki gibi düzenleyin:
RewriteEngine On
RewriteRule ^([^/]*)$ index.php?user=$1 [QSA]
RewriteRule ^([^/]*)/([^/]*)$ index.php?user=$1&page=$2 [L]
Ardından klasörünüzde bir "about.php" dosyası oluşturun.
"about.php" dosyasının içeriği;
var_dump($_GET);
"index.php" dosyanıza geri dönün ve şu satırları ekleyin;
$user = isset($_GET["user"]) ? $_GET["user"] : null;
$page = isset($_GET["page"]) ? $_GET["page"] : null;
if($page != null){
$allowed_pages = [
"about" => "about.php"
];
if(isset($allowed_pages[$page])){
require $allowed_pages[$page];
exit;
} else {
exit("not allowed");
}
} else {
echo "hello $user";
}
Eğer sayfa olarak bir değer eklenirse o değeri sayfaya dahil eder.
Uygulamanın çıktısı aşağıdaki gibi olacaktır;
http://domain.com/6nok sayfası için;
hello 6nok
http://domain.com/6nok/about sayfası için;
array(2) {
["user"]=>
string(4) "6nok"
["page"]=>
string(5) "about"
}
Ancak bu tarz bir kullanımı tavsiye etmiyorum.
Bir router sınıfı yazabilir veya kullanabilirsiniz.
RewriteRule ^uye/([^/]*)/$ index.php?kul_adi=$1 [L]
RewriteRule ^uye/([^/]*)/([^/]*)/$ index.php?kul_adi=$1&hakkimda=$2 [L]
http://localhost/siteadi/uye/murat/
http://localhost/siteadi/uye/murat/hakkimda/
ayrı bılesenlerın onunde ek koykı karısmasın
selam, htaccess dosyanızı aşağıdaki gibi değiştirin.
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ index.php?user=$1&action=$2 [L]
daha sonra
https://domain.com/6nok/hakkinda
sayfasına girdiğiniz zaman $_GET değişkeni size
user = 6nok
action = hakkinda
döndürecektir.
test etmek için
var_dump($_GET);
kullanabilirsiniz
@qplot Hocam deneyecem önerinizi, Yusuf hocam cssde sıkıntı yok "kullaniciadi" ile sorun olmuyor ama "Hakkimda" bölümüne tıklayınca kullaniciadi yerine hakkimda olarak çalışıyor ve veritabanı hata veriyor.
RewriteEngine On
RewriteRule ^([0-9a-zA-Z_]+)(/?)$ index.php?kul_adi=$1 // Bunda sorun yok
RewriteRule ^(.*)$ hakkimda.php [L] // Bu bölümle ilgili bi sorun mu var?
<base href="https://siteadi.com" />
tum sayfalarda title nın ustune koy
css ve javascript dosyalarını çekerken css/style.css
değilde https://localhost/css/style.css
gibi çek o zaman sorun kalmaz
Hocam .htaccess ile çektiğimizde veriyi. http://site.com/kullaniciadi şeklinde açıyor sorun yok ama http://site.com/kullaniciadi/hakkinda dediğimde sistem bozuluyor. Gönderdiğin sayfada ki kodları denedim çalışmadı o mantığı kısaca yazabilirsen sevinirim.