<?php
try {
// Veritabanı bağlantısı
$pdo = new PDO("mysql:host=localhost;dbname=your_database_name;charset=utf8", "your_username", "your_password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Kategorilere ve derslere ait verileri çek
$query = "
SELECT c.id AS category_id, c.value AS category_value, l.value AS lesson_value
FROM category c
LEFT JOIN lessons l ON c.id = l.category_id
";
$stmt = $pdo->prepare($query);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Verileri düzenleyip ekrana bastır
$categories = [];
foreach ($result as $row) {
$category_id = $row['category_id'];
$category_value = $row['category_value'];
$lesson_value = $row['lesson_value'];
if (!isset($categories[$category_id])) {
// Kategori ilk defa karşılaşıldıysa, yeni bir dizi oluştur
$categories[$category_id] = [
'category_value' => $category_value,
'lessons' => [],
];
}
// Kategoriye ait dersleri ekleyerek düzenle
if ($lesson_value !== null) {
$categories[$category_id]['lessons'][] = $lesson_value;
}
}
// Sonuçları ekrana bastır
foreach ($categories as $category) {
echo "<b>{$category['category_value']}</b><br>";
foreach ($category['lessons'] as $lesson) {
echo " $lesson<br>";
}
}
} catch (PDOException $e) {
echo "Veritabanı hatası: " . $e->getMessage();
}
?>
Tarayıcıda kaynak kodunun görünmesi genellikle güvenlikle ilgili bir sorun değildir. Tarayıcılar, kullanıcı arayüzünü görüntülemek için HTML, CSS ve JavaScript kaynak kodlarını kullanıcıya sunar. Bu normal bir davranıştır. Ancak, güvenlik açısından bazı önlemler alabilirsiniz.
PHP ile yazdığın verileri kullanıcı tarayıcı ile görüntüleyemez.
<?php
include "../../config/dbconnect.php";
try {
// Veritabanı bağlantısını kontrol et
$pdo = new PDO(/* Veritabanı bağlantı detaylarınızı buraya ekleyin */);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Veritabanı bağlantısı başarılı.<br><br>";
// XML dosyasının URL'sini belirt
$xml_url = '-----------';
// XML içeriğini yüklerken hata işleme ekle
libxml_use_internal_errors(true);
$xml_content = simplexml_load_file($xml_url);
if (!$xml_content) {
foreach (libxml_get_errors() as $error) {
echo "XML yükleme hatası: {$error->message}<br>";
}
libxml_clear_errors();
// Hata ile başa çıkmak için gerekirse loglama yapın veya script'i sonlandırın
die();
}
// Her bir öğeyi döngü ile işle
foreach ($xml_content->item as $item) {
$sku = $item->sku;
$miktar = $item->miktar;
$tedarikcisku = $item->tedarikcisku;
// Ekrana yazdır
echo "<b>SKU : </b> $sku <br>";
echo "<b>Stok : </b> $miktar <br>";
echo "<b>Tedarikçi SKU : </b> $tedarikcisku <br>";
if (!empty($tedarikcisku)) {
echo "breakpoint 1 <br>";
// Daha iyi güvenlik için hazırlanmış ifadeler kullan
$sorgu = $pdo->prepare("UPDATE supplier_itemvariants SET warehouseStock = :miktar WHERE vStockCode = :tedarikcisku");
$sorgu->bindParam(':miktar', $miktar, PDO::PARAM_STR);
$sorgu->bindParam(':tedarikcisku', $tedarikcisku, PDO::PARAM_STR);
try {
$sorgu->execute();
} catch (PDOException $e) {
die("Sorgu hatası: " . $e->getMessage());
}
} else {
echo "Tedarikçi SKU atanmamış. <br>";
}
echo "---------- <br>";
}
} catch (PDOException $e) {
die("Veritabanı bağlantı hatası: " . $e->getMessage());
}
?>
Merhaba,
PHP Verilerinde anasayfan için ayrı bir veri listelemesi oluşturabilirsin, ASC Değilde DESC olarak oluşturursan eğer son verileri sana verecektir. DESC LIMIT 25 yaparsan son 25 konuyu verecektir.
Tabi ki bu sadece basit olanı bunu daha temiz halde kategorilerin varsada onlara göre yapabilirsin.
Çerez sistemi ile yedekleyebilirsin kullanıcıda.
Eğer disabled yaptı isen o veriyi SQL tarafında kayıt işlemi yapma daha iyi. Diğer türlü SQL alanda kayıt işlemi uyguluyor isen öğele denetleden yapabilmeliler.
Merhaba,
İlk önce şunuda yapabilirsin, E-Posta verisi geliyor ise, epostaya ait giriş bilgilerini sağlayabilirsin., Eğer e-posta verisi boş geliyor ise, GSM alanı aktif ederek, onu kontrol edebilirsin.
if(stripos($_POST['email'],'@') !== FALSE){
//Eposta ile ilgili giriş yaptır
}else{
//telefon numarası ile giriş yaptır.
}
Merhaba,
E-posta izerinden ulaşın, size yardımcı olayım.
AngularJS ile yapılmış bir sistem diye biliyorum bunu.
Merhaba,
Sanırım bir randevu sistemi yapmaya çalışıyorsun, Aslında şöyle bir mantık yapabilirsin.
XX firmanın çalışma saatlerini düşün, o saatler arası örnek 30 dk vs artık ne ise, tüm saatleri listele XX bir kişi tarafından o saat alındığını kontrol et, daha sonra o saat dolu ise o saat alanını kapat yada üstünü çzi.
Aşağıda vermiş olduğum örnek, randevu projemde kullanıyorum.
Yukarıdaki gibi yaparsan daha sağlam bir mantıkla gidebilirsin, Eğer saatleri listemeden yapmak istiyorsan, kullanıcı seçtiği saatleri randevu aşamasında bunları dolu boş olduğunu sorgulayıp işlemde yaptırabilirsin.