Google'da php curl ile bir sayfadan veri çekmek olarak aratabilirsin. Explode, implode gibi php fonksiyonlarını da iyi kullanabiliyorsan yapabilirsin. Kolay gelsin
Merhaba kardeşim,
Bu işler için illa dosyaya yazdırarak veri tutacaksan php json veritabanı kullanabilirsin. Bende bi class dosyası var bununla ilgili. İnternetten bir bak, pek anlaşılmazsa bendeki daha anlaşılır diye düşünüyorum. Localimde duruyor, githuba atar link atarım buraya istediğinde. Çok daha kolayına gelecektir. İyi çalışmalar
Kendi sitende bir php dosyası olsun. Bu dosyaya get ile bir iki adet token karşılığında ekrana bazı bilgiler döndürsün. Bu bilgiler, sürüm numarası ve güncelleme yapılan dosya isimleri ve güncelleme yapılacak sitede bu dosyaların her birinin ayrı ayrı dosya yolu olsun. Müşteri, admin paneline girdiğinde curl ile tokenleri de yollayarak sitenden bu dosyayı her yenilemede çekip kontrol etsin. Kendi kullandığı sürüm numarası buradaki ekrana dönen json bilgilerindeki sürüm numarası aynıysa admin paneli ekranına bir şey yazdırmazsın. Farklıysa yeni sürüm mevcut güncelle butonu koyarsın. Bu butona müşteri tıkladığında yine bu php dosyana tokenler yardımı ile erişir ve yayınlanan dosya url adreslerini yine curl ile çeker ve belirtilen dosya yoluna, aynı isimde eski dosya varsa o dosyayı silip bunu yukler. Müşteri verileri veritabanında olduğu için hiçbir problem çıkmayacaktır. Böyle kullanmıştım ben.
Bana göre her şeyin başında googleda iyi arama yapabilme geliyor. Daha sonrasında ise hayal gücü ve bununla ortaya çıkan fikirler.
Kim ne der bu kodlarıma demeden, çok güzel şekilde kod yazdığına inanarak, aklına gelen fikirleri uygulamaya koymaya çalış.
Kod her şey değildir. Örneğin bi sayfam olsun şu sayfadan veri çekip bi butona basınca o verideki bazı yerleri şu backend sayfama post etsin diye bir fikir düşündüysen her şeyden önce bu işlemlerin sırasını kafanda kurmalısın. Sonrasında googlelama başlıyor. Veriyi nasıl çekerim diye soruyorsun kendine. Bunu ingilizce olarak google'da aratıyorsun.
İngilizcen yoksa google'a çeviri yaz, google translate çıkıyor. Oraya sade bir türkçeyle sorununu yaz. Örneğin:
Sorumuz şu olsun: Javascript ile bir url adresinden nasıl veri alırım
Çeviriyoruz: How do I get data from a url with javascript
İlk çıkan sonuçta bizim sorumuzun cevabı var: https://www.geeksforgeeks.org/how-to-use-the-javascript-fetch-api-to-get-data/
Böyle böyle bol bol kod yapısı gördükçe ve fikirlerinde yeni kodlar kullandıkça çok daha iyi öğrenmiş olursun. Js dersleri de alabilirsin ama kodlama yaparken önüne çıkacak sorunların hepsi derslerde anlatılmaz. Bana göre deneyim insanı geliştirir.
İş gören yazılımlar var diye yeni yazılımlar geliştirilmez diye bir durum yok ki ortada. X yazılımını bilen insan lazımsa şirketler bu kişileri çalıştırmak isteyebilir ama kodlama dillerini bilen insanların önü kapanmaz. Bildiğin dil ile çıkıp güzel bir framework vs. yaparsın ve adını duyurursun. Bu kez de senin ortaya koyduğun şeyi insanlar öğrenip kullanıp kazanmak ister. Senelerdir de böyle.
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