Bi kaç PHP Kodu daha :)

Php ile oturum yönetimi....

PHP ile Oturum Yönetimi

Oturum yönetimini genelde ziyaretçi siteye geldiğinde ona bir kimlik atayıp yaptığı işlemlerin kontrol edildiği bir sistem olarak görebiliriz. Online shop sistemlerinde şipariş esnasına kadar olan işlemlerden tutunda üyelik sistemini kullanan bir siteye kadar kullanılabilir. Ziyaretçi sitede sayfalar arasında dolaşırken 3 şekilde takip edilir. Birincisi kullanıcıya rasgele bir değer verip url hanesinden iletimi yani "index.php?ziyaretci=gdfg8787df7gdf" gibi olabilir. İkinci olarak session (oturum) atanabilir. Bu sayede kullanıcı siteye geldiğinde ona birnevi kimlik numarası atanır ve bunu istediğimizde değiştirebiliriz. Üçüncüsü ise cookie (kuki) kullanmaktır. ziyaretçinin bilgisayarına browser yoluyla kuki dosyayı atarak işlemlerimizde bu dosyayı okuyarak kullanıcıyı tanıyabiliriz.

Session

http://www.php.net adresinden en son sürüm php binary dosyası PHP V4.0.6 kullandığımızı varsayıyorum. Session ve bazı özellikler bazı php kaynak dosyasının derlenmesinde es geçilmiş olabilir. Öncelikle işlemlerimize başlamadan önce php.ini dosyasını açalım ve "session.save_path = /tmp" değişkeni bu şekilde tanımlanmışsa windows işletim sistemi kullanıyorsak session dosyalarının yazılması için c:\tmp dizini oluşturmamız yeterli. şimdi basit bir örnek yapalım



--------------------------------------------------------------------------------
<?php

//session başlatalım
session_start();

//session değişkeni kaydedelim
session_register('sayac');

//session değişkeni olan sayac ın değerini artıralım
$sayac++;

echo("bu sayfayı $sayac. ziyaretiniz");

?>


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

Bu sekliyle bir session sayacı yapmış olduk. session_start() ile , istemci taraf için, yok ise bir session ID oluşturarak cookie olarak atanır. Bu session ID in degeri script içinde $PHPSESSID değişkeninin değeridir. session_register() fonksiyonu ile session değikeni üretir. Session değişkeni olup olmadığını kontrolü session_is_registered() fonksiyonuyla yapılır ve örneğimizdede olduğu gibi $sayac session değişkeni ürettik ve browres her açılışında bir artırdık bu değişkenin değerini istediğimiz gibi değiştirebiliriz. session_unset() fonksiyonuyla herhangi bir session değişkenini bitirebiliriz ve bu tur değişkenler çok ise hepsini bitirmek için session_destroy() fonksiyonu çağrılır. ikinci örneğimize geçelim.


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

<?php
session_start();
//az önceki scriptimizden kalan sayac kalmışmı bakalım
if(session_is_registered(sayac))
{
echo "sayac ile tanımlı session var";
}
else
{
echo "sayac ile tanımlı session yok";
//bizde tekrar oluşturalım
session_register(sayac);
}
//mesaj session değişkeni
session_register('mesaj');
$mesaj="Merhaba Dünya";

$sayac++;
echo("<br> $mesaj <br> $sayac <br>");

//session ID değerini url yoluylada iletebilirsiniz
?>
<a href="<?echo$PHP_SELF?>?PHPSESSID=<?echo$PHPSESSID?>">Devam</a>




--------------------------------------------------------------------------------
Session kullanımlarıyla ilgi olarak örneklerinizi çoğaltabilirsiniz. Ayrıca daha bir çok session fonksiyonları ve kullanım şekillerde var. bunun için Php manual fonksiyon listesine ve yorumlara bakabilirsiniz.http://www.php.net/manual/en/
Cookies

