unuttukları bir şey yok sen araştırmayı bilmiyorsun muhtemelen.
google'a react pagination
diye aratsan onlarcasını bulacaksın zaten.
htmlspecialchars()
kullanırsan daha sağlıklı olur. Böylece "'
gbi işaretler çevrileceği için sorguna müdahale edemezler.
Ve bunları bazı yerlerde tekrar düzgün halleriyle göstermek istersende htmlspecialchars_decode()
fonksiyonundan geçirmen yeterli.
permalink
için kullandığın php fonksiyonunun benzerini javascript için yazman lazım ilk olarak. Uğraşmaman için sana işe yarar bir fonksiyon verelim.
function slugify(text) {
return text
.toUpperCase()
.toLowerCase()
.normalize('NFD')
.trim()
.replace(/\s+/g, '-')
.replace(/[^\w\-]+/g, '');
}
Şimdi artık yapacağın başlığı yazdığın input'u dinleyerek değeri bu fonksiyondan geçirip url için oluşturduğun input'a değer olarak basmak.
<form action="" method="post">
<input type="text" id="title-input" placeholder="Başlık" name="baslik"> <br>
<input type="text" id="url-input" name="url" placeholder="Slug">
</form>
<script>
function slugify(text) {
return text
.toUpperCase()
.toLowerCase()
.normalize('NFD')
.trim()
.replace(/\s+/g, '-')
.replace(/[^\w\-]+/g, '');
}
const title = document.getElementById('title-input'),
url = document.getElementById('url-input');
title.addEventListener('keyup', (e) => {
url.value = slugify(e.target.value);
});
</script>
Artık php tarafında şunu kontrol edeceksin. Eğer url
gönderilmemişse php tarafında url'i başlıktan oluşturacaksın, eğer url gönderilmişse onu kullanacaksın ancak güvenlik kontrolü için onuda yine kendi slug fonksiyonundan geçirirsen daha garanti olacaktır, malum clint-side işlem olduğu için değiştirilebilir değerler daha garanti olur işin.
çünkü update yaparken üye id'ni belirtmiyorsun, doğal olarak tüm üyelerin bilgilerini güncelliyor.
zamanında şöyle bir videom vardı
https://www.youtube.com/watch?v=wjIYdfshSIw
öğreneceğin kaynak elbette kendi sitesi olacak. zaten kullanabileceğin her şeyi orada örnekleriyle gösteriyor.
anlaman gereken şey şu, amp sayfan asıl site içeriğin değil. mobil aramalarda daha hızlı sonuç vermesi için göstereceğin bir önsayfa gibi düşün.
yani bir sürü javascript işlemleri, oturum işlemleri vs. hiçbirisini ampde yapmak zorunda değilsin.
örneğin prototürk'ten örnek vereyim, makaleler sayfasında makale detayları için amp sayfası yaparım ve makale sayfasında amp linkini belirtirim. Ben genelde makalenin sonuna /amp
gibi belirterek kontrollerimi yapıyorum back-end'de.
ve google'da aramalarda bu amp sayfasını gösterir, burada gösterim limitli olur ve asıl mobil sayfasına yönlendirme yapabilirsin bir buton yardımı ile.
gözünde çok büyüteceğin bir konu değil kısaca.
$conn
değişkenine fonksiyon içinde erişmen için global olarak kullanman lazım. Yani;
<?php
function indexfirsaturunleri_fonksiyonu() {
global $conn;
$veriler = "SELECT indexurunslider_resim, indexurunslider_icerik, indexurunslider_fiyat FROM indexurunsliderfirsat";
$result = $conn->query($veriler);
foreach ($result as $row) {
?>
<div class="panel-body">
<div class="card">
<img src="images/indexproductcard/<?php echo $row['indexurunslider_resim']; ?>">
<h5 class="indexurunslider-icerik-yazisi">
<?php echo substr($row['indexurunslider_icerik'],0,88); ?>
</h5>
<p class="price"><?php echo $row['indexurunslider_fiyat']; ?></p>
<p><button>Add to Cart</button></p>
</div>
</div>
<?php } } ?>
?>
eğer hatan varsa görmek için şunu index.php'de en üste ekleyebilirsin
error_reporting(E_ALL);
ini_set('display_errors', true);
react geliştirme ortamında 3000 portundan çalışıyorsun, bunu istersen değiştirirsin o ayrı bir konu ancak bunu web sayfana atarken build alıyorsun ve sana normal html-css-js çıktısı veriyor. Dolayısı ile istediğin her yerde çalıştırabilirsin, boşver yani bu hacker muhabbetlerini rahat ol bir şey olmaz.
istek attığın yerde izin vermen lazım eğer php kullanıyorsan http://192.168.1.100/api
adresinde şunu eklersen dosyanın başına çözülecektir.
header("Access-Control-Allow-Origin: *");
Diğer örnekler için: https://enable-cors.org/server.html
token'ı rastgele oluşturmak yerine kullanıcının session_id'sini md5 ya da hashleyip oluşturursan oturum süresi boyunca aynı tokenı kullanmış olursun, yine csrf önleminide almış olursun