Sorundan anladığım kadarıyla indir ve demo butonlarının linkini admin panelinden değiştirmek istiyorsun ozaman bu kodu yazman gerek
<?php
// Form gönderildiğinde linkleri kaydet
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$demoLink = htmlspecialchars($_POST['demoLink'], ENT_QUOTES, 'UTF-8');
$indirLink = htmlspecialchars($_POST['indirLink'], ENT_QUOTES, 'UTF-8');
// Linkleri bir dosyaya kaydet
$links = [
'demoLink' => $demoLink,
'indirLink' => $indirLink
];
file_put_contents('links.json', json_encode($links));
}
// Kaydedilen linkleri oku
if (file_exists('links.json')) {
$links = json_decode(file_get_contents('links.json'), true);
$demoLink = $links['demoLink'] ?? '';
$indirLink = $links['indirLink'] ?? '';
} else {
$demoLink = '';
$indirLink = '';
}
?>
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Temacim - Link Ayarlama</title>
<script>
function setLinks(demoLink, indirLink) {
document.getElementById('demoButton').onclick = function() {
window.location.href = demoLink;
};
document.getElementById('indirButton').onclick = function() {
window.location.href = indirLink;
};
}
// Sayfa yüklendiğinde PHP'den gelen linkleri JavaScript fonksiyonuna geçir
document.addEventListener('DOMContentLoaded', function() {
setLinks('<?php echo $demoLink; ?>', '<?php echo $indirLink; ?>');
});
</script>
</head>
<body>
<h1>Link Ayarlama Formu</h1>
<form method="post">
<label for="demoLink">Demo Link:</label>
<input type="text" id="demoLink" name="demoLink" value="<?php echo htmlspecialchars($demoLink, ENT_QUOTES, 'UTF-8'); ?>" required>
<br>
<label for="indirLink">İndir Link:</label>
<input type="text" id="indirLink" name="indirLink" value="<?php echo htmlspecialchars($indirLink, ENT_QUOTES, 'UTF-8'); ?>" required>
<br>
<button type="submit">Kaydet</button>
</form>
<h2>Butonlar</h2>
<button id="demoButton">Demo Link</button>
<button id="indirButton">İndir Link</button>
</body>
</html>
<?php
ob_start();
session_start();
// LOGIN SCRIPT
/* DATABASE CONNECTION */
$db['db_host'] = 'localhost';
$db['db_user'] = 'root';
$db['db_pass'] = '';
$db['db_name'] = 'test';
foreach ($db as $key => $value) {
define(strtoupper($key), $value);
}
global $conn;
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if (!$conn) {
die("Cannot Establish A Secure Connection To The Host Server At The Moment!");
}
try {
$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
} catch (Exception $e) {
die('Cannot Establish A Secure Connection To The Host Server At The Moment!');
}
/* DATABASE CONNECTION */
// Define variables and initialize with empty values
$username = $password = "";
$username_err = $password_err = "";
// Processing form data when the form is submitted
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Check if the username is empty
if (empty(trim($_POST["username"]))) {
$username_err = 'Kullanıcı Adınızı Girin!.';
} else {
$username = trim($_POST["username"]);
}
// Check if the password is empty
if (empty(trim($_POST['password']))) {
$password_err = 'Şifrenizi Girin!';
} else {
$password = trim($_POST['password']);
}
// Validate credentials
if (empty($username_err) && empty($password_err)) {
// Prepare a select statement
$sql = "SELECT username, password FROM admin WHERE username = ? ";
if ($stmt = mysqli_prepare($conn, $sql)) {
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, "s", $param_username);
// Set parameters
$param_username = $username;
// Attempt to execute the prepared statement
if (mysqli_stmt_execute($stmt)) {
// Store result
mysqli_stmt_store_result($stmt);
// Check if the username exists, if yes then verify the password
if (mysqli_stmt_num_rows($stmt) == 1) {
// Bind result variables
mysqli_stmt_bind_result($stmt, $username, $hashed_password);
if (mysqli_stmt_fetch($stmt)) {
if (password_verify($password, $hashed_password)) {
/* Password is correct, so start a new session and
save the username to the session */
$_SESSION['username'] = $username;
header("Location: index.php");
} else {
// Display an error message if the password is not valid
$password_err = 'Girdiğiniz şifre geçerli değil. Lütfen tekrar deneyin.';
}
}
} else {
// Display an error message if the username doesn't exist
$username_err = 'Bu kullanıcı adına sahip bir hesap bulunamadı. Lütfen yeniden kontrol edin ve tekrar deneyin.';
}
} else {
echo "Oops! Bir şeyler yanlış gitti. Lütfen daha sonra tekrar deneyin.";
}
}
// Close statement
mysqli_stmt_close($stmt);
}
// Close connection
mysqli_close($conn);
}
?>
<!--- LOGIN SCRIPT------>
setInterval fonksiyonunu kullanarak periyodik olarak AJAX isteği gönderdiğiniz bu kodu, clearInterval fonksiyonuyla sonlandırabilirsiniz. setInterval fonksiyonu bir zamanlayıcı oluşturur ve bir işlevi belirtilen süre boyunca düzenli aralıklarla çalıştırır. Bu işlevi sonlandırmak için oluşturulan zamanlayıcıyı clearInterval fonksiyonu ile durdurmanız gerekmektedir.
Aşağıda, setInterval zamanlayıcısını nasıl durdurabileceğinizi gösteren örnek bir kod parçası bulunmaktadır:
html
Copy code
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function() {
var intervalId; // setInterval tarafından döndürülen zamanlayıcı kimliği
// Zamanlayıcıyı başlatma
function startInterval() {
intervalId = setInterval(function() {
$.ajax({
type: 'GET',
url: 'ankara/bursa.php',
data: '?galatasaray=trabzonspor',
cache: false,
success: function(msg) {
$('#alertbox').fadeIn('slow').prepend(msg);
}
});
}, 5000);
}
// Zamanlayıcıyı durdurma
function stopInterval() {
clearInterval(intervalId);
}
// Başlat ve Durdur düğmelerine tıklanınca ilgili işlevleri çağırma
$('#startButton').click(function() {
startInterval();
});
$('#stopButton').click(function() {
stopInterval();
});
});
</script>
<div id="alertbox"> </div>
<button id="startButton">Başlat</button>
<button id="stopButton">Durdur</button>
Bu örnek kodda, startInterval fonksiyonu belirli aralıklarla AJAX isteği yaparak içeriği #alertbox içine ekler. stopInterval fonksiyonu ise clearInterval kullanarak zamanlayıcıyı durdurur. Sayfa üzerinde "Başlat" ve "Durdur" adlı düğmeler bulunmaktadır ve bu düğmelere tıklandığında zamanlayıcıyı başlatıp durdurabilirsiniz.
PHP 5.6 sürümünde file_get_contents()
fonksiyonuyla HTTPS üzerinden kaynak kodunu almak bazen sorunlara neden olabilir. Bu nedenle, alternatif bir yöntem kullanmanız gerekebilir. İşte CURL kütüphanesini kullanarak PHP 5.6 sürümünde kaynak kodunu almanın bir örneği:
// URL'yi belirtin
$url = 'http://www.example.com';
// CURL örneği oluşturun
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// Kaynak kodunu alın
$sourceCode = curl_exec($curl);
// CURL işlemini kapatın
curl_close($curl);
// Kontrol etmek istediğiniz kelimeyi belirtin
$keyword = 'kelime';
// strpos() fonksiyonunu kullanarak kelimenin konumunu bulun
if (strpos($sourceCode, $keyword) !== false) {
echo "Kelime mevcut";
} else {
echo "Kelime mevcut değil";
}
Bu kod, CURL kütüphanesini kullanarak belirtilen URL'den kaynak kodunu alır ve ardından belirtilen kelimenin var olup olmadığını kontrol eder. Sonrasında, ilgili mesajı ekrana yazdırır.
PHP 5.6 sürümünde file_get_contents()
fonksiyonunun HTTPS üzerinden kaynak kodunu almakta sorun yaşadığınızı belirttiğiniz için CURL kütüphanesini kullanarak alternatif bir yöntem sundum. CURL, HTTP ve HTTPS gibi protokoller üzerinden veri alışverişi yapmak için kullanılan bir kütüphanedir ve PHP'nin eski sürümlerinde de yaygın olarak kullanılmaktadır.
Umarım bu örnek size yardımcı olur! Başka bir sorunuz olursa buradayım.
Merhaba! Sorununuzun çözümü, config.js dosyasında db nesnesini kullanmak yerine direkt olarak bağlantı bilgilerini aktarmaktır. Bunun için aşağıdaki gibi config.js dosyanızı düzenleyebilirsiniz:
const config = {
host: 'localhost',
user: 'root',
password: 'sifrem',
database: 'nodedb'
};
module.exports = config;
Ve main.js dosyanızı da aşağıdaki gibi düzenleyebilirsiniz:
const mysql = require('mysql2');
const config = require('./config');
let connection = mysql.createConnection(config);
connection.connect(function(err) {
if (err) {
console.log(err);
}
connection.query('SELECT * FROM products', function(err, result) {
console.log(result);
});
console.log('MySQL bağlantısı yapıldı.');
});
Bu şekilde config.js dosyasından direkt olarak bağlantı bilgilerinizi alarak kodunuzun çalışmasını sağlayabilirsiniz. Umarım bu çözüm işinize yarar! Başka bir sorunuz olursa yardımcı olmaktan mutluluk duyarım.
<?php
// Veritabanı bağlantısı
$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);
}
// Kategorileri veritabanından çekme
$sql = "SELECT * FROM kategoriler ORDER BY sira_numarasi ASC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// Kategorileri listeleyen form oluşturma
echo '<form method="POST" action="kategori_tasi.php">';
while ($row = $result->fetch_assoc()) {
$kategoriId = $row["id"];
$kategoriAdi = $row["kategori_adi"];
$siraNumarasi = $row["sira_numarasi"];
echo '<div>';
echo '<label for="sira_numarasi_' . $kategoriId . '">' . $kategoriAdi . '</label>';
echo '<input type="number" name="sira_numarasi[' . $kategoriId . ']" id="sira_numarasi_' . $kategoriId . '" value="' . $siraNumarasi . '">';
echo '</div>';
}
echo '<input type="submit" value="Kaydet">';
echo '</form>';
} else {
echo "Hiç kategori bulunamadı.";
}
// Form gönderildiğinde kategori sıra numaralarını güncelleme
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach ($_POST["sira_numarasi"] as $kategoriId => $siraNumarasi) {
$kategoriId = intval($kategoriId);
$siraNumarasi = intval($siraNumarasi);
$sql = "UPDATE kategoriler SET sira_numarasi = $siraNumarasi WHERE id = $kategoriId";
if ($conn->query($sql) === FALSE) {
echo "Kategori güncellenirken hata oluştu: " . $conn->error;
}
}
}
// Veritabanı bağlantısını kapatma
$conn->close();
?>
Bu kod, kategorileri veritabanından çeker, bir form oluşturur ve form gönderildiğinde kategori sıra numaralarını günceller. "kategori_tasi.php" adında bir dosyaya gönderdiği için bu dosyayı oluşturmanız gerekmektedir. Bu dosyada veritabanı bağlantısını sağyıp, güncelleme işlemlerini gerçekleştirmelisiniz.
<?php
// QR kodu oluşturmak için kullanabileceğiniz bir QR kod kütüphanesi veya API'yi burada kullanmanız gerekmektedir.
// Müşteriden alınacak bilgiler
$iban = "TR1234567890"; // Örnek IBAN
$isimSoyisim = "BHE batu"; // Örnek İsim Soyisim
$aciklama = "Sipariş Numarası: 12345"; // Örnek Açıklama
// QR kod içeriğini oluşturma
$qrContent = "iban:" . $iban . "?name=" . urlencode($isimSoyisim) . "&message=" . urlencode($aciklama);
// QR kodu oluşturma işlemleri
// QR kodu oluşturmak için kullanacağınız kütüphaneyi veya API'yi burada kullanmanız gerekmektedir.
// Aşağıda sadece örnek bir çıktı verilmiştir.
$qrCodeImage = "https://example.com/qrcode.png"; // Oluşturulan QR kodunun dosya yolu veya URL'si
// Oluşturulan QR kodu gösterme
echo '<img src="' . $qrCodeImage . '" alt="QR Code">';
?>
Bu örnekte, öncelikle müşteriden alınacak IBAN, İsim Soyisim ve Açıklama bilgilerini değişkenlere atıyoruz. Ardından, QR kod içeriğini oluşturmak için bu bilgileri kullanıyoruz. urlencode()
fonksiyonunu kullanarak, İsim Soyisim ve Açıklama bilgilerini URL'ye uygun hale getiriyoruz.
QR kod oluşturma işlemleri için bir QR kod kütüphanesi veya API kullanmanız gerekmektedir. Bu örnekte, oluşturulan QR kodun dosya yolunu veya URL'sini $qrCodeImage
değişkenine atıyoruz. Son olarak, oluşturulan QR kodu göstermek için <img>
etiketi kullanıyoruz.
Bu örnek sadece QR kod oluşturma işlemini göstermektedir. QR kodun kullanılacağı e-ticaret projesine entegrasyonu ve ödeme sürecinin yönetimi projenizin gereksinimlerine bağlı olarak farklılık gösterebilir.
E-posta adreslerini botlar veya arama motorları tarafından okunamaz hale getirmek için genellikle "spam koruması" olarak adlandırılan yöntemler kullanılır. İşte bazı yaygın yöntemler:
- E-posta adresini görüntüleme: E-posta adresini HTML etiketleri arasına yerleştirerek, tarayıcılar tarafından düzgün bir şekilde görüntülenirken botlar tarafından okunması zorlaştırılır. Örneğin:
<span>info [at] example [dot] com</span>
Bu şekilde e-posta adresi metni, normal bir kullanıcı tarafından anlaşılabilirken, botlar tarafından otomatik taranması zorlaşır.
- JavaScript kullanma: E-posta adresini JavaScript kullanarak dinamik olarak oluşturabilirsiniz. Örneğin:
<script>
function decodeEmail() {
var user = "info";
var domain = "example.com";
var element = document.getElementById("email");
element.innerHTML = "<a href='mailto:" + user + "@" + domain + "'>" + user + "@" + domain + "</a>";
}
</script>
<span id="email"></span>
<script>decodeEmail();</script>
Bu şekilde JavaScript kodu, e-posta adresini düz metin olarak görüntülemek yerine, kullanıcı tıkladığında doğrudan e-posta istemcisini açacak bir bağlantı oluşturur. Botlar genellikle JavaScript kodunu çalıştıramazlar, bu yüzden e-posta adresi güvende olur.
- Grafik veya resim kullanma: E-posta adresini bir resim veya grafik olarak sunabilirsiniz. Bu şekilde, e-posta adresi görüntü olarak görünecek ve botlar tarafından okunması daha zor olacaktır. Ancak, bu yöntem kullanıcıların e-posta adresini kopyalayıp yapıştırmasını zorlaştırabilir.
Bu yöntemler, e-posta adreslerinizi botlar veya arama motorları tarafından taranmasını zorlaştırırken, kullanıcılar için hala erişilebilir ve kullanılabilir olmasını sağlar. Ancak unutmayın ki hiçbir yöntem %100 güvenli değildir ve bazı gelişmiş botlar tarafından hala okunabilir olabilirler. Bu nedenle, duyarlı bilgileri paylaşmadan önce güvenlik önlemleri konusunda dikkatli olmanız önemlidir.
function kategoriYerDegistir($kategoriler, $ustKategori, $altKategori){
$ustKategoriIndex = array_search($ustKategori, $kategoriler);
$altKategoriIndex = array_search($altKategori, $kategoriler);
if ($ustKategoriIndex !== false && $altKategoriIndex !== false) {
// Kategorileri yer değiştir
list($kategoriler[$ustKategoriIndex], $kategoriler[$altKategoriIndex]) = array($kategoriler[$altKategoriIndex], $kategoriler[$ustKategoriIndex]);
}
return $kategoriler;
}
// Kategorileri tanımla
$kategoriler = array("Kategori 1", "Kategori 2", "Kategori 3", "Kategori 4");
// Kategorileri yer değiştir
$kategoriler = kategoriYerDegistir($kategoriler, "Kategori 2", "Kategori 4");
// Sonuçları görüntüle
print_r($kategoriler);
Bu örnekte, kategoriYerDegistir
adlı bir işlev tanımlıyoruz. Bu işlev, kategoriler dizisini, üst ve alt kategori isimlerini parametre olarak alır. İşlev, array_search
işlevini kullanarak üst ve alt kategorilerin dizideki indekslerini bulur. Ardından, list
işlevini kullanarak kategorileri yer değiştirir. Son olarak, işlev, güncellenmiş kategoriler dizisini döndürür.
Bu örneği kendi projenize uyarlayabilir ve kategorileri istediğiniz gibi yer değiştirebilirsiniz. Umarım bu size yardımcı olur!
Teşekkürler 😁👌