Cookies, sunucu tarafından gönderilen bilgilerin browser aracılıyla kullanıcı bilgisayarında cookie'ler için ayrılmış bir dosyaya yazdırmakla olur. Cookie kullanarak sitemizde üyelik sistemide oluşturabiliriz önemli olan kullanıcının bilgisayarına herhangi bir rasgele değer üretip yollamak ve bu değeri örneğin databasenize yazarak güvenli bir bağ kurabilirsiniz. Böylece kullanıcının parola gibi gizli bilgileri cookie olarak atmamş olursunuz. PHP, cookie işlemleri için setcookie() fonksiyonunu kullanır. Bu fonksiyon 6 adet parametre kullanır.

setcookie (cookie_ismi, değer, bitimi, yol, alan, güvenlik)








Buradaki paremetreler: cookie_ismi -> cookie tanımladığımız isim, deger -> cookie değeri, bitimi -> cookienin geçerlilik süresi hiç yazmazsanız browser kapanana kadar, yol -> '/' olarak girersek bütün site, alan -> örnek '.duzgun.com' , güvenlik -> '1' sadece güvenli iletişimlerde cookie kullan yada '0' ise her zaman kullanabilirsin. şimdi cookie kullanımını kapsayacak bir örnek yapalım.


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

<?php

//oluşturulacak cookie adını girelim
$cookie_adi = "id";

//rasgele sayı üretecini harekete geçir
srand((double)microtime()*1000000);

$deger = rand();
//$deger = md5 (uniqid (rand()));

//cookieyi gönder
setcookie($cookie_adi,$deger,time()+14400,'/');

//$HTTP_COOKIE_VARS[$cookie_adi] ile cookie'yi oku
echo $cookie_adi."<br>".$HTTP_COOKIE_VARS[$cookie_adi];

?>
 
Phpde gd kütüphaneleri yardımıyla image yaratabiliriz....

<?php
$h=50; // resmimizin boyu
$w=150; // genişlik değeri
$im=ImageCreate($w,$h); // tualimizi oluşturduk
// renk tanımlamalarımızı yapıyoruz.
$beyaz=ImageColorAllocate($im,255,255,255);
$siyah=ImageColorAllocate($im,0,0,0);
$kirmizi=ImageColorAllocate($im,255,0,0);
$navy=ImageColorAllocate($im,0,0,128);

// resmimizin arka planını boyuyoruz
ImageFill($im,0,0,$navy);

// resmimiz üzerinde yazı yazıyoruz.
ImageString($im,15,36,15,"Tuncay",$beyaz);

// başlık bilgilerini gönderiyoruz tarayıcıya biz png olarak gönderdik

header("Content-type: image/png");
ImagePNG($im);
ImageDestroy($im);
// işte resmimiz hazır.
?>
 
Php de online kişi sayısı hesaplamada bir çok yöntem kullanılır. ama biz en fazla kullanılan ve güvenilir olan yöntemi kullanalım...

Öncelikle bir veritabanına ihtiyacımız var. Veritabanımızda useronline adında bir table oluşturuyoruz. Gerekli kodlar altta.

CREATE TABLE useronline (
on_id int(20) NOT NULL auto_increment,
timestamp int(15) NOT NULL default '0',
ip varchar(100) NOT NULL default '',
file varchar(100) NOT NULL default '',
PRIMARY KEY (on_id)
) TYPE=MyISAM;

Daha sonra kodlarımızı yazalım ve user_online.php olarak kayıt edelim. Tabi siz adını değiştirebilirsiniz ama gerekli ayarlamaları unutmadan.

// user_online.php
<?
include ("config.php") // veritabanına bağlantı kodları yer alacak


$timeoutseconds = 60;
$timestamp = time();
$timeout = $timestamp-$timeoutseconds;
$SID = session_id();

$insert = mysql_query("INSERT INTO useronline (timestamp,ip,file) VALUES ('$timestamp','$SID','$PHP_SELF')");
if(!($insert)) {
print "kayıt hatası> ";
}
$delete = mysql_query("DELETE FROM useronline WHERE timestamp<$timeout");
if(!($delete)) {
print "";
}
$result = mysql_query("SELECT DISTINCT ip FROM useronline WHERE file='$PHP_SELF'");
if(!($result)) {
print "";
}
$user = mysql_num_rows($result);


