İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Php Kodlamada Yardım

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
hayır arkadaşım benim dediğimle senin dediğin arasında uçurum var :D

benim sorunum form refresh edilince kodlar çalışarak yapmak istenilen işlemi sayfayı refresh ettiği kadar işleme alıyor. benim istediğim sadece refreshi önleyecek javascript veya refresh edildiğinde formları işleme almayacak bir kod

teşekkürler
 

metadige

0
İyinet Üyesi
Katılım
23 Aralık 2005
Mesajlar
354
Reaction score
4
Arkadaşım iki mesaj önce yazmıştım sanırım okumadın

:)
O zaman formu aynı sayfaya post etmeyeceksin, sayfa 2 ye post edeceksin, gerekli işlemleri yapıp geri sayfa 1e veya sayfa 3e göndereceksin. Böylece adam ne tekrar tıklayabilir, ne refresh yapıp formu tekrar gönderebilir.

En sağlam yol bu. Ya böyle yapacaksın ya ajax ile form gönderilince sayfadan formu kaldıracaksın. Ya da kendine göre bir anahtar oluşturup, postu işlerken kontrol edecek, ona göre işleyeceksin.
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
okumuştum ama kullandığım yöntem şu

formun bulunduğu bir sayfa var kişi burdan formu doldurup submit tuşuna tıklıyor işlem yaptığı sayfa a.php olsun a.php ye b.php include ediyorum b.php de php kodları mevcut yapılacak işlem işte ona göre db den ekleyip silecek güncelleyecek

b.php den dediğin şekilde işlem yapıldığında echo ile mesaj verip o mesajın hemen ardından yönlendirme yapmakta tabi kişiler formu gönderdikleri esnada sayfayı durmadan refresh ediyor refresh edince form sayfa refresh edildiği kadar işleme alınıyor böylece dupeleme(aynı işlemi klonlama) gibi bir şey oluyor.

acaba a.php ye b.php include etmeden b.php deki kodları a.php nin içinde çalıştırsam aynı sorunu yaşar mıyım?

yardımlarınızı bekliyorum teşekkürler
 

metadige

0
İyinet Üyesi
Katılım
23 Aralık 2005
Mesajlar
354
Reaction score
4
arkadaşım senin b.php yi include etmen bir şey değiştirmez. İstersen 20 tane dosya include et, çalışan tek bir sayfa sayılır.

en başta söylediğim şekilde yapsaydın javascript kodu aramakla vs. uğraşmazdın. Yapacağın şey şu:

bu a.php diyelim:

PHP:
<?php
if(isset($_POST) && !empty($_POST)){
....
....
postu işle, veritabanına gir vs.
sonra c ye yönlendir.

header('Location: b.php');
exit();

}
else{

?>

<form action="b.php">
burda formun var başka bir şey yok
</form>

<?php
}//post yoksa else son
?>


bu da b.php
----------------------

Teşekkür ederiz işleminiz yapılmıştır. Falanca sayfaya dönmek için tıklayın
<a href="a.php">tıkla</a>

------------------------

gördüğün gibi eğer a ya post gelirse postu işleyip b ye yönlendiriyor. Yani ziyaretci submite bastığında post gönderilir, işlenip b.php ye gider.İşlem sonucunda ziyaretçi sadece teşekkür mesajını görür, isterse 1000 kere refresh yapsın.

Daha geliştirmek istersen bir de session ile kontrol koyarsın postu işlemeden misal zamanı sessiona atarsın, sonra tekrar var mı yok mu, varsa kaç saniye önce vardı vs. kontrol edersin.
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
ilgin için teşekkürler arkadaşım sorunum verdiğin kodla alakası yokmuş bir yerde programlama hatası yapmışım çözdüm.

zahmet edip yardım ettiğin için çok teşekkür ederim
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
arkadaşlar şöyle bir sorunum var

kişiler aynı sayfayı 2 ayrı explorer penceresinde açıyorlar ve ard arda submit tuşuna basıyorlar haliyle işlemdeyken mesela x işlemi için 100 ytl düşecekken aynı anda 2 ayrı pencerede bastıklarını için 2x için 200 düşmesi gerekirken 100 düşüyor. bunu nasıl önleyebilirim?

güvenlik kodu koysam işe yarar mı?
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
arkadaşlar biraz flood yapmak gibi olacak ama konuyu üstlere taşımak için yazıyorum acil bir sorunum var ilgilenebilecek olan yok mu?
 

Ozcan

0
İyinet Üyesi
Katılım
12 Mayıs 2007
Mesajlar
3,749
Reaction score
59
Konum
Antalya
hiç açıklayıcı bi soru sormamışsın. Veri tabanında tutarsan bakiyeyi bir sorun kalmaz her işlemde düşer.
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
kusura bakma geç yazabildim sorunumu hallettim işlemden önce sorgulama yaparak sorunumu giderdim. diğer sormak istediğim bir şey var. siteye birden fazla dil eklemek. dil dosyaları languages klasöründe turkish.txt english.txt olarak bulunacak. kişi kullanıcı ayarlarından dilini english olarak ayarladığında sayfa ona göre ingilizceye çevrilecek. bunun için küçük örnek bir dosyanız bulunmakta mı? php kodlamada bunu nasıl yapabilirim?
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
merhabalar arkadaşlar php'de soracağım bir kaç şey var

stripslashes ---- htmlentities ---- strip_tags bunların işlevleri nedir açıklayabilir misiniz?

birde mysql'e kullanıcı adı veya email işlerken bunu latin harflerine göre nasıl çeviririz veya nasıl hata verdiririz mesela kullanıcı adını ömür girdi form hata vererek latin harflerini kullanmasını isteyecek omur gibi?
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
aktivasyon.php içindeki kodlar

PHP:
<?php

include( "ayar.php" );

$eposta = htmlentities( stripslashes( $_GET['eposta'] ) );
$aktivasyonkodu = htmlentities( stripslashes( $_GET['aktivasyonkodu'] ) );
$aktivasyonkodu = rtrim( $aktivasyonkodu );
$aktivasyonkodu = ltrim( $aktivasyonkodu );
$aktivasyon = rtrim( $aktivasyon );
$aktivasyon = ltrim( $aktivasyon );

$sor_mail = mysql_query("SELECT * FROM uyeler WHERE eposta='$eposta'");
$sor_kod = mysql_query("SELECT * FROM uyeler WHERE aktivasyonkodu='$aktivasyonkodu'");

if ( $sor_mail == $_GET['eposta'] && $sor_kod == $_GET['aktivasyonkodu'] ) {
    $query = mysql_query("UPDATE uyeler SET aktivasyon='1' WHERE eposta='$eposta'");
    echo "Hesabınız aktif edilmiştir.";
} else {
	echo "Aktivasyon kodu geçersizdir!";
}  

?>

merhaba arkadaşlar bu kodla üyenin hesabını aktif etmesini sağlamak istiyorum üyenin mailine www.example.com/aktivasyon.php?eposta=$eposta&aktivasyonkodu=$aktivasyonkodu şeklinde bir link gitmekte bu linkte sorun yok.örnek

www.example.com/[email protected]&aktivasyonkodu=99999

fakat kodlarda bir hata yaptım çözemedim, bir de bir önceki mesajıma da yanıt verirseniz sevinirim.

teşekkürler
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
htmlentities() html özel karakterlerini çevirir, < > ' gibi.
stripslashes() escape edilmiş tırnak işaretlerini normale döndür.
striptags() html kodlarını kaldırır bir textten.

Verdiğin kod çalışmaz, mysql_query() yaparak değişkene değer atayamazsın. mysql_query sadece sorguyu yapıp kaynağı döndürür. Kaynağı fetch etmen gerekiyor.

$q = mysql_query("SELECT aktivasyonkodu FROM uyeler WHERE eposta='$_GET[eposta]'");
$a = mysql_fetch_array($q);

if ($a[aktivasyonkodu] == $_GET[aktivasyonkodu]) {
echo "aktivasyon ok";
}
else {
echo "hata";
}
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
ellerine sağlık Angelo

önceki denemelerimde kaynağı fetch ettim ama çalışmadı demek ufak bir hata vardı gözden kaçtı tekrar deneyip burada bildiririm.

---
mysql'e kullanıcı adı veya email işlerken bunu latin harflerine göre nasıl çeviririz veya nasıl hata verdiririz mesela kullanıcı adını ömür girdi form hata vererek latin harflerini kullanmasını isteyecek omur gibi?
---

bu sorunuma da bakarsan çok sevinirim tekrar ellerine sağlık

edit: sağol denedim çalışıyor mysql_query fetch yaparken mysql_query'de fazla tırnak kaldığından hata veriyordu teşekkürler
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
PHP:
$girdi = $_POST['user'];   // kullanicidan gelen girdi
$istemem = array('ö','ç','ı','ü','ş');  // bu boyle gider

  foreach ($istemem as $val) {

    if (eregi($val,$girdi)) {
    $err = 1;
    break;
    }
  }

   if ($err == "1") {
   echo 'bi elini yuzunu yika gel';
   }

Genelde kontrolsüz otomatik döndürmece kullanıyor buradaki arkadaşlar. Array kodları var hazırda ararsan bulursun forumda, ben hic kullanmıyorum Türkçe karakterleri scriptlerde.
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
merhabalar md5 ile formdan giden bilgiyi şifrelemek istiyorum bunu nasıl yapabilirim acaba? birde şu var mesela uyeler tablosundan sifreyi çağırıp bunu md5 ile çözüp normale nasıl çevirebiliriz?

yardımcı olursanız sevinirim

teşekkürler

Edit:

şifreleme kodunu buldum arkadaşlara yarar diye buraya yazıyorum

<?php
$parola=12345;
$guvenli_parola = md5($parola);
echo $guvenli_parola;
?>
 

peep

0
İyinet Üyesi
Onaylı Üye
Katılım
20 Mayıs 2007
Mesajlar
6,382
Reaction score
87
formdan gelen bilgileri şifrelemek:
PHP:
<?php
$sifreli=md5($_POST["sifre"]);
echo $sifreli
?>
 

peep

0
İyinet Üyesi
Onaylı Üye
Katılım
20 Mayıs 2007
Mesajlar
6,382
Reaction score
87
md5 geri çevirme mümkün değil yazmışlar cevizde;
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst