Merhaba,
Evet diplomanın olması çok büyük bir avantaj aslında. Sana tavsiyem bu alandaki hedeflediğin üniversitelerin taban puanlarını araştırman. Sonrasında bu taban puan için ne kadar matematik neti gerektiğini ve diğer derslerden gereken net sayılarını öğrenmeni tavsiye ederim. Bu konuda rehberlik servisi yardımcı olabilir sanırım. Sonrasında kendine çalışma planı oluşturup hedefin için çalışmanı öneririm. Eğitimini almak, diplomasına sahip olmak çok değerlidir. Bir ders planı yapıp günlük ders planını uygularsın, geri kalan zamanından bolca yazılımla ilgilenebilirsin. Emin ol yaparsın. İnşallah her şey gönlünce olur.
<div><textarea>ss</textarea></div>
<a href="?Islem=Oku">OKU</a>
Ekrana böyle geliyor. Bir sorun görünmüyor. Bu arada fOpen("okunanBelge.txt" , "r"); ve fileSize ("text.txt")); kısımlarındaki dosya isimleri aynı olmalı.
$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>
Ne demek hocam. Küçük buglar olabilir, çok test etmeden yolladım ama mantığı anladıysanız halledebilirsiniz diye düşünüyorum. 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 = "";
}else{
$zaman = $_SESSION["tiklamazamani"];
$date = kacDKOldu($zaman);
}
}
if($_GET){
if($_GET["action"]=="serverrestart"){
if($date=="" || $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", "sayfaadi.php?action=serverrestart", true);
baglan.send();
}
</script>
<a href="nojavascript...ServerRestart();"><span class="orange">Restart</span></a>
//php kodların kısmına, yazmak istediğin komut vs. şeyleri yazabilirsin yine.
Zaman değerini cookieye atarsak kullanıcı cookieyi değiştirerek sistemi kandırabilir diye session'a atadım. Mesajı cookieye atama nedenim de js tarafında da cookieye erişmek ve js ile alert etmek.
response text'i kullanmadım çünkü aynı sayfa içerisinde hem php hem js yani html kullandığımız için response text'e tüm page döndürülecekti.
5 dakika geçmeden 2. tıklamayı kabul etmemek için bunu kullanabilirsin, kolay gelsin. Biraz karmaşık ama anlayacaksın eminim :)
"sayfaadi.php?action=serverrestart" kısmını, kodu yazdığın sayfa adı ile değiştirip direkt kopyalayıp yapıştırabilirsin tüm kodu. Çalışıyor.
Kaynaklar
İki tarih arasındaki farkı bulmak için yararlandığım kaynak: https://www.vyz.gen.tr/php-ile-kac-dakika-once-yazildi
JavaScript cookie için yararlandığım kaynak: https://www.w3schools.com/js/js_cookies.asp
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.