mysql_close();
if($user == 1) {
print("<center><font color=blue size=1><b>$user</b></font><font size=1> Kişi Online</font>\n");
} else {
print("<font color=blue size=1><b>$user</b></font><font size=1> Kişi Online</font>\n");
}

?>

// sayfamızda istediğimizin bir yerine <?include ("online_user.php")?> kodunu eklersek işlem bitmiş olur.
 
Sayfanıza sadece kullanıcı adı ve şifresi doğru olan birisi girebilir....

<?
if (@$HTTP_GET_VARS["gorev"] == "kontrol")
{
$k_adi = @$HTTP_POST_VARS["kulla"];
$k_sifre = @$HTTP_POST_VARS["sifre"];
if($k_adi == "admin" and $k_sifre == "yonetici")
{
?>
<html>
Başarılı bir şekilde giriş yaptınız.
</html>
<?
}
else
{
echo "Bu sayfaya girmek için yetkiniz yok.";
}
}
else
{
?>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<title>Yeni Sayfa 1</title>
</head>

<body>

<form method="POST" action="<? echo "$PHP_SELF?gorev=kontrol"; ?>">
<p align="center">
Kullancı Adı
<br>
<input type="text" name="kulla" size="20">
<br>
Şifre
<br>
<input type="password" name="sifre" size="20">
<br>
<input type="submit" value="Giriş Yap">
</p>
</form>

</body>

</html>
<?
}
?>
 
Bu dosyayı alarak herhangi bir isimle kaydedin ve kullanmak istediğiniz yere include ettikten sonra nesnenizi yaratın ve e-postalarınızı yollayın...

<?PHP
//###################################################
//
// E-Posta göndermeye yarayan PHP Sınıfı
//
//
//
// [email protected]
//
// ::: KULLANIMI :::
//
/*
$m = new eposta(
"Nerelerdesin?", // Konu
"Neden haber vermiyorsun?", // Mesaj
"[email protected]", // Gönderenin e-posta adresi
"MaXXSoFT", // Gönderenin adı
array("[email protected]","[email protected]","[email protected]"), // TO: e-postanın gönderildiği kişi ya da kişiler
array("[email protected]"), // Cc : List
array("[email protected]") // Bcc: List
)*/
//
//
//
//
//###################################################

class eposta{

var $konu ; // gönderilen e-postanın konu kısmı
var $mesaj; // gönderilen e-postanın içeriği
var $gonderen; // e-postayı gönderen kişinin e-posta adresini ve adını tutat
var $to; // e-posta gönderilecek olan e-posta adresi/adresleri
var $cc; // gönderilen e-postanın bir kopyasının gönderileceği e-posta adresleri (gönderilen kişiler birbirlerinin adreslerini görebilirler)
var $bcc; // gönderilen e-postanın bir kopyasının gönderileceği e-posta adresleri (gönderilen kişiler birbirlerinin adreslerini göremezler)
var $headers; //

function eposta($konu, $mesaj, $gondereninAdresi, $gondereninAdi, $toList=0, $ccList=0, $bccList=0){

$this->konu = $konu;
$this->mesaj = $mesaj;
$this->gonderen = $gondereninAdi . "<$gondereninAdresi>";

(is_array($toList)) ? $this->to = join($toList, ",") : $this->to = $toList;

(is_array($ccList)) ? $this->cc = join($ccList, ",") : $this->cc = $ccList;

(is_array($bccList)) ? $this->bcc = join($bccList, ",") : $this->bcc = $bccList;


// yukarıdaki notasyonun açıklaması
// if else yapısının kısaltılmış halidir.

// Because echo is not a function, following code is invalid.
//($some_var) ? echo('true'): echo('false');

// However, the following examples will work:
//($some_var) ? print('true'): print('false'); // print is a function
//echo $some_var ? 'true': 'false'; // changing the statement around


}


function gonder($format){

$this->headers = "From : " . $this->gonderen . "\r\n";

(!empty($this->cc)) ? $this->headers .= "Cc : " . $this->cc . "\r\n" : $this->headers = $this->headers;

(!empty($this->bcc)) ? $this->headers .= "Bcc : " . $this->bcc . "\r\n" : $this->headers = $this->headers;


// HTML formatında gönderiliyorsa, bunu sağlayan headerler ekleniyor.
// Yoksa boş geçiliyor ve TEXT formatında gönderiliyor.

if(!strcasecmp($format,"HTML")){

// strcasecmp komutu küçük büyük harf duyarlıksız karşılaştırma yapar
// birinci değer ikinciden küçükse sıfırdan küçük bir değer
// birinci değer ikincideğerden büyükse sıfırdan büyük bir değer
// iki değer de eşitse sıfır döndürür...

$this->headers .= "MIME-Version: 1.0\r\n";
$this->headers .= "Content-type: text/html; charset=windows-1254\r\n";
$this->headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

}

return @mail ( $this->to, $this->konu, $this->mesaj, $this->headers );

// mail fonksiyonu sendmail programını kullanarak server üzerinden e-posta yollar
// Eğer e-posta başarıyla yollanırsa TRUE
// Yollanamazsa FALSE döndürür.

}

}


?>
 
Tarih ve zaman sınıfı (türkçe)..

<?PHP
/************************ :: KULLANIMI :: **********************/
// Bu class dosyası include edildikten sonra....

// $t = new tarih();
// print $t->tarih_goster(0);

/***************************************************************/

class tarih{

var $haftaninGunleri, $aylar;

function tarih(){

$this->haftaninGunleri = array(

0=>"pazar",
1=>"pazartesi",
2=>"salı",
3=>"çarşamba",
4=>"perşembe",
5=>"cuma",
6=>"cumartesi"
);

$this->aylar = array(

1=>"ocak",
2=>"şubat",
3=>"mart",
4=>"nisan",
5=>"mayıs",
6=>"haziran",
7=>"temmuz",
8=>"ağustos",
9=>"eylül",
10=>"ekim",
11=>"kasım",
12=>"aralık"
);
}

function tarih_goster($format){

switch ($format){


case 0 : return $this->gun_hesapla() ." ". $this->ay_hesapla() ." ". $this->yil_hesapla() ." ". $this->haftanin_gunu() ." ". $this->zaman_hesapla();
// görünümü-> 21 temmuz 1980 pazartesi 21:05
break;

case 1 : return $this->haftanin_gunu() . ", " . $this->gun_hesapla() . " " . $this->ay_hesapla() . " " . $this->yil_hesapla();
// görünümü-> pazartesi, 21 temmuz 1980
break;

case 2 : return ucfirst($this->haftanin_gunu()) . ", " . $this->gun_hesapla() . " " . $this->ay_hesapla() . " " . $this->yil_hesapla();
// görünümü-> Pazartesi, 21 temmuz 1980
break;

case 3 : return strtoupper($this->haftanin_gunu()) . ", " . $this->gun_hesapla() . " " . $this->ay_hesapla() . " " . $this->yil_hesapla();
// görünümü-> PAZARTESİ, 21 temmuz 1980
break;


default: return $this->gun_hesapla()." ".$this->ay_hesapla()." ".$this->yil_hesapla()." ".$this->haftanin_gunu()." ". $this->zaman_hesapla();
// görünümü-> 21 temmuz 1980 pazartesi 21:05
break;


}

}


function gun_hesapla(){

return date("d"); //günü iki basamaklı olarak gösterir. j ise tek basamaklı yazar.
}


function ay_hesapla(){

return $this->aylar[date("n")];//yılın kaçıncı ayı olduğunu yazar
}


function yil_hesapla(){//yılı yazar

return date("Y");
}


function haftanin_gunu(){
$deger=$this->haftaninGunleri[date("w")];//haftanın gününü hesaplar.[ 0-Pazar...6-Cumartesi ]
return $deger;
}


function zaman_hesapla(){

return date("H:i"); //mesela 11:45 i döndürür.
}

}

