nextjs kendi içerisinde bir sunucu ile çalıştığından build alırsan sunucu değil sadece react gibi basic bir javascript yapısı olarak kullanabileceksin. Bunun için youtube prototürkte bulunan vercel, netlify ile ilgili videoları izleyebilir, kendin deneyebilir ya da dediğim gibi build alıp server ile ilgili olan şeyleri kaybetip kullanmaman gerekebilir.
Alternatif bir çözüm olarak bir hosting'den ziyade sunucu kiralayabilirsin.
- Analitik
- Google Analytics
- Web Sunucusu
- LiteSpeed
- Programlama Dilleri
- PHP 7.3.33
- CDN
- jQuery CDN
- Reklamcılık Ağı
- Google AdSense
- Etiket Yöneticisi
- Google Tag Manager
- Canlı Sohbet
- Tawk.to
- JavaScript Kütüphaneleri
- Swiper
- Select2
- jQuery
Merhaba!
PHP ile whois sorgulaması yapmak istiyorsunuz ve .com, .com.tr, .net, .net.tr, .org, .org.tr alan adlarının boşta veya satın alınmış olduğunu tespit etmek istiyorsunuz. Doğru sonuçları elde etmek için DNS sorgulamasının yetersiz kaldığını belirtmişsiniz.
Birçok programlama dilinde whois sorgusu için standart bir kütüphane veya işlev bulunmamaktadır. Ancak, bu işlemi gerçekleştirebilmek için bazı yöntemler kullanabilirsiniz. İşte bir örnek kod parçası:
<?php
function isDomainAvailable($domain) {
$whoisServers = array(
".com" => "whois.verisign-grs.com",
".net" => "whois.verisign-grs.com",
".org" => "whois.pir.org",
".com.tr" => "whois.nic.tr",
".net.tr" => "whois.nic.tr",
".org.tr" => "whois.nic.tr"
);
$domainParts = explode(".", $domain);
$tld = strtolower(end($domainParts));
if (array_key_exists($tld, $whoisServers)) {
$whoisServer = $whoisServers[$tld];
$result = queryWhoisServer($whoisServer, $domain);
return strpos(strtolower($result), "no match") !== false;
}
return false;
}
function queryWhoisServer($whoisServer, $domain) {
$port = 43;
$timeout = 10;
$fp = @fsockopen($whoisServer, $port, $errno, $errstr, $timeout);
if ($fp) {
fputs($fp, $domain . "\r\n");
$response = '';
while (!feof($fp)) {
$response .= fgets($fp, 128);
}
fclose($fp);
return $response;
}
return "";
}
// Kullanım örneği
$domain = "example.com";
if (isDomainAvailable($domain)) {
echo "Alan adı boşta.";
} else {
echo "Alan adı satın alınmış.";
}
?>
Bu kod parçası, isDomainAvailable fonksiyonu aracılığıyla belirtilen alan adının boşta olup olmadığını kontrol eder. $whoisServers dizisi, farklı TLD'ler için ilgili whois sunucusunu içerir. queryWhoisServer fonksiyonu, whois sunucusuna bağlanarak sorguyu gerçekleştirir ve sonucu döndürür.
Yukarıdaki örnekteki example.com alan adını kendi araştırmalarınız için uygun bir alan adıyla değiştirmeniz gerektiğini unutmayın.
Umarım bu yardımcı olur!
Frontend (React.js) Kodu
import React, { useState } from 'react';
function UrunEkle() {
const [urunAdi, setUrunAdi] = useState('');
const [urunFiyati, setUrunFiyati] = useState('');
const [csrfToken, setCsrfToken] = useState('');
// CSRF token'ı backend'den almak için bir fonksiyon yazın
function getCsrfToken() {
fetch('http://siteismi.com/csrf_token.php', {
credentials: 'include'
})
.then(response => response.json())
.then(data => setCsrfToken(data.csrfToken));
}
// Sayfa yüklendiğinde CSRF token'ını alın
useEffect(() => {
getCsrfToken();
}, []);
// Ürün bilgilerini backend'e gönderen bir fonksiyon yazın
function handleSubmit(event) {
event.preventDefault();
const data = {
urunAdi: urunAdi,
urunFiyati: urunFiyati,
csrfToken: csrfToken // CSRF token gönderilir
};
fetch('http://siteismi.com/urun_ekle.php', {
method: 'POST',
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
},
credentials: 'include'
})
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
console.log(data);
})
.catch(error => {
console.error('Error:', error);
});
}
return (
<form onSubmit={handleSubmit}>
<div>
<label htmlFor="urun-adi">Ürün Adı:</label>
<input type="text" id="urun-adi" value={urunAdi} onChange={e => setUrunAdi(e.target.value)} />
</div>
<div>
<label htmlFor="urun-fiyati">Ürün Fiyatı:</label>
<input type="number" id="urun-fiyati" value={urunFiyati} onChange={e => setUrunFiyati(e.target.value)} />
</div>
<input type="hidden" name="csrf_token" value={csrfToken} /> {/* CSRF token hidden input alanı olarak eklenir */}
<button type="submit">Ürün Ekle</button>
</form>
);
}
Backend (PHP) Kodu
<?php
session_start();
// Veritabanı bağlantısı yapılır
$servername = "localhost";
$username = "kullanici_adi";
$password = "sifre";
$dbname = "veritabani_adi";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Veritabanı bağlantısı başarısız: " . $conn->connect_error);
}
// CSRF token'ı oluşturan ve kontrol eden fonksiyonları içeren bir sınıf yazın
class Csrf {
public static function generateToken() {
$token = bin2hex(random_bytes(32));
$_SESSION['csrf_token'] = $token; // CSRF token session'da saklanır
return $token;
}
public static function validateToken($csrf_token) {
if (isset($_SESSION['csrf_token']) && $csrf_token === $_SESSION['csrf_token']) {
return true;
} else {
return false;
}
}
}
// Ürün ekleme işlemini gerçekleştiren bir fonksiyon yazın
function urunEkle($data) {
// CSRF token doğrulaması yapılır
if (!isset($data['csrf_token']) || !Csrf::validateToken($data['csrf_token'])) {
header('HTTP/1.1 401 Unauthorized');
echo json_encode(['message' => 'CSRF token doğrulaması başarısız.']);
exit();
}
// POST verileri alınır
$urunAdi = isset($data['urunAdi']) ? htmlspecialchars($data['urunAdi']) : null;
$urunFiyati = isset($data['urunFiyati']) ? (float) $data['urunFiyati'] : null;
// Verilerin doğruluğu kontrol edilir
if (!$urunAdi || !$urunFiyati) {
header('HTTP/1.1 400 Bad Request');
echo json_encode(['message' => 'Ürün adı ve fiyatı belirtilmelidir.']);
exit();
}
// Veritabanına ürün eklenir
$sql = "INSERT INTO urunler (urun_adi, urun_fiyati) VALUES ('$urunAdi', $urunFiyati)";
if ($conn->query($sql) === true) {
echo json_encode(['message' => 'Ürün başarıyla eklendi.']);
} else {
header('HTTP/1.1 500 Internal Server Error');
echo json_encode(['message' => 'Ürün eklenirken bir hata oluştu: ' . $conn->error]);
}
}
// GET isteği alındığında CSRF token oluşturup döndüren bir API endpoint'i yazın
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['csrf_token'])) {
$csrfToken = Csrf::generateToken();
echo json_encode(['csrfToken' => $csrfToken]);
}
// POST isteği alındığında ürün ekleme fonksiyonunu çağıran bir API endpoint'i yazın
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['urunAdi']) && isset($_POST['urunFiyati'])) {
urunEkle($_POST);
} else {
header('HTTP/1.1 400 Bad Request');
echo json_encode(['message' => 'Geçersiz istek.']);
}
$conn->close();
?>
Merhaba @omerf bey;
Öncelikle olucaktır
dye yazdığın kelimenin aslı ol-
tan gelir. ve kullanımına göre olacaktır
diye yazılır... (ve cümleni .
kullanarak bitirmeni tavsiye ederim.)
Burada ki soruna gelirsek, https://symfony.com/doc/current/translation.html bu linkteki symfony/translation paketini sistemdeki dil çevrisi için kullanıyorum. Ve chromium tarayıcılarda sistem dilini En,TR,GB
şeklinde birden fazla parametre verdiği için sorun çıkmış.
Merhaba @emretarhan
Öncelikle iyi günler iyi çalışmalar.
verileri json_encode
fonksiyonundan geçirip base64_encode
fonksiyonundan geçirebilirsin. Bu şekilde basitçe şifrelenmiş json verin olacaktır. Örenğin;
<?php
$data = $_POST['ara_durak'];
$json_type = json_encode($data); // Çıktı: ["1","2","3"]
$base64_type = base64_encode($json_type); // WyIxIiwiMiIsIjMiXQ==
örnekteki gibi kullanabilirsin. fakat veritabanından veri eçekerden bunları tekrar json_decode
ve base64_decode
fonksiyonlarından geçirmen gerekir. tavsiyem sadece json_encode
ve json_decode
kullanman
Umarım yardımcı olabilmişimdir. İyi günler iyi çalışmalar...
/*
Merhaba @memdhaci;
Umarım aşağıdaki kodlar yardımcı olabilir sana.
*/
$('.test-item .test-class1 .test-class2 .test-class3').text()
/*
CSS'deki seçicileri kullandığımız için bu şekilde bir seçim yapabilirsin...
*/
Merhaba;
Sana verebileceğim en güzel tavisye öncelikle mysql kütüphanesini kullanmayı bırakıp PDO'ya geçmendir. İşlemler hem daha basit hemde bu şekilde hataları daha mantıklı bir şekilde alabilirsin. aşağıda sana birkaç örnek bırakacağım
//Bağlantı
try{
$host = 'localhost';
$dbname = 'veritabanı';
$charset = 'utf8';
$user = 'root';
$pass = 'root';
$db = new PDO('mysql:host=' . $host . ';dbname=' . $dbname . ';charset=' . $charset, $user, $pass);
} catch(PDOException $e){
die($e->getMessage());
}
// Bu durumda artık veritabanını $db değişkeninde kullanabilirsin. Tabiki bilgilerini doğru yazdığın sürece :)
//Yaptığın giib bir içerik ekleme
if(isset($_POST['ekle'])){
$icerikEkle = $db->prepare('INSERT INTO icerik SET
baslik=:baslik,
icerik=:icerik,
yazar=:yazar');
$durum = $icerikEkle->execute(array(
'baslik' => $_POST['baslik'],
'icerikici' => $_POST['icerikici'],
'yazar' => $_POST['yazar']
));
if($durum){
echo "eklendi";
} else {
echo "eklenemedi";
}
}
Bunları bu şekilde kullanmanı tavsiye ederim ayrıca PDO konusunda tayfun hocamın derslerine bakabilirsin..
Umarım yardımcı olabilmişimdir.
İyi günler, İyi çalışmalar dilerim
Merhaba @bukr3j;
Bu durumda lazyload dediğimiz bir olay devreye giriyor. Örneğin video sayfanın birazcık altında duruyorsa. Yani videoya biraz kaydırdıktan sonra ulaşabiliyorsan tayfun hocamın bir codepen linki var ondan esinlenebilirsin.
Link: https://codepen.io/tayfunerbilen/pen/ExadqXK
Aslında mantık tamamen ne zaman göreceksem o zaman yükleye geliyor.
Merhaba @polev;
Çok yüksek ihtimalle socket ve benzeri bir şey kullanıyorlar. Kaynak kodlarını incelemeni tavsiye ederim.