Asp İle Form Oluşturma...

username

Öğrenci
Katılım
10 Ağustos 2008
Mesajlar
6
Reaksiyon puanı
0
Puanları
0
Arkadaşlar Eğitim videosu İstek Bölümüne yazdım bayadır cevap gelmedi bşir sitenin ayakta kalabilmesşi için güncel olabilmesi lazım lütfen yardımcı olabilecek kimse yokmu en azından yardımcı olabilecek biri var ise bir ses verse çok sevineceğim Şimdiden yardımlarınız için teşekürler

web sayfasında form hazırlamayı ögrenmek istiyorum asp ve ya php aslında fark etmez ama asp ile olursa çok iyi olur veri ekleme veri sorgulama; çağırma değiştirme

çok önemli benim için
 

pcmanq

Öğrenci
Katılım
19 Ağustos 2008
Mesajlar
1
Reaksiyon puanı
0
Puanları
0
Arkadaşlar Eğitim videosu İstek Bölümüne yazdım bayadır cevap gelmedi bşir sitenin ayakta kalabilmesşi için güncel olabilmesi lazım lütfen yardımcı olabilecek kimse yokmu en azından yardımcı olabilecek biri var ise bir ses verse çok sevineceğim Şimdiden yardımlarınız için teşekürler

web sayfasında form hazırlamayı ögrenmek istiyorum asp ve ya php aslında fark etmez ama asp ile olursa çok iyi olur veri ekleme veri sorgulama; çağırma değiştirme

çok önemli benim için


Evet Benimde çok ögrenmek istediğim bir konu emin shiftdelete.net Yetkilerinin ve ya ziyaretçilerinin bu konu hakkında ilğileneceklerdir bende şimdiden yardımlar için teşekür ederim... Ayrıca arkadaşıma bu konu yu açtıgı için teşekür ederim
 

genccocuk

Öğrenci
Katılım
19 Ağustos 2008
Mesajlar
1
Reaksiyon puanı
0
Puanları
0
hocam bilgi alır ve bir kaynak elde ederseniz bende ögrenmek isterim teşekürler
 

cndr

Öğrenci
Katılım
20 Eylül 2007
Mesajlar
80
Reaksiyon puanı
0
Puanları
6
Mailformlarda farklı bileşenler vardır ben CDONTS bileşenini kullanıyorum o bileşene göre asp formu yazdım aşağıda. Sunucunda CDONTS bileşeni yoksa googleda aratarak yükleyebilirsin..

<%
if not IsEmpty(request.Form("IsFormSubmitted")) then
isim=request.Form("isim")
email=request.Form("email")
telefon=request.Form("telefon")
mesaj=request.Form("mesaj")
messageBody = "<b>Ad Soyad:</b> " & isim & "<br>" &_
"<b>e-Posta:</b> " & email & "<br>" &_
"<b>Telefon:</b> " & telefon & "<br>" &_
"<b>Mesaj:</b> " & mesaj & "<br><br>"
Dim oEmail
Set oEmail = Server.CreateObject("CDONTS.NewMail")

oEmail.BodyFormat = 0
oEmail.MailFormat = 0
oEmail.From = "gonderen@maili.com"
StrReply_To = "Reply-To<"&Eposta&">"
oEmail.Value("Reply-To") = StrReply_To
oEmail.Subject = "ASP Form"
oEmail.Body = messageBody
oEmail.To ="gidecek@mail.com"
oEmail.Bcc =bcc@maili.com
oEmail.Send

if err > 0 then
Gonder=0
else
Gonder=1
end if
%>
<span >Formunuz gönderilmiştir.<br>
Teşekkür Ederiz...</span>
<%
else
%>
<form name="FrmIletisim" method="POST" action="?" onSubmit="return FormKontrol(this)">

