Fonksiyon ile Post ( PHP )
Selamlar...
<a href="javascript:ServerRestart();"><span class="orange">Restart</span></a>
Bu şekilde bir yapı var. Yapmak istediğim olay şu:
Click yaptığım zaman
function ServerRestart(){
alert("UYARI: Tebrikler, sunucunuz yeniden başlatıldı. Başlama süresi max: 10 saniyedir.");
}
Bu fonksiyon çalışacak ama "alert" öncesi farklı bir sayfaya bilgi göndermem lazım. Yani restart komutunu.
Oda bu komut:
$Restart = "screen -dr $who -X quit; sleep 1;
Click işlemi a.php ' de
Restart işlemi b.php ' de
Son olarak kişi 2. kez restart yapmak istediğinde 5 dakika beklemelisin uyarısı çıkması gerek. Biraz karışık oldu ama bunu nasıl yapabilirim ?
$date="" kısmı yerine $date="6" daha doğru. şuan çok daha iyi. son hali. bunu kullanın. kolay gelsin.
<?php
session_start();
function kacDKOldu( $tarih ){
try {
$date1 = new DateTime( date('Y-m-d H:i:s') );
$date2 = new DateTime( $tarih );
$interval = $date1->diff( $date2 );
$result = $interval->format('%i');
$result = preg_replace('/\b0+\s+[a-zA-Z-ıü]+,?\s*/is','',$result);
return $result;
} catch (Exception $e) {
return false;
}
}
if($_SESSION){
if($_SESSION["tiklamazamani"]==""){
$date = "6";
}else{
$zaman = $_SESSION["tiklamazamani"];
$date = kacDKOldu($zaman);
}
}
if($_GET){
if($_GET["action"]=="serverrestart"){
if($date > 5){
//bu alandaki kodlar sadece ilk tıklama yapıldığında çalışır.
//ikinci bir tıklamada çalışması için tıklama üzerinden 5dk geçmesi gerekir.
//php kodların
$_SESSION["tiklamazamani"] = date('Y-m-d H:i:s');
}else{
$gecenzaman = kacDKOldu($zaman);
$kalanzaman = 5 - $gecenzaman;
if($gecenzaman=="0"){
setcookie("restartmesaji", "Tıklama üzerinden henüz birkaç saniye geçti. $kalanzaman dakika sonra yeniden deneyin. ");
}else{
if($gecenzaman=="5"){
setcookie("restartmesaji", "Tıklama yapabilmeniz için birkaç saniye kaldı.");
}else{
setcookie("restartmesaji", "Tıklama üzerinden henüz $gecenzaman dakika geçti. $kalanzaman dakika sonra yeniden deneyin. ");
}
}
}
}
}
?>
<script type="text/javascript">
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function ServerRestart() {
var baglan = new XMLHttpRequest();
baglan.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var response = this.responseText;
let restartmesaji = getCookie("restartmesaji");
if (restartmesaji != "") {
alert(getCookie("restartmesaji"));
}
}
}
baglan.open("GET", "deneme.php?action=serverrestart", true);
baglan.send();
}
</script>
<a href="nojavascript...ServerRestart();"><span class="orange">Restart</span></a>