FRIHOST • FORUMS • SEARCH • FAQ • TOS • BLOGS • COMPETITIONS
You are invited to Log in or Register a free Frihost Account!


html formu için yardım?





loserk
arkadaşlar htmlye iletişim kutusu gibi bir form koyarken;

<form method="POST" action=""> action kısmına bir url yazıyoruz öyle değil mi? peki bu yazdığımız urldeki sayfanın gönderdiğimiz mesajı alabilmesi için nasıl hazırlanmış olması gerekiyor,bir örnek verebilir misiniz? yani demek istediğim biz yazdığımız mesajı hedef bir sayfaya gönderiyoruz ama o hedef sayfa mesajımızı nasıl alıyor? yardımcı olursanız sevinirim...
muhendisabi
loserk wrote:
arkadaşlar htmlye iletişim kutusu gibi bir form koyarken;

<form method="POST" action=""> action kısmına bir url yazıyoruz öyle değil mi? peki bu yazdığımız urldeki sayfanın gönderdiğimiz mesajı alabilmesi için nasıl hazırlanmış olması gerekiyor,bir örnek verebilir misiniz? yani demek istediğim biz yazdığımız mesajı hedef bir sayfaya gönderiyoruz ama o hedef sayfa mesajımızı nasıl alıyor? yardımcı olursanız sevinirim...


bunu asp de request.querystring ile yapabilirsin. başka bir siteden aldığım anlatım aşağıda

Quote:
Code:

Request.Querystring

ASP teknolojisinde çok kullanılan ifadelerden bir diğeri de Request.Querystring dir. Bu deyim bir sayfadan başka bir sayfaya değişken yada değişkenler taşınmasını sağlar. <a href > tagı arasında yazılan ve Response.redirect ile yönlendirilen diğer sayfaya değişkenler taşımayı sağlar. equset.Querystring ile bir sayfadan diğer sayfaya değişken aktarmanın genel kullanımı şu şekildedir.

<a href="yonlendirilecek_sayfa.asp?ad=erhan&yas=20"> bu linke basıldığında yonlendirilecek sayfa açılacak ve ad,yas isminde iki değişken sayfaya geçirilecek işte bu değişkenler Request.Querystring deyimi sayesinde başka bir değişkenin içerisine aktararak kullanılır. Hemen bir örnek yapalım.

<html>
<head>
<meta [Sadece Kayıtlı Üyeler linkleri görebilir...]"Content-Type" content="text/html; charset=windows-1254">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Requestquerystring</title>
</head>
<body>
<A href="requestquerystring2.asp?ad=erhan&yas=20">bu linke basıldığında diğer sayfa değişkenler aktarılacak </a>
</body>
</html>

Şimde ikinci sayfamızı yapalım

<html>
<head>
<meta [Sadece Kayıtlı Üyeler linkleri görebilir...]"Content-Type" content="text/html; charset=ISO 8859-9">
<meta [Sadece Kayıtlı Üyeler linkleri görebilir...]"Content-Type" content="text/html; charset=windows-1254">
<title>Request querystring</title>
</head>
<%
ad=request.querystring("ad")
yas=request.querystring("yas")
%>
Bir önceki sayfadan gönderilen değerler
<br>
AD=<%=ad%>
<br>
YAS=<%=yas%>
</html>

Request.querystring de Form kullanımı nasıl yapılır detayları aşağıda belirtilmiştir.

Bunun diğer request.querystring ile hiçbir farkı yok sadece bunda değişkenler form elemanlarını kullanarak göndeririz. bir örnekle açıklayalım.

<html>
<head>
<meta [Sadece Kayıtlı Üyeler linkleri görebilir...]"Content-Type" content="text/html; charset=ISO 8859-9">
<meta [Sadece Kayıtlı Üyeler linkleri görebilir...]"Content-Type" content="text/html; charset=windows-1254">
<title>Request querystring</title>
</head>
<form method="get" action="Requestquerystring4.asp">
İsminiz : <input type="text" name="isim" size="20">&nbsp; <input type="submit" value="Gir">
</form>
</html>

Burada dikkat etmemiz gereken değişkeni taşıyacağımız textboxun ismi Çünkü bir diğer sayfamız da değişkeni kullanabilmek için texboxun namesini bilmemiz gerekir. Şimdi ikinci örneği yapalım.

<html>
<head>
<meta [Sadece Kayıtlı Üyeler linkleri görebilir...]"Content-Type" content="text/html; charset=ISO 8859-9">
<meta [Sadece Kayıtlı Üyeler linkleri görebilir...]"Content-Type" content="text/html; charset=windows-1254">
<title>Request querystring</title>
</head>
<%
Response.write("Merhaba : <b>" & Request.querystring("isim") & "</b>")
%>
</html>
muhendisabi
loserk wrote:
arkadaşlar htmlye iletişim kutusu gibi bir form koyarken;

<form method="POST" action=""> action kısmına bir url yazıyoruz öyle değil mi? peki bu yazdığımız urldeki sayfanın gönderdiğimiz mesajı alabilmesi için nasıl hazırlanmış olması gerekiyor,bir örnek verebilir misiniz? yani demek istediğim biz yazdığımız mesajı hedef bir sayfaya gönderiyoruz ama o hedef sayfa mesajımızı nasıl alıyor? yardımcı olursanız sevinirim...


bu da diğer bir anlatım :

Quote:
Code:


Ziyaretçiden Bilgi Alma


İstersek adına Web Programı diyelim, sitemize ziyaretçilerin bilgi ulaştırması ancak HTML’in Form etiketi yoluyla olur. Klasik HTML+CGI yöntemleri ile ASP tekniğinde Form etiketlerinin işlevleri arasında bir fark yoktur. Ancak aralarındaki benzerlik de hemen hemen bundan ibarettir. Klasik HTML+CGI yönteminde Form’larımızın Action özelliğine değer olarak çoğu zaman bir CGI programının yolunu ve adını yazarız; oysa ASP’de Form bu bilgileri kendisinin de içinde bulunduğu ASP sayfasına gönderebilir; ve örneğin formun eksik doldurulup doldurulmadığını sınayabilir.


HTML bilgilerinizi tazelerseniz; bir Form’dan Server’a iki metodla bilgi gelebilir: Get ve Post yöntemleriyle. Get, Browser’ın bilgileri yumak yapıp, aradaki boşlukları kaldırarak ve ASCII olmayan karakterleri URL koduyla şifreleyerek Query_String içine yazdırmasını sağlar. Diğer yöntemi birazdan ele alacağız.


Küçük bir form oluşturalım ve bu formdan Get yoluyla gelecek bilgileri daha sonra nasıl kullanabileceğimizi görmek için, şimdilik sadece sayfamıza yazdıralım. Şu kodu miniform_get.asp adıyla kaydedin:


<% @LANGUAGE=VBscript %>


<%


Option Explicit


Response.Expires = 0


Dim strAdi, strSoyadi, hamBilgi, islenmisBilgi


If Request.ServerVariables("QUERY_STRING") <> "" Then


     strAdi = Trim(Request.QueryString("adi"))


     strSoyadi = Trim(Request.QueryString("soyadi"))


     hamBilgi = Trim(Request.QueryString("mesaj"))


     islenmisBilgi = Replace(hamBilgi, vbcrlf, "<BR>" & vbcrlf)


%>


<html>


<head>


<title>Mini Form</title>


<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">


<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">


</head>


<body>


Script'imize Form'dan bilgi ulaştı <BR><BR>


Gelen bilgiler:<BR>


Formu dolduran kişinin adı: <%= strAdi%> <BR><BR>


Formu dolduran kişinin Soyadı: <%= strSoyadi%> <BR><BR>


Ham Bilgiler: <%= hamBilgi%> <BR><BR>


İşlenmiş Bilgiler: <%= islenmisBilgi%> <BR><BR>


"Query_String" olarak gelen bilgi: <BR>


<%= Request.ServerVariables("QUERY_STRING")%>


</body>


</html>


<%


Else


%>


<html>


<body>


Bize bilgi verir misiniz?<BR>


<FORM ACTION= "<%= Request.ServerVariables("SCRIPT_NAME") %>" METHOD="GET">


Adınız: <INPUT TYPE="Text" NAME="adi"><BR>


Soyadınız: <INPUT TYPE="Text" NAME="soyadi"><BR>


Mesajınız: <TEXTAREA NAME="mesaj">Mesajınızı buraya yazın!</TEXTAREA><BR>


<INPUT TYPE="Submit" NAME="Gönder" VALUE="Gönder">


</FORM>


</body>


</html>


<% End If %>


Kodumuzun bir değişken tanımladığımız ve Form’dan gelen bilgileri işleyen bölümü, bir de henüz bu bilgi gelmeden önce Form’u oluşturan bölümü olduğuna dikkat ediyor musunuz? Bu iki bölümü bir If sınama deyimiyle oluşturduğumuzu da görüyorsunuz.


ASP tekniği ve VBScript’in kolaylıkları birleşince, CGI’da olduğu gibi, Formdan gelen bilgileri özel fonksiyonlar yazarak ayıklamamız gerekmez. ASP’nin anladığı şekliyle, Query_String Form’dan GET metoduyla gelen bilgileri Form’un bilgileri atadığı değişkenlerin adlarıyla eşleştirerek tutar; ve bize sadece Form’daki değişkenlerin değerlerini, istiyorsak, başka değişkenlere atamak kalır. Burada Form’un “adi” olan değişkenini bir String değişkeni olan strAdi değişkenine, yine Form’un “soyadi” olan değişkenini başka bir bir String değişkeni olan strSoyadi değişkenine atıyoruz. Bunu yapmamızın sebeplerinden biri iki dizi değişkenden hangisinin ASP tarafında kullanıldığını bilmektir.


Form’un üçüncü değişkeni olan “mesaj” ise ASP tarafından işlenirken, iki şekilde ele alınacak: hamBilgi değişkeninin değeri olarak, ve bunu Replace() fonksiyonu ile işledikten sonra atayacağımız islenmisBilgi değişkenini değeri olarak.


Replace() fonksiyonu, bir değişkende bir değeri bulur ve arzu ettiğimiz bir başka değerle değştirir. Üç argüman alır: içinde arama ve değişiklik yapılacak değişken, aranacak değer ve yerine konacak değer. Burada iki veya daha fazla paragraf içeren bir mesajın içindeki satırbaşı-yeni paragraf karakterini, HTML’in anlayacağı <BR> ve satırbaşı karakteri ile değiştiriyoruz.


Şimdi miniform_get.asp’yi çalıştırın, doldurun (mesaj bölümünde iki paragraf oluşturmak için bir yerde Ctrl+Enter’a basmayı unutmayın! Yoksa işlenmiş bilgi ile ham bilginin farkını göremeyiz!) ve Gönder tuşunu tıklayın. Bu arada Browser’ınızın URL hanesine bakın. Bu Get metodunun bilgi gönderme şeklidir. Bilgiler URL-kodu olarak değiştirilir ve gideceği sayfanın adına, soru işareti ile eklenerek, gönderilir. (Tabii ziyaretçiniz yıldızlar halinde görüntülenen bir parola yazdıysa onu da burada açık şekilde görecektir!)


 


Bizim Form bilgilerimiz hangi sayfaya gönderiliyor? Yine kendisine. Bunu Form etiketinin Action özelliğinin karşısında yazılı olan VBScript kodu sağlıyor. Bu yolla gelen bilgi, şuna benzer olmalıdır:


Script'imize Form'dan bilgi ulaştı


Gelen bilgiler:


Formu dolduran kişinin adı: Kroninukus


Formu dolduran kişinin Soyadı: Computerium


Ham Bilgiler: Merhaba Ben üniversiteyi yeni bitirmiş bir gencim!


İşlenmiş Bilgiler: Merhaba


Ben üniversiteyi yeni bitirmiş bir gencim!


"Query_String" olarak gelen bilgi:


adi=Kroninukus+&soyadi=Computerium+&mesaj=Merhaba%0D%0ABen+%FCniversiteyi+yeni+bitirmi%FE+bir+gencim%21+%0D%0A&G%F6nder=G%F6nder


Replace() fonksiyonunun, mesajın içindeki CRLF karakterini bulup yerine <BR> koyduğuna dikkat edin. Query_String’in yazdığınız ad ve soyad ile mesajı nasıl yumak (tek String) yaptığına bakın. Ve programımızın bu yumaktan bilgileri alıp, yeni değişkenlere atayarak Browser penceresinde nasıl görüntülediğini inceleyin.


Bu programın canalıcı noktası, Request nesnesinin ServerVariables kolleksiyonunda, Query_String koleksiyonunu kullanmasıdır. Çünkü Get, Form’un sağladığı bilgileri bu koleksiyona kaydetmiş bulunuyor.


Şimdi aynı işi Post metodu ile yapalım. Bunun için biraz önce kaydediğiniz kodda şu değişiklikleri yapın ve miniform_post.asp adıyla kaydedin:


<% @LANGUAGE=VBscript %>


<%


Option Explicit


Response.Expires = 0


Dim strAdi, strSoyadi, strBilgi


If Request.ServerVariables("CONTENT_LENGTH") <> 0 Then


            strAdi = Trim(Request.Form("adi"))


            strSoyadi = Trim(Request.Form("soyadi"))


            strBilgi = Trim(Request.Form("mesaj"))


            strBilgi = Replace(strBilgi, vbcrlf, "<BR>" & vbcrlf)


%>


<html>


<head>


<title>Mini Form (Post)</title>


<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">


<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">


</head>


<body>


Script'imize Form'dan bilgi ulaştı <BR><BR>


Gelen bilgiler:<BR>


Formu dolduran kişinin adı: <%= strAdi%> <BR><BR>


Formu dolduran kişinin Soyadı: <%= strSoyadi%> <BR><BR>


Mesaj: <%= strBilgi%> <BR><BR>


</body>


</html>


<%


Else


%>


<html>


<body>


Bize bilgi verir misiniz?<BR>


<FORM ACTION= "<%= Request.ServerVariables("SCRIPT_NAME") %>" METHOD="POST">


Adınız: <INPUT TYPE="Text" NAME="adi"><BR>


Soyadınız: <INPUT TYPE="Text" NAME="soyadi"><BR>


Mesajınız: <TEXTAREA NAME="mesaj">Mesajınızı buraya yazın!</TEXTAREA><BR>


<INPUT TYPE="Submit" NAME="Gönder" VALUE="Gönder">


</FORM>


</body>


</html>


<% End If %>


İki Miniform sayfası arasındaki değişikliği farkettiniz mi? Önce, Form etiketinin METHOD özelliğinin Post olduğuna dikkat edin. Bu yöntemle gelen bilgiler, Request nesnesinin Form kolleksiyonuna, işlenmiş (yani değişken=değer çiftleri halinde yazılmış) olacağı için, Form bilgilerini yeni değişkenlere atama ifadelerimizi de farklı yazıyoruz. Önce formdan gerçekten bilgi gelip gelmediğini Content_Length değişkeninin boyutunun sıfır olup olmadığına bakarak anlıyoruz. Bu değişkenin boyutu 0 ise form içi boş gönderilmiş demektir; bu durumda ziyaretçiyi form’u doldurması için uyaran bir Sub’a gönderebiliriz. Form doldurulmuş ise, kodumuzun birinci bölümü yapması gereken değişkenlere atama işlemini yapıyor; ve sonuçları ziyaretçinin Browser penceresine yazıyor.

loserk
sorumun cevabını tam olarak aldım,çok teşekkürler mühendisabi... eline sağlık Wink
muhendisabi
loserk wrote:
sorumun cevabını tam olarak aldım,çok teşekkürler mühendisabi... eline sağlık Wink


rica ederim, işine yaradığı için sevindim
insolent1
PHP için;

Code:

$isim=$_REQUEST['ad'];
$sifre=$_REQUEST['sifre'];

Form un içinde de

Code:
 
<input name=\"ad\" type=\"text\"> 
<input name=\"sifre\" type=\"password\">


şeklinde olmalı.
Related topics
Frihost nedir ? Size neler sunar ?
Pakistan Depremi icin Bi Elde Siz Uzatın..
Atatürk için hip hop tarzında yapılmış bir müzik
Atatürk'ümüz için DEV Arşiv
php dil çevirmede yardım edin lütfen
SMF ile Mambo/Joomla Entegre Edilmesi
html yardım
Pardus 2008 çıktı
Phpbb 3 için yardım
hacker adası
Apple‘ın Patent Davası Google Telefonları Etkileyebilir
Böyle bi PM geldi
En Riskli Ülke Türkiye
Miryokefalon Muharebesi
Reply to topic    Frihost Forum Index -> Language Forums -> Turkish

FRIHOST HOME | FAQ | TOS | ABOUT US | CONTACT US | SITE MAP
© 2005-2011 Frihost, forums powered by phpBB.