<input type="hidden" name="IsFormSubmitted" value="submitted">
<table border="0" cellpadding="0" cellspacing="0" >
<tr>
<td width="120">Ad Soyad </td>
<td style="padding:5px 0px 5px 0px;"><label>
<input name="isim" type="text" class="textfield" id="isim" style="width:250px;">
</label></td>
</tr>
<tr>
<td width="120">e-Posta</td>
<td style="padding:5px 0px 5px 0px;"><input name="email" type="text" class="textfield" id="email" style="width:250px;"></td>
</tr>
<tr>
<td width="120">Telefon</td>
<td style="padding:5px 0px 5px 0px;"><input name="telefon" type="text" class="textfield" id="telefon" style="width:250px;"></td>
</tr>
<tr>
<td width="120" align="left" valign="top" style="padding-top:8px;">Görüşleriniz</td>
<td style="padding:5px 0px 5px 0px;"><textarea name="mesaj" rows="5" class="textfield" id="mesaj" style="width:250px;"></textarea></td>
</tr>
<tr>
<td width="120" align="left" valign="top" style="padding-top:3px;">&nbsp;</td>
<td align="left" style="padding:5px 0px 5px 0px;"><input name="Submit" type="button" value="Gönder">
</td>
</tr>
</table></form> <%
end if
%>

anlamadığınız veya sormak istediğiniz yerler olursa pmden ulaşabilirsiniz. Video değil ama bu şekilde yardımcı olabilirim =)
 

Turab Garip

Dekan
Emektar
Katılım
30 Mayıs 2007
Mesajlar
6,902
Reaksiyon puanı
181
Puanları
1,243
Selamlar.

Cndr isimli arkadaş ASP ile yazmış ama bir bileşen yükleme mecburiyeti getirmiş. Bu büyük bir dezavantaj, basit bir form için ekstra bileşen kullanmaya gerek yoktur. İkinci olarak, cndr arkadaşımız mail gönderme formu oluşturmuş, oysa soruyu soran arkadaş "veri çağırma, düzenleme, kaydetme" gibi fonksiyonları olan bir form, yani veritabanı bazlı bir form istemiş, yani çok ilgisiz olmuş.

Ben de PHP ile kullanabileceğiniz bir form hazırladım. İki dil arasındaki farka bakarak tercihinizi yapabilirsiniz; ben ASP'yi kirli bir dil olarak nitelediğimden PHP kullanıyorum.

Verileri kaydetmek istiyorsan önce bir veri tabanın olmalı. Dosyalara da kayıt yapabilirsin ama sık kullanacaksan kesinlikle veritabanı kullanmalısın. (Veritabanını ve kullanıcıyı nasıl oluşturacağını bilmiyorsan internette arayarak çok ayrıntılı anlatımlar bulabilirsin.)

Veritabanın hazırsa şimdi aşağıya yazacağım kodları, form.php veya kendi belirleyeceğin herhangi bir isimle kaydet.

PHP:
<?php

/*************** AYARLAR **********************/
/***************BASLANGICI********************/
// vt = VeriTabani
$vt_sunucu = 'localhost' // Genellikle localhosttur.
$vt_kullanici = 'kendi_kullanici_adin'; // Kendi veritabani kullanici adin.
$vt_sifre = 'kendi_sifren'; // Kendi veritabani sifren.
$vt_adi = 'veritabani_adi'; // Kendi veritabani adin.

// Formda doldurulacak alanlari burada belirle. Yenilerini ekleyebilir, isimlerini degistirebilir veya cikarabilirsin.
$doldurulacak_alanlar = array(
		'kayit_no' => 'Kayıt No',
		'isim' => 'Adınız',
		'soyisim' => 'Soyadınız',
		'e-posta' => 'E-posta adresiniz',
		'ulke' => 'Ülke',
		'sehir' => 'Şehir',
		);
/*************** AYARLAR **********************/
/*****************SONU************************/

//HTML kodlarini göster.
html_baslangic();

// Veritabanina baglan.
mysql_connect($vt_sunucu, $vt_kullanici, $vt_sifre) or die('Veritabanı bilgileri dosyaya yanlış girilmiş veya şu anda sunucu çalışmıyor. Ek bilgi:<br>' . mysql_error());
mysql_select_db($vt_adi) or die('Veritabanı adı yanlış girilmiş, muhtemelen böyle bir veritabanı yok veya bozuk. Ek bilgi:<br>' . mysql_error());

// Güvenlik acigi olmasin.
if (!empty($_POST) && !get_magic_quotes_gpc())
	foreach ($_POST as $isim => $deger)
		$_POST[$isim] = addslashes($deger);

// Form gönderilmemisse bos formu goster.
if (!isset($_POST) || empty($_POST))
	bos_form_goster();
// Kaydet butonuna basilmis..
elseif (isset($_POST['gonderildi']) && $_POST['gonderildi'])
{
	$bos_birakilanlar = array();
	foreach ($doldurulacak_alanlar as $alan_adi => $alan_aciklamasi)
	{
		// Bosluklari adamdan saymiyoruz.
		$alan_adi = trim($alan_adi);
		if (!isset($_POST[$alan_adi]) || empty($_POST[$alan_adi]))
			$bos_birakilanlar[] = $alan_aciklamasi;
	}
	// Formda bos yer birkamissa yeniden doldurma formunu göster.
	if (!empty($bos_birakilanlar))
		bos_form_goster('Bu alanları boş bıraktınız: ' . implode(', ', $bos_birakilanlar));
	// Bos yer birakmamissa kaydet o zaman..
		formu_isleme_koy();
}
// Düzenlemek istiyorsa düzenleme formu göster.
elseif (isset($_POST['duzenle']) && $_POST['duzenle'])
	duzenleme_formu_goster();

// Kayit silmek istiyoruz..
if (isset($_POST['kayit_sil']) && $_POST['kayit_sil'])
	kayit_sil();

// Tüm kayitlari altta göster
kayitlari_listele();

// HTML kapanis kodlari.
html_kapanis();

// Formu ekrana yazdirmak icin bir fonksiyon olusturalim.
function bos_form_goster($hata_mesaji = null, $duzenleme_bilgileri = array())
{
	global $doldurulacak_alanlar;

	echo '
		<form action="', $_SERVER['PHP_SELF'], '" method="post">
			<table border="0" cellspacing="2" cellpadding="1" width="500px">';

	if (!empty($hata_mesaji))
		echo '
				<tr>
					<td colspan="2" style="border: 1px dashed red; color: red;">', $hata_mesaji, '</td>
				</tr>';
	foreach ($doldurulacak_alanlar as $alan_adi => $alan_aciklama)
		echo '
				<tr>
					<td>', $alan_aciklama, '</td>
					<td><input type="text" name="', $alan_adi, '" value="', empty($duzenleme_bilgileri) ? @$_POST[$alan_adi] : $duzenleme_bilgileri[$alan_adi], '"></td>
				</tr>';
	echo '
				<tr>
					<td><input type="submit" value="Kaydet" name="gonderildi"></td>
					<td><input type="submit" value="Veri çek" name="duzenle">
					<input type="submit" value="Kayıt sil" name="kayit_sil" onclick="return confirm(\'Emin misin? Silme işleminin geri dönüşü yok!\');"></td>
				</tr>
				<tr>
					<td colspan="2"><font color="red"><b>Nasıl kullanılır:</b></font>
					Yeni bir kayıt girmek için tüm alanları doldurarak "Kaydet" tuşuna tıklarsın.
					Var olan bir kaydı düzenlemek için, aşağıdaki kayıt listesinden bir kayıt numarasını
					yazarsın ve değiştirmek istediğin alanları değiştirip "Kaydet" butonuna tıklarsın.
					Eğer var olan bir kaydın bilgilerini görmek istersen, kayıt nosunu yazıp "Veri çek"
					butonuna tıklayabilirsin. Kayıt silmek için sadece kayıt numarasını ilgili alana yazıp
					"Kayıt sil" tuşuna tıklaman yeterli.<br><font color="red" face="arial">Elmacik sevgiler sunar.</font></td>
				</tr>
			</table>
		</form>';
}

function duzenleme_formu_goster()
{
	// Veritabanindan bilgileri oku.
	$sorgu = mysql_query("SELECT * FROM form_bilgileri WHERE kayit_no = $_POST[kayit_no];");
	$bilgi = mysql_fetch_assoc($sorgu);
	$kayit_yok = (mysql_num_rows($sorgu) == 0) ? true : false;
	mysql_free_result($sorgu);
	// Girilen kayit numarasinda kimse yok..
	if ($kayit_yok)
		bos_form_goster('Girdiğiniz kayıt numarasına ait bir kayıt bulunamadı.');
	else
		// Veritabanindan gelen bilgileri formun icinde göster..
		bos_form_goster(null, $bilgi);
}

function formu_isleme_koy()
{
	global $doldurulacak_alanlar;
	// Düzenliyor muyuz yeni kayit mi giriyoruz?
	$sorgu = mysql_query("SELECT kayit_no FROM form_bilgileri WHERE kayit_no = $_POST[kayit_no];");
	$kayit_var = (mysql_num_rows($sorgu) == 0) ? false : true;
	list($kayit_no) = mysql_fetch_row($sorgu);
	mysql_free_result($sorgu);
	$kayit_alanlari = array_keys($doldurulacak_alanlar);

	// Kayit varsa bilgileri yenileriyle güncelle
	if ($kayit_var)
	{
		$kayit = 'UPDATE form_bilgileri SET';
		foreach ($kayit_alanlari as $kayit_alani)
			if ($kayit_alani = 'kayit_no')
				continue;
			else
				$kayit .= " $kayit_alani = '$_POST[$kayit_alani]',";
		$kayit = substr($kayit, 0, -1);
		$kayit .= "WHERE kayit_no = $kayit_no;";
		$kayit_basarili = mysql_query($kayit);
		if ($kayit_basarili)
			bos_form_goster('Güncelleme işlemi başarıyla gerçekleştirildi.', $_POST);
		else
			bos_form_goster('Güncelleme sırasında hata oluştu. Ayrıntılı bilgi:<br>' . mysql_error(), $_POST);
	}
	// Kayit yok, yenisini olusturacagiz.
	else
	{
		$kayit = 'INSERT INTO form_bilgileri (`';
		$kayit .= implode('`,`', $kayit_alanlari);
		$kayit .= '`) VALUES(';
		foreach ($kayit_alanlari as $kayit_alani)
			$kayit .= "'$_POST[$kayit_alani]',";
		$kayit = substr($kayit, 0, -1) . ');';
		$kayit_basarili = mysql_query($kayit);
		if ($kayit_basarili)
			bos_form_goster('Yeni kayıt başarıyla girildi.', $_POST);
		else
			bos_form_goster('Yeni kayıt girerken hata oluştu. Ayrıntılı bilgi:<br>' . mysql_error(), $_POST);
	}
}

function kayitlari_listele()
{
	echo '
		<table border="0" cellspacing="2" cellpadding="1">
			<tr>
				<th>Kayıt No</th><th>İsim</th><th>Soyisim</th><th>E-posta</th><th>Ülke</th><th>Şehir</th>
			</tr>';
	$bilgiler = array();
	$sorgu = mysql_query("SELECT * FROM form_bilgileri");
	while ($bilgi = mysql_fetch_assoc($sorgu))
		$bilgiler[] = array(
						'kayit_no' => $bilgi['kayit_no'],
						'isim' => $bilgi['isim'],
						'soyisim' => $bilgi['soyisim'],
						'e-posta' => $bilgi['e-posta'],
						'ulke' => $bilgi['ulke'],
						'sehir' => $bilgi['sehir'],
						);
	mysql_free_result($sorgu);
	foreach ($bilgiler as $bilgi)
		echo '
			<tr>
				<td><b>', $bilgi['kayit_no'], '</b></td>
				<td>', $bilgi['isim'], '</td>
				<td>', $bilgi['soyisim'], '</td>
				<td>', $bilgi['e-posta'], '</td>
				<td>', $bilgi['ulke'], '</td>
				<td>', $bilgi['sehir'], '</td>
			<tr>';
	echo '
		</table>';
}

function kayit_sil()
{
	// Güvenlik acigi olmasin.
	$_POST['kayit_no'] = (int) $_POST['kayit_no'];
	$sorgu = mysql_query("SELECT kayit_no FROM form_bilgileri WHERE kayit_no = $_POST[kayit_no];");
	$kayit_yok = (mysql_num_rows($sorgu) == 0) ? true : false;
	mysql_free_result($sorgu);
	if ($kayit_yok)
	{
		bos_form_goster('Silmeye çalıştığın ' . $_POST['kayit_no'] . ' numaralı kayıt zaten yok..');
		return false;
	}
	$sorgu = mysql_query("DELETE FROM form_bilgileri WHERE kayit_no = $_POST[kayit_no];");
	if ($sorgu)
		bos_form_goster("$_POST[kayit_no] numaralı kayıt başarıyla silindi.");
	else
		bos_form_goster('Silme sırasında hata oluştu. Bilgi:<br>' . mysql_error());
}

function html_baslangic()
{
	echo '<html>
	<head>
		<title>Form sayfası</title>
		<style type="text/css">
			td, th { border: 1px solid blue; }
		</style>
	</head>
	<body>';
}

function html_kapanis()
{
	echo '
	</body>
</html>';
}

?>

Bir kaç örnek kayıt içeren SQL sorgusunu da MySQL sunucusunda oluşturacağın bir veritabanında çalıştır. İşte veritabanını kodlara göre düzene sokacak olan SQL sorgusu:
Kod:
CREATE TABLE IF NOT EXISTS `form_bilgileri` (
  `kayit_no` int(4) unsigned NOT NULL auto_increment,
  `isim` varchar(80) collate latin1_general_ci NOT NULL,
  `soyisim` varchar(80) collate latin1_general_ci NOT NULL,
  `e-posta` varchar(80) collate latin1_general_ci NOT NULL,
  `ulke` varchar(80) collate latin1_general_ci NOT NULL,
  `sehir` varchar(80) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`kayit_no`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

INSERT INTO `form_bilgileri` (`kayit_no`, `isim`, `soyisim`, `e-posta`, `ulke`, `sehir`) VALUES
(1, 'Test1', 'Test2', 'Test3@test4.com', 'Türkiye', 'Adana'),
(2, 'Test5', 'Test6', 'Test7@test8.com', 'Türkiye', 'Bilecik'),
(3, 'Test9', 'Test0', 'Test01@test02.com', 'Türkiye', 'Amasya');

Az önce senin sorunu cevaplamak için yazdığım bu küçük yazılım müsveddesi şu yeteneklere sahiptir:

1- Veritabanına yeni kayıtlar girebilir.
2- Daha önce girilmiş kayıtlara ait verileri veritabanından okuyabilir.
3- Daha önce girilmiş kayıtları güncelleyebilir.
4- Veritabanından kayıt silebilir. (Silmeden önce emin misin diye sorar. :) )
5- İşlemlerin sonucunu bildirir. İşlem başarısız olmuşsa bilgilendirici mesajlar verir.
6- Alanların doldurulup doldurulmadığını kontrol eder ve doldurulmamış alanlar için uyarı verir.
7- Veritabanındaki tüm kayıtları altta listeler.

Dosyadaki "ayarlar" kısmını kendine göre değiştirmeyi unutma. Doldurulacak alanları değiştirebilir, silebilir veya yeni alan ekleyebilirsin. Herşey otomatik olduğu için diğer kodları değiştirmene gerek yok, örneğin doldurulacak alanlara sadece "yaş => 'Yaşınız'" gibi bir ifade girsen, program yaş bilgisini de sorar ve veritabanına kaydeder. Ama bu durumda kayıtları gösterme fonksiyonunu ihtiyacına göre düzenlemen gerekir.

Ayrıca bu kodu sadece örnek olsun diye yazdım, tam fonksiyonel bir program değildir. Örneğin veritabanında çok fazla kayıt varsa tümünü birden listelemeye çalışacağı için sunucu donabilir; donmasa da upuzun bir sayfa ile karşılaşırsın.

Çalışmazsa veya sormak istediğin farklı bir şey olursa biz de hala yaşıyorsak ve cevabı biliyorsak soruna cevabı ölçütünde mukabele ederiz.

Bu arada Türkçe karakterler düzgün görünmezse <head> etiketinden sonra Türkçe karakter kodlaması olan ISO-8859-9 kodunu uygun bir <meta> etiketi içinde yazmalısın. Aslında ben kodlara koymuştum, ama neden etiket içeriği forumda yasaklı kelimeler.

Sevgiler.
 

cndr

Öğrenci
Katılım
20 Eylül 2007
Mesajlar
80
Reaksiyon puanı
0
Puanları
6
asp'de bu tür bileşenler şarttır, php'le bir tutmamak gerekir.

veritabani olayını atlamışım bu konuda yine pmden yardim edebilrim. Arkadaş, asp olarak sorduğu için bende asp olarak yanıt verdim. ama php benimde tavsiyemdir.
 

Turab Garip

Dekan
Emektar
Katılım
30 Mayıs 2007
Mesajlar
6,902
Reaksiyon puanı
181
Puanları
1,243
Doğrudur cndr, eline sağlık. Doğrusu ben ASP'nin bu kadar zayıf ve işlevsiz bir dil olduğunu bilmiyordum. Sanıyorum formda değil de mailde ek bileşen gerekiyor. Her neyse, sonuçta kullanışlı bir dil olmadığı için ben PHP'yi tercih etmiştim, bir kez daha görüyorum ki çok doğru bir tercih yapmışım.

Bu arada arkadaş "ASP olsun ama PHP de olabilir" dediği için yazmıştım. Umarım birinden biri işine yarar.
 

username

Öğrenci
Katılım
10 Ağustos 2008
Mesajlar
6
Reaksiyon puanı
0
Puanları
0
Çok Teşekür Ederim Ben Şimdilik Bunları Uygulamaya geçeyim Bu arada "CNDR" Arkadaşa da konu ile ilğili vermiş oldugum sözü tutacağımdan emin olabilir Yemek ısmarlayacağım şimdiden teşekürler konu ile ilğili bazı takıntılarım olacağını sanıyorum ben özelden ulaşırım ...
 

paromec

Öğrenci
Katılım
18 Ağustos 2009
Mesajlar
2
Reaksiyon puanı
0
Puanları
0
Merhaba; elmacik verdiğin kodları denedim ama malesef çalıştıramadım. Nerede hata yapmış olabilirim. Yardımcı olursan çok sevinirim. Şimdiden teşekkürler..
 

paromec

Öğrenci
Katılım
18 Ağustos 2009
Mesajlar
2
Reaksiyon puanı
0
Puanları
0
Hocam pardon sorun benden kaynaklanıyormuş kodlar için teşkkürler. Ancak bir sorum daha var burda altta listelenen verilerin başka bir sayfada daha görüntülenmesini nasıl sağlıyacağız ??
 

Turab Garip

Dekan
Emektar
Katılım
30 Mayıs 2007
Mesajlar
6,902
Reaksiyon puanı
181
Puanları
1,243
Selamlar. Başka bir sayfa bu kayıtları göstermek istiyorsan, veritabanı bağlantısını yaptıktan sonra, o dosyaya yukarıda verdiğim
PHP:
kayitlari_listele()
isimli fonksiyonun kodlarını kopyalayıp yapıştırman yeterli. Daha sonra da istediğin yerde fonksiyonu çalıştırırsın ve kayıtlar listelenir.
 
Üst