Aynı sayfada işlem yapacaksan eğer, sayfayı şöyle düzenlersin
<?php
if($_GET){
if($_GET["action"]=="serverrestart"){
//php kodların
}
}
?>
<script type="text/javascript">
function ServerRestart() {
var baglan = new XMLHttpRequest();
baglan.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var response = this.responseText;
}
}
baglan.open("GET", "?action=serverrestart", true);
baglan.send();
}
</script>
<a href="nojavascript...ServerRestart();"><span class="orange">Restart</span></a>
Bu kod ile aynı sayfaya bir get isteği atıyor ve bunu yakalıyorsun. Ama bu şekilde response text alamazsın okadar.
"//php kodların" satırında yine dakika kontrolü kodlarını ve çalıştırmak istediğin restart komutunu yazabilirsin
Eğer sorun çıkarsa, "?action=serverrestart" kısmını "sayfaninadi.php?action=serverrestart" yapabilirsin
<script type="text/javascript">
function ServerRestart() {
var baglan = new XMLHttpRequest();
baglan.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var response = this.responseText;
}
}
baglan.open("GET", "b.php", true);
baglan.send();
}
</script>
tıklama yaptıracağın sayfada bunu kullanabilirsin. var = response satırının altına alert(); ekleyebilirsin.
b.phpye istediğin komutu yazabilirsin. şuanki zamanın dakikasını date('m') alıp sessiona atar 5 eklersin, şuanki zaman, sessiondakinden küçükse işlem yaptırmaz, 5 dk beklemelisin uyarısı verirsin.
umarım işine yarar
online adında veritabanı tablosu
- kullanıcıadı
- onlineolmazamani
Kullanıcı giriş yaptığında bu veritabanına kullanıcı adı ve online olma zamanı eklenir.
Kullanıcı her sayfa değiştirdiğinde veritabanındaki onlineolmazamani update edilir.
Tabi bunun için bu update işlemi kodu her sayfaya eklenmeli. Her sayfada include edilen dosya varsa ona koymak daha iyi olur.
Online kişileri listeleme sayfası oluşturulur.
Burada, online adındaki veritabanı tablosundaki onlineolmazamani, şuanki zaman değerinden maks 30sn daha eski olanlar listelenir.
30 sn daha eski olanlar ise tablodan silinir.
javascript kullanarak setinterval ile apiye istek atarak çok gerçekçi online bilgisi elde edilir ama hosting küçükse bandwidth sıkıntısı çıkarır.
Umarım işine yarar.
Hatalar yapa yapa ilerleyeceksin. Müthiş bir heves gördüm sende :)
<base> tagı ile sorunu çözebilirsin. tagi googleda araştırmanı öneririm.
Ayrıca soru çok karmaşık. Anlamadım bir şey.
Rica ederim çok sevindim, kolay gelsin :)
Anlatmak istediğini böyle anladım ama... Kolay gelsin öncelikle :)
<?PHP
function getdegerleri($sayi = 0){
$adres = $_SERVER["REQUEST_URI"];
$x = explode("?", $adres);
$getdegerleri = $x[1];
$y = array_filter(explode("&", $getdegerleri));
$z = $y[$sayi];
$deger = explode("=", $z);
return $deger[1];
}
Örneğin sayfamızın adresi şöyle olsun:
http://localhost/profile/my?action=1&s=success&page=1
Url sonunda üç tane get değeri var. Hangi değeri almak istiyorsan o değerin sayısını girmen yeterli. Örneğin:
getdegerleri(0);
//Çıktı: 1
getdegerleri(1);
//Çıktı: success
getdegerleri(2);
//Çıktı: 1
Yani ha $_GET[""] ile almışsın ha alttaki gibi :)
$degisken = getdegerleri(0);
Yardım edebilmişimdir umarım :)
Fonksiyonun son hali şu şekilde. Eğer fonksiyona ikinci parametre olarak 1 değeri girerseniz isim ve soyismin geri kalan harflerini yıldız ile sansürlüyor. Test ettim :)
<?PHP
function ilkharfler($adsoyad, $yildiz = 0){
$bol = explode(" ", $adsoyad);
$ad = $bol[0];
$soyad = $bol[1];
$x = substr($ad, 1);
$adilkharf = str_replace($x, "", $ad);
$y = substr($soyad, "1");
$soyadilkharf = str_replace($y, "", $soyad);
if($yildiz=="1"){
for($sayi = 0; $sayi < strlen($x); $sayi++) {
$yildiz_ad = "$yildiz_ad" . "*";
}
for($sayi = 0; $sayi < strlen($y); $sayi++) {
$yildiz_soyad = "$yildiz_soyad" . "*";
}
}
return "$adilkharf" . "$yildiz_ad" . " " . "$soyadilkharf" . "$yildiz_soyad";
}
Kullanımı:
<?PHP
echo ilkharfler("Elon Musk", 1);
//Çıktı: E*** M***
echo ilkharfler("Elon Musk");
//Çıktı: E M
Belki bu şekilde daha çok işine yarar. Kolay gelsin :)
Çok özür diliyorum, cevabımı düzelttim. Bir anda hızlı bir cevap vermişim. Fonsiyon olarak yazdım ayrıca. Kusura bakma :)