lostyazilim

Php form kontrolünde dönen hataları dizi olarak alma

8 Mesajlar 739 Okunma
lstbozum
wmaraci reklam

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)
İyi günler Makale ekleme sayfasında;
Başlık en fazla 65 karakter olabilir
Açıklama en fazla 120 karakter olabilir
bunu yapmak istiyorum if else yapısıyla yaptım oldu ancak switch ile hepsini tek tek işledim eğer hata varsa formda geri döndürmesinide sağladım ama sorun birden fazla hata olduğunda son değişken değerini alıyor

function formkontrol($makalebaslik,$makaleaciklama,$makaleyazi,$makaleresim)
{
$mbaslik = mb_strlen($makalebaslik);
$maciklama = mb_strlen($makaleaciklama);
switch($makalebaslik)
{
case $mbaslik>50;
$hata="0001";
$durum=$mbaslik." karakter kullanıldı
";
break;
case $makalebaslik=null;
$hata="0002";
$durum="";
break;
case $makalebaslik="";
$hata="0003";
$durum="";
break;

}
switch($makaleaciklama)
{
case $maciklama>120;
$hata="0004";
$durum=$maciklama." karakter kullanıldı
";
break;
case $makaleaciklama=null;
$hata="0002";
$durum="";
break;
case $makaleaciklama="";
$hata="0003";
$durum="";
break;

}
switch($makaleyazi)
{
case $makaleyazi=null;
$hata="0005";
$durum=" ";
break;
}
if(isset($hata))
{
return (array("hata"=>$hata,"durum"=>$durum));
}
else
{
return(resimkontrol($makalebaslik,$makaleaciklama,$makaleyazi,$makaleresim));
}




}

bu işleme alternatif nasıl bir çözüm üretirim
 

 

wmaraci
reklam

YORci YORci yorci.com Kullanıcı
  • Üyelik 06.02.2016
  • Yaş/Cinsiyet 29 / E
  • Meslek Arkaplan Yazılım
  • Konum Ankara
  • Ad Soyad I** Y**
  • Mesajlar 261
  • Beğeniler 88 / 127
  • Ticaret 21, (%100)
boş bir array oluşturup hataları array_push ile içine itersen tüm hataları yakalamış olursun.
 

 

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)
YORÇI hocam ilk defa duydum güzel bişi ama kullanımını çözemedim
switch de case sonrasına mı? yoksa tüm switch işlemleri bittikten sonra mı? ekleyeyim

$ar=array();
switch($a)
{
$hata="0001";
array_push($ar,$hata)
}
switch($b)
{
$hata="0002";
array_push($ar,$hata)
}

switch($c)
{
$hata="0002";
array_push($ar,$hata)
}
print_r($ar);
 

 

FurkanKandemir FurkanKandemir WM Aracı Kullanıcı
  • Üyelik 25.05.2015
  • Yaş/Cinsiyet 32 / E
  • Meslek Web Yazılım Uzmanı
  • Konum İstanbul Anadolu
  • Ad Soyad F** K**
  • Mesajlar 833
  • Beğeniler 0 / 287
  • Ticaret 13, (%100)
Açıkcası neden böyle karmaşık bir yapıya girdiniz hem switch hem if else sadece if else'leri içe içe kullanarakta bu sorunu rahat bir şekilde çözebilirdiniz.
Şimdi bana hataların oluşma sebeplerini yazarsaniz türkçe olarak anlatın bana ben size if else bloklarını yazayım
 

 

wmaraci
wmaraci

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)
$makalebaslik,$makaleaciklama,$makaleyazi,$makaleresim adlı 4 değişkenim var bu değişkenleri boş mu göndermiş belirlediğim karakter sınırını aşmış mı? bu kontrol etmek istiyorum
tek tek yapmamın sebebi hangi form elemanları kurallara uymuyor bunu kontrol etmek
 

 

FurkanKandemir FurkanKandemir WM Aracı Kullanıcı
  • Üyelik 25.05.2015
  • Yaş/Cinsiyet 32 / E
  • Meslek Web Yazılım Uzmanı
  • Konum İstanbul Anadolu
  • Ad Soyad F** K**
  • Mesajlar 833
  • Beğeniler 0 / 287
  • Ticaret 13, (%100)
Önce kontrol edelim kimler boş kimler değil ona göre işlem yaptıralım. strlen ile uzunluklar vs aldınız varsayıyorum. Boşluk vs kontrolünü de strip_tags ile yaparsınız.


if(!$makalebaslik)
{
$Hata="0001";
}
elseif(!$makaleaciklama)
{
$Hata="0002";
}
elseif(!$makaleyazi)
{
$Hata="0003";
}
elseif($makaleresim)
{
$hata="0004";
}
else {

if($makalebaslik>65)
$Hata="0005";
elseif($makaleaciklama>120)
{
$Hata="0006";
}
else {
//olmasını istediğiniz işlemler. db ye yaz değer döndür vs
}


}



Ben hataların hepsini tek seferde göndermek istiyorum derseniz de o zaman sadece if kullanırsınız. ve tek değişkende birleştirir yada diziye atarsınız. Fonksiyonun sonunda return eder daha sonra parçalayıp hata kodlarını ayıklayabilirsiniz.

Ek Olarak:
 

 

Samurai Samurai Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 22.12.2015
  • Yaş/Cinsiyet 31 / E
  • Meslek Php Yazılımcısı
  • Konum İstanbul Anadolu
  • Ad Soyad M** K**
  • Mesajlar 354
  • Beğeniler 84 / 86
  • Ticaret 13, (%92)
@ismail03 bırak bunun için fonksiyon yazmayı. Switch if else de neden karıştırdın böyle hem : )

Gel HTML5 nimetlerinden yararlan.

https://jsfiddle.net/hf78cquk/1/

: )
 

 

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)
FurkanKandemir HOcam birden fazla hatalı form elemanı olduğunda ne yapacağım onun çözümünü bulamadım array_push() ile nasıl yaparız
Samurai Boş bırakmayın aldım :) biraz jquery biraz html birde php çok iyi olur umarım :)
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al