/************Tarih ve Zaman İşlemleri Sınıfı Sonu****************/
/*.....Bu MaXXSoFT tarafından 28/08/2005-14:29] de yazılmıştır **/
?>
 
Bi kaç ASP Kodu daha :)

Asp de sayfalama yapmak için küçük kod parcası .

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<title>New Page 1</title>
</head>
<body>
<table border="1" width="100%" id="table1">
<font color="#FF00FF">
<%
set data=server.createobject("adodb.connection")
set rst6=server.createobject("adodb.recordset")
data.Open "Provider=SQLOLEDB.1;Password=4671547;Persist Security Info=True;User ID=web;Initial Catalog=TICONA2005;Data Source=ramazan"
rst6.open "select * from TBLSTSABIT order by STOK_KODU ",data,3,3
deste=15
Sayfa=rst6.recordcount/deste
sayi=request("S")
Liste=sayi * deste
if sayi=>2 then
for i= 0 to Liste-15
if i=rst6.recordcount then
exit for
end if
rst6.movenext
next
else
end if
%>

</font>
<font color=#FF3300>
<%
if sayi=1 then
liste=1
end if
%>
<%
for i= liste to liste+Deste%>

<tr>
<td><b><font size="1" face="Tahoma"><%=rst6.fields("STOK_KODU")%>--<%=rst6.fields("STOK_ADI")%></font></b></td>
</tr>
<%
if i=rst6.recordcount then
exit for
end if
rst6.movenext
next
%>
</table>

<table border="1" width="100%">
<tr>
<%for i=1 to Sayfa%><td><a href=index.asp?S=<%=i%>><%=i%></a></td><%next%>
</tr>
</font>
</table>
</body>
</html>
 
Web sitenizde haberlink veya alışveriş veri tabanınızdaki kategorileri sayfanıza yazdırmaya yarayacak kategori örnek kodu

<% @Language=VBScript %>


<%
Set kategori = Server.CreateObject("ADODB.Recordset")
sor = "Select * from kategori ORDER BY id" ' kategori tablomuzu id sırasına göre diziyoruz.
kategori.Open sor,Sur,1,3
toplam_kategori=kategori.recordcount
%>

</tr>
<%
While Not kategori.EOF
%>
<tr>
<td width="100%" height="13" bgcolor="#CCCCCC"><span lang="en">
<font face="Verdana" size="2">
<img border="0" src="images/Lopez2_Bullet2.gif"></font></span><font face="Verdana" size="2">
<a href="kategori.asp?kategori_no=<%=kategori("kategori_no")%>"><%=kategori("kategori_adi")%></a></font></td>
</tr>
<%
If Not kategori.EOF Then
%>
<% kategori.MoveNext
End If
%>
<% Wend %>
 
Domainin kullanımda olup olmadığını sorgulayan kod örneği ..

<%
If request.form("domain")<>"" then
GotothisURL = "http://www." & request.form("domain")

Set GetConnection = CreateObject("Microsoft.XMLHTTP")

GetConnection.Open "get", GotothisURL, False
on error resume next
GetConnection.Send

ResponsePage = GetConnection.getResponseHeader("Date")

if ResponsePage="" then
Response.write("Domain kullanımda değil")
else
Response.write("Domain alınmış(kullanımda)")
end if

Set GetConnection = Nothing

else
%>
<form method=post action=<% =request.servervariables("URL") %>>
<input type=text name=domain size=15 value="domain.com">
<input type=submit value="Find domain name">
</form>
<% end if %>
 
Bu kod ile kolayca veritabanınıza kayıt olan en yeni 10 veriyi sıralatabilirsiniz. .

<%
'Veritabanına bağlanıyoruz.
set conn=server.createobject("adodb.connection")
conn.open= "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath ("db/database.mdb")
'Şimdi Kayıt nesnemizi oluşturuyoruz.
Set rs=server.createobject("adodb.recordset")
'şimdi sql ile sorgu oluşturuyoruz.
sql="select * from tablo where kayit_tarih desc"
'şimdi kayıt nesnemiz olan rs ile tabloyu açtırıyoruz
rs.open sql,conn,1,3
%>
<%
' Şimdi ise sql sorgusu ile aldığımız kayıtların sadece 10 tanesini gösterecek bir döngü yaratıyoruz
for i=1 to 10
%>
<%= rs("kayit_tarih")%> <%= rs("kayit")%>
<% rs.movenext %>
<% next %>
 
Asp ye yeni başlıyanlar! bu kod ile kolayca recordcount alabilirsiniz

<%
' Veritabanına bağlanalım
set kon=server.createobject("addob.connection")
conn.open= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ= " & server.mappath ("db/data.mdb")
set rs=server.createobject("adodb.recordset")
sql = "select * from tablo"
conn.open sq,kon,3,3
%>

'Sonra Recordcount yöntemi ile kayıt sayısını kolayca alıyoruz.
Veritabanındaki tabloda toplam <% rs.recordcount%>kayıt var
 
Jmail, aspmail, cdo, cdonts ve smtpmailserver componenetleri ile mail gönderme hakkında gelişmiş bir kod örneği.

<%
'got from iisworks.com's encoded source :)
'edited by nolovelust
'wap.smslust.net
'smslust.net
'########################
Sub SendMail(SendTo,From,ReplyTo,Subject,Body,Attachments)

MailComponent="cdo"'### Defines which email component to use. Valid values are: "jmail", "aspmail", "cdo" or "cdonts" (Note: cdonts only works with the local server, SMTPMailServer is ignored! CDO has problems on some servers.).
MailServer="localhost"'### SMTP Mailserver to be used to send account information to users.

SenderIp=Request.ServerVariables("HTTP_X_FORWARDED_FOR")'Sender ip



' ### Send mail with jmail
If LCase(MailComponent="jmail") Then
Set Msg = Server.CreateObject( "JMail.Message" )
Msg.ISOEncodeHeaders = false
Msg.AddRecipient SendTo
If ReplyTo<>"" Then Msg.ReplyTo = ReplyTo
Msg.From = From
Msg.Subject = Subject
Msg.Body = Body
If IsArray(Attachments) Then
For i = 0 To Ubound(Attachments)
Msg.AddAttachment Attachments(i)
Next
End If
Msg.AddHeader "Originating-IP", SenderIp
Msg.send(MailServer)
Msg.close
Set Msg=Nothing

' ### Send mail with AspMail
ElseIf LCase(MailComponent="aspmail") Then
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromAddress = From
Mailer.AddRecipient SendTo,SendTo
If ReplyTo<>"" Then Mailer.ReplyTo = ReplyTo
Mailer.Subject = Subject
Mailer.BodyText = Body
If IsArray(Attachments) Then
For i = 0 To Ubound(Attachments)
Mailer.AddAttachment Attachments(i)
Next
End If
Mailer.AddExtraHeader "Originating-IP: " & SenderIp
Mailer.RemoteHost = MailServer
SentOK=Mailer.SendMail
Set Mailer=Nothing

' ### Send mail with Cdonts
ElseIf LCase(MailComponent="cdonts") Then
Set objNewMail = Server.CreateObject("CDONTS.NewMail")
objNewMail.From = From
If ReplyTo<>"" Then objNewMail.Value("Reply-To") = ReplyTo
objNewMail.Value("Originating-IP") = SenderIp
objNewMail.To = SendTo
objNewMail.Subject =Subject
objNewMail.Body = Body
objNewMail.BodyFormat=1
objNewMail.MailFormat=0
If IsArray(Attachments) Then
For i = 0 To Ubound(Attachments)
objNewMail.AttachFile Attachments(i)
Next
End If
objNewMail.Send
Set objNewMail = Nothing

' ### Send mail with Cdo
ElseIf LCase(MailComponent="cdo") Then
Set cdoConfig = Server.CreateObject("CDO.Configuration")
sch = "http://schemas.microsoft.com/cdo/configuration/"
cdoConfig.Fields.Item(sch & "sendusing") = 2
cdoConfig.Fields.Item(sch & "smtpserver") = MailServer
'cdoConfig.Fields.Item(sch & "authenticate") = 2 'Type of authentication, NONE, Basic (Base64 encoded), NTLM
'cdoConfig.Fields.Item(sch & "sendusername") = "username"
'cdoConfig.Fields.Item(sch & "sendpassword") = "parolam"
cdoConfig.Fields.Item(sch & "smtpserverport") = 25
'cdoConfig.Fields.Item(sch & "smtpusessl") = False
cdoConfig.fields.update
Set objNewMail = Server.CreateObject("CDO.Message")
Set objNewMail.Configuration = cdoConfig
objNewMail.From= From
objNewMail.To= SendTo
objNewMail.ReplyTo= ReplyTo
'objNewMail.Cc= SendTo
'objNewMail.Bcc= SendTo
objNewMail.Subject=Subject
objNewMail.TextBody=Body
'objNewMail.HtmBody = "<h1>Thtml</h1>"
'objNewMail.HtmBody = "file://c|/temp/test.htm"
'objNewMail.HtmBody = "http://www.smslust.net"

If IsArray(Attachments) Then
For i = 0 To Ubound(Attachments)
objNewMail.AddAttachment Attachments(i)
Next
End If
objNewMail.Send
Set objNewMail = Nothing
End If
End Sub



SendTo="[email protected]"
From="[email protected]"
ReplyTo="[email protected]"
Subject="Selam"
Body="Test"
SendMail SendTo,From,ReplyTo,Subject,Body,Attachments

%>
 
Üçretli component kullanmadan free upload kodu

<html>
<head>
<title>Resim Yükle</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<LINK href="../images/links.css" rel="stylesheet">
<script language="_JavaScript">
function S_im()
{
var tm=new Image();
var o=document.all;
if (o.statu.value=="ok") {
tm.src=o.upi.src;
window.location="Limage.asp?fn="+o.fn.value+"&w="+tm.width+"&h="+tm.height+"&qstr=<%=Request.ServerVariables("QUERY_STRING")%>";
}
}
</script>
</head>

<body onfiltered='S_im()'>
<%
dim ImageType,Ft_Filename
ImageType=false
' This code is needed to "initialize" the retrieved data
Dim q
q = Chr(34)
' All data
Dim aAllDataB, aAllData, x, aHdr
aAllDataB = Request.BinaryRead(Request.TotalBytes)
' It comes in as unicode, so convert it to ascii
For x = 1 To LenB(aAllDataB)
aAllData = aAllData & Chr(AscB(MidB(aAllDataB, x, 1)))
Next
' The "header" is a unique string generated by the system to indicate
' the beginning and end of file data
aHdr = Left(aAllData, Instr(aAllData,vbCrLf)+1)

'response.write(len(aHdr))

'response.end
%>

<%
' Here's where your code goes.
' In this example, "file1" and "file2" are the field names
' specified within the form of the upload submission page.
' Response.Write "file1: Filename = " & GetFilename("file1") & "<br>"
Response.Write GetFileData("file1") & "<br><br>"

'Response.Write "file2: Filename = " & GetFilename("file2") & "<br>"
Response.Write GetFileData("file2") & "<br><br>"

' Writing out the file data like this only looks okay when
' the uploaded file is some kind of text - images and things
' like that probably just need to be saved or otherwise
' acted upon.
' Response.Write Replace(aAllData,vbCrLf,"<br>")

Dim aFilename
' aFilename equates to the original filename, except saved
' in the root path of the server. The root path must have
' Change rights for the default internet user.
Ft_FileName=GetFileName("file1")
aFilename = Server.MapPath("images/Users") & "/" & Ft_FileName

'response.write("///"&GetFileName("file1")&"///")
Set FSO1 = server.CreateObject("Scripting.FileSystemObject")
if FSO1.FileExists(aFilename) then
Dim tfl
tfl=Ft_Filename
x=instr(tfl,".")
if x>0 then
if userId="" then userId=1
tfl=Mid(tfl,1,x-1)&"_"&Second(time)&"."&Right(tfl,3)
aFilename = Server.MapPath("images/Users") & "/" & tfl
'response.write("000-"&tfl&"-000")
Ft_FileName=tfl
end if
end if
Set FSO1=nothing

Call SaveFile("file1", aFilename)
' aFilename = Server.MapPath("images/Users") & "\" & GetFileName("file2")
'Call SaveFile("file2", aFilename)
%>

<%
' These are functions used to retrieve the data
Function GetFileName(aField)
Dim x2, i
x = Instr(aAllData, aHdr & "Content-Disposition: form-data; name=" &q&aField & q)
x = Instr(x, aAllData, "filename=" & q)
x2 = Instr(x, aAllData, vbCrLf)
For i = x2 To x Step -1
If Mid(aAllData,i,1) = "\" Then
x = i - 9
Exit For
End If
Next
GetFileName = Mid(aAllData, x+10, x2-(x+11))
End Function
Function GetFileData(aField)
Dim x2
'aHdr="-----------------------------7d21db231008c2 "
x = Instr(aAllData, aHdr & "Content-Disposition: form-data; name=" & q &aField & q)
x = Instr(x, aAllData, vbCrLf)
x = Instr(x+1, aAllData, vbCrLf)
x = Instr(x+1, aAllData, vbCrLf) + 2
x2 = Instr(x, aAllData, Left(aHdr,Len(aHdr)-2))
GetFileData = Mid(aAllData, x+2, x2-x-4)
End Function
Function SaveFile(aField1, aFilename)
bh=lcase(aFileName)
if instr(bh,".gif")>0 then ImageType=true
if instr(bh,".jpg")>0 then ImageType=true
if instr(bh,".png")>0 then ImageType=true
if instr(bh,".bmp")>0 then ImageType=true

Dim FSO, TS
Set FSO = server.CreateObject("Scripting.FileSystemObject")
if ImageType then Set TS = FSO.CreateTextFile(aFilename, True, False)
' response.write(afield)
'response.end
on error resume next
if ImageType then TS.Write GetFileData(aField1)
TS.Close
if ImageType then Set TS = Nothing
Set FSO = Nothing


End Function
%><% If not ImageType then %>
<input type="Hidden" name="statu" value="badfile">
<div align="center">
Hatalı Dosya formatı.<br>
<a href="_javascript:window.history.go(-1)">Geri Dön</a>
</div>
<% Else %>
<input type="Hidden" name="statu" value="ok">
<input type="Hidden" name="fn" value="<%=trim(Ft_FileName)%>"> <strong>Lütfen Bekleyiniz...</strong><br>
<IMG name="upi" SRC="images/users/<%=trim(Ft_FileName)%>">
<% End If %>

</body></HTML>
 
bu defa isime yarayan cikti :) saoLasin ;)
 
bu arada başlık asp di girdim bakmaya en sonunda asp ile karşılaştım dostum güsel çalışma,
aslında bi kaynak yapsak iyi olur forumda ayrı başlıklarla pek ilgi görmüyo gibi
 
freemitnick' Alıntı:
bu arada başlık asp di girdim bakmaya en sonunda asp ile karşılaştım dostum güsel çalışma,
aslında bi kaynak yapsak iyi olur forumda ayrı başlıklarla pek ilgi görmüyo gibi
dostum bu bölümde elimden geldiğince kaynak yapmaya çalışıyorum önerin için teşekkürler !
 
güzel iş temiz iş eline sağlık
 
tebrik ederim çok süper bi çalışma
 
Geri
Üst