Kendi sayfamızı nasıl oluştururuz? /index.php?action=sayfa gibi

Started by Elmacik, December 07, 2005, 07:45:59 PM

Previous topic - Next topic

Elmacik

Başlamadan önce küçük bir not; kafalarımız çok karışmasın diye, kendi işlerimiz için ayrı dosyalar yaratacağız.

Birinci yol:
Öncelikle, kullanmak istediğimiz sayfayı temamıza gömmemiz lazım.
Yani, kullanmak istediğimiz sayfa için bir tema dosyası lazım. Atıyorum, bizim sayfamız Radyo sayfası olsun.
O zaman, /Themes/default/ klasöründe,   Radyo.template.php isimli bir dosya oluşturalım.
Sonra içine şunları koyalım:

<?php

function template_main()

{

echo 
'

Radyomuzun kodlarini buraya koyuyoruz.

'
;

/* Yukariya koydugumuz kodlarin içinde tek tirnak isareti ( ' ) varsa, önlerine mutlaka ters bölü ( \ ) koyuyoruz.
Yoksa PHP hatasi aliyoruz - Template Parse Error. */
}

?>


Sonra, /Sources klasöründe Radyo.php diye bir dosya oluşturalım, içine de şunları koyalım:

<?php
function CanliYayin ()
{
 
loadTemplate('Radyo');
}
?>


Sonra, /Themes/default/languages/Who.turkish.php dosyasını açalım, herhangi bir yerine şunu ekleyelim:

$txt['whoall_radyo'] = '<a href="' . $scripturl . '?action=radyo">Radyo</a> dinliyor.';


Sonra, index.php dosyasını açalım (İlk klasördeki) Bunu bulalım:

$actionArray = array(

Hemen altına şunu ekleyelim:

'radyo' => array('Radyo.php', 'CanliYayin'),


Şimdi, radyo sayfasına şu şekilde ulaşabiliriz artık:
www.site.com/forum/index.php?action=radyo
Bu arada radyo sayfasındaki bir kişi, "Kimler Online" listesinde, "Radyo dinliyor" şeklinde görünecektir. ;)

İkinci yol:
action=radyo yerine radyo.php diye ayrı bir dosya mı oluşturmak istiyordunuz? O da olur.
O zaman radyo.php isimli bir dosya oluşturuyoruz. İçine sadece bir kaç satır kod ekleyeceğiz.
Onlar da şunlardır:

<?php

$ssi_layers 
= array('main');
$ssi_theme 'TEMA_NO'// Buraya, radyo sayfasi görüntülenirken kullanilmasini istediginiz temanin sizin sitenizde kurulum sira numarasini yazacaksiniz. Örnegin varsayilan tema için 1 girebilirsiniz.

include("/foruma/giden/tam/dosya/yolu/SSI.php"); // Buraya da forumun dosya yolunu yazin. Yönetim panelindeki Temalar ve Görünüm bilgilerinden forumun dosya yolunu ögrenebilirsiniz.

echo '

Radyomuzun kodlarini buraya koyuyoruz.

'
;

/* Yukariya koydugumuz kodlarin içinde tek tirnak isareti ( ' ) varsa, önlerine mutlaka ters bölü ( \ ) koyuyoruz.
Yoksa PHP hatasi aliyoruz - Template Parse Error. */

ssi_shutdown();

?>



Şimdi artık radyo sayfasına şu şekilde ulaşabiliriz:
www.site.com/forum/radyo.php
Hatta forum ile aynı klasörde olmak zorunda değil bu dosya ;) Mesela;
www.site.com/radyo.php de olabilir.

Yalnız artık kimler online listesinde görünmez radyo dinleyen kişiler.


Not: Yeni dosyalar yaratmadan da, mevcut dosyaları kullanarak bu işi yapabilirdik, ama anlaşılabilir olması için bu yolu seçtim.
Başka bir not: Bu şekilde başka action da oluşturabilirsiniz. Dikkat etmeniz gereken, aynı dosyaları kullanırsanız, ayrı fonksiyon isimleri atamanızdır.
Mesela örneğimizdeki Radyo.php kaynak dosyasını yeniden ikinci bir action için kullanmak isterseniz (ör: action=radyo2, fonksiyon ismi olarak CanliYayin kullanamazsınız. Yoksa PHP hatası alırsınız.
Home of Elmacik

stratovarios

Merhabalar, yukardaki birinci yolu uyguladım forum içine eschat uygulamalı sohbet koymaya çalışıyorum ve kodları applet.

<applet name     ="esChat"
              code     ="esChat.class"
              archive  ="http://siteadresi/esChat.jar"
              codeBase ="http://siteadresi/"
              width    ="800"
              height   ="500">
              <param name="CABBASE" value="http://irc.siteadresi/esChat.cab">
      <PARAM NAME="NICK" VALUE="">
            <PARAM NAME="nickname" VALUE="">
            <PARAM NAME="password" VALUE="">
            <PARAM NAME="Channel1" VALUE="#Sohbet">
<PARAM NAME="Channel2" VALUE="#English">
<PARAM NAME="Channel3" VALUE="#Biliyormusun">
<PARAM NAME="Channel4" VALUE="#Ankara">
<PARAM NAME="Channel5" VALUE="#İstanbul">
<PARAM NAME="Welcome" VALUE="siteadresi SOHBET Odalarina Hoş Geldiniz">
            <PARAM NAME="port" VALUE="7000">
<PARAM NAME="realname" VALUE="http://siteadresi">
<PARAM NAME="ident" VALUE="Hossohbet">
            <PARAM NAME="performCommands" VALUE="JOIN">
            <PARAM NAME="Encoding" VALUE="Cp1254">
            <PARAM NAME="list" VALUE="Tahoma">
            <PARAM NAME="Linkscroll" VALUE="Tahoma">
</applet>


Fakat temanın üst bölümü normal bir şekilde çalışmakta altta şu hata çıkıyor ve bir türlü anlayamadım.

Tema vbturk defaultta da aynı hatayı veriyor.

Fatal error: Call to undefined function: ssi_shutdown() in /home/muzikder/public_html/md/Sources/Load.php(1607) : eval()'d code on line 40



Çözüldü

Şu an bu kodlarla yeni yarattığım sayfa çalışmaktadır. Teşekkürler


Elmacik

Afedersin küçük bir hata yapmışım, yukarıdaki kodları yeniledim, yeniden yapar mısın?
Home of Elmacik

ay_danscisi

Bu sayfaları subdomainlerde kullandığımızda giriş yapılmamış gibi gözüküyor.
Çözüm ?

Elmacik

Yönetim -> Sunucu Ayarları -> Temel Ayarlar -> Bağımsız alan adı içeren çerezleri kullan (global)
Bunu işaretle, kaydet bir de öyle dene.
Home of Elmacik

ay_danscisi


Elmacik

Hmm bilmiyorum. SSI'de bununla ilgili birşeyler daha vardı galiba ama ben bilmiyorum.
Bir ara yine bakarım yapmaya çalşırım
Home of Elmacik

BuR@K

herşeyi yaptım bu hataı aldım 2. yolla yaptım

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home2/ogni55/public_html/forum/moderator.php on line 61

Elmacik

@legend, acaba kodları buraya yapıştırabilir misin?
Hepsini vermek istemezsen 55-65 arası satırları yapıştırabilirsin.
Home of Elmacik

BuR@K

<?php

$ssi_layers 
= array('main');
$ssi_theme 'TEMA_NO'// 1

include("/home2/ogni55/public_html/forum/SSI.php"); // Buraya da forumun dosya yolunu yazin. Yönetim panelindeki Temalar ve Görünüm bilgilerinden forumun dosya yolunu ögrenebilirsiniz.

echo '
<?
$GonderilecekMail = "[email protected]";  // Buraya kendi mail adresinizi giriniz !!!

$SiteAdres = ""; // www.ogniyan.com
?>


















<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>oGNiYaN.CoM | Moderatör Başvuru Formu</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<style>
* {
font-family:Tahoma;
font-size:11px;
color: #000;
}
</style>
</head>

<body>
<?
if( $_POST["gonder"] ) // Formun gonderilip gonderilmedigi kontrol ediliyor
{
## Bilgiler aliniyor ##
$Ad = trim( $_POST["ad"] );
$Soyad = trim( $_POST["soyad"] );
$Email = trim( $_POST["email"] );
$Mesaj = trim( $_POST["mesaj"] );
$IP = $REMOTE_ADDR;
$Tarih = date("d.m.Y");
$Konu = "FormMail Mesaji";

## Bilgiler kontrol ediliyor ##
if( !$Ad || !$Soyad || !$Email || !$Mesaj )
{
echo "<p>Lütfen bütün alanları doldurunuz!<br><br><a href='javascript:history.back()'>« Geri</a></p>";
exit(); }
if( !ereg( "^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$",$Email ) )
{
echo "<p>Geçersiz E-Mail adresi girdiniz. Lütfen doğru bir E-Mail adresi giriniz!<br><br><a href='javascript:history.back()'>« Geri</a></p>";
exit();
}

## Mesaj hazirlaniyor ##
$Mail = "
<html>
<head>
<title>oGNiYaN.CoM | Moderatör Başvuru Formu</title>
<style>
* { font-family:Verdana; font-size:11px; color:#000000; line-height:16px; }
</style>
</head>
<body bgcolor='#FFFFFF'>
<br><br><br>
Sitenizden $Tarih tarihinde $IP ip'si kullanılarak size mesaj gönderildi. Mesajın içeriği aşağıdaki gibidir.<br><br>
Gönderen: <b>$Ad $Soyad</b><br>
E-Mail: <b>$Email</b><br>
Mesaj: <b>". nl2br( htmlspecialchars( $Mesaj ) ) ."</b><br>
</body>
</html>
";

if ( !@mail( $GonderilecekMail,$Konu,$Mail,"MIME-Version:1.0\nContent-Type:text/html;charset=iso-8859-9\nFrom: $Ad $Soyad<$Email>\n" ) ) // Mesaj gonderilirken hata olusursa bildiriliyor
echo "<p><b>Mesaj gönderilirken hata oluştu.</b></p><p>Lütfen tekrar deneyiniz.<br><br><a href='javascript:history.back()'>« Geri</a></p>";
else // Mesaj gonderildi
echo "<p><b>Mesaj başarıyla gönderildi.</b></p><p>Size en kısa zamanda bu konu hakkında bilgi verilecektir.<br><br><a href='http://$SiteAdres'>« Anasayfa</a></p>";
}
else // Form gonderilmemisse ekrana yazdiriliyor
{
?>
<form action="<?=$_SERVER["REQUEST_URI"]?>" method="post" name="formmail" id="formmail">
<table border="0" cellspacing="0" cellpadding="4">
  <tr align="center" valign="middle">
    <th colspan="3">GeCeNiNReNGi.NeT | Moderatör Başvuru Formu </th>
  </tr>
  <tr>
    <td width="100">Adınız</td>
    <td width="3">:</td>
    <td>
      <input name="ad" type="text" id="ad" size="30">
    </td>
  </tr>
  <tr>
    <td>İlgi Alanlarınız</td>
    <td>:</td>
    <td><input name="soyad" type="text" id="soyad" size="30"></td>
  </tr>
  <tr>
    <td>E-Mail</td>
    <td>:</td>
    <td><input name="email" type="text" id="email" size="30"></td>
  </tr>
  <tr>
    <td align="left" valign="top">GeCeNiNReNGi.Net'deki Nickiniz........ :<br>Günlük Açabilceğiniz Konu Sayısı .......:<br>Moderatör  Olmak İsteğiniz Bölüm.......:<br> Eğitim Durumu & Yaş .....................:<br>Yaşadığınız Yer............................ :  </td>
    <td align="left" valign="top"></td>
    <td><textarea name="mesaj" cols="30" rows="5" id="mesaj"></textarea></td>
  </tr>
  <tr>
    <td colspan="3" align="right" valign="middle"><input name="gonder" type="submit" id="gonder" value="G&ouml;nder &gt;&gt;"></td>
  </tr>
</table>
</form>
<?
}
?>
</body>
</html>


';

/* Yukariya koydugumuz kodlarin içinde tek tirnak isareti ( ' ) varsa, önlerine mutlaka ters bölü ( \ ) koyuyoruz.
Yoksa PHP hatasi aliyoruz - Template Parse Error. */

ssi_shutdown();

?>

geceninrenginin adminin verdiği mod.php yi uyarlamaya çalıştım ancak sorun çıktı sanırım html olduğundan galiba  : :o

ay_danscisi

<?php

$ssi_layers 
= array('main');
$ssi_theme 'TEMA_NO'// 1

include("/home2/ogni55/public_html/forum/SSI.php"); // Buraya da forumun dosya yolunu yazin. Yönetim panelindeki Temalar ve Görünüm bilgilerinden forumun dosya yolunu ögrenebilirsiniz.


<?
$GonderilecekMail "[email protected]";  // Buraya kendi mail adresinizi giriniz !!!

$SiteAdres ""// www.ogniyan.com
?>



















<?
if( $_POST["gonder"] ) // Formun gonderilip gonderilmedigi kontrol ediliyor
{
## Bilgiler aliniyor ##
$Ad = trim( $_POST["ad"] );
$Soyad = trim( $_POST["soyad"] );
$Email = trim( $_POST["email"] );
$Mesaj = trim( $_POST["mesaj"] );
$IP = $REMOTE_ADDR;
$Tarih = date("d.m.Y");
$Konu = "FormMail Mesaji";

## Bilgiler kontrol ediliyor ##
if( !$Ad || !$Soyad || !$Email || !$Mesaj )
{
echo "<p>Lütfen bütün alanları doldurunuz!<br><br><a href='javascript:history.back()'>« Geri</a></p>";
exit(); }
if( !ereg( "^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$",$Email ) )
{
echo "<p>Geçersiz E-Mail adresi girdiniz. Lütfen doğru bir E-Mail adresi giriniz!<br><br><a href='javascript:history.back()'>« Geri</a></p>";
exit();
}

## Mesaj hazirlaniyor ##
$Mail = "

<br><br><br>
Sitenizden $Tarih tarihinde $IP ip'si kullanılarak size mesaj gönderildi. Mesajın içeriği aşağıdaki gibidir.<br><br>
Gönderen: <b>$Ad $Soyad</b><br>
E-Mail: <b>$Email</b><br>
Mesaj: <b>". nl2br( htmlspecialchars( $Mesaj ) ) ."</b><br>


";

if ( !@mail( $GonderilecekMail,$Konu,$Mail,"MIME-Version:1.0\nContent-Type:text/html;charset=iso-8859-9\nFrom: $Ad $Soyad<$Email>\n" ) ) // Mesaj gonderilirken hata olusursa bildiriliyor
echo "<p><b>Mesaj gönderilirken hata oluştu.</b></p><p>Lütfen tekrar deneyiniz.<br><br><a href='javascript:history.back()'>« Geri</a></p>";
else // Mesaj gonderildi
echo "<p><b>Mesaj başarıyla gönderildi.</b></p><p>Size en kısa zamanda bu konu hakkında bilgi verilecektir.<br><br><a href='http://$SiteAdres'>« Anasayfa</a></p>";
}
else // Form gonderilmemisse ekrana yazdiriliyor
{
?>

echo '

<form action="<?=$_SERVER["REQUEST_URI"]?>" method="post" name="formmail" id="formmail">


<table border="0" cellspacing="0" cellpadding="4">
  <tr align="center" valign="middle">
    <th colspan="3">GeCeNiNReNGi.NeT | Moderatör Başvuru Formu </th>
  </tr>
  <tr>
    <td width="100">Adınız</td>
    <td width="3">:</td>
    <td>
      <input name="ad" type="text" id="ad" size="30">
    </td>
  </tr>
  <tr>
    <td>İlgi Alanlarınız</td>
    <td>:</td>
    <td><input name="soyad" type="text" id="soyad" size="30"></td>
  </tr>
  <tr>
    <td>E-Mail</td>
    <td>:</td>
    <td><input name="email" type="text" id="email" size="30"></td>
  </tr>
  <tr>
    <td align="left" valign="top">GeCeNiNReNGi.Net'deki Nickiniz........ :<br>Günlük Açabilceğiniz Konu Sayısı .......:<br>Moderatör  Olmak İsteğiniz Bölüm.......:<br> Eğitim Durumu & Yaş .....................:<br>Yaşadığınız Yer............................ :  </td>
    <td align="left" valign="top"></td>
    <td><textarea name="mesaj" cols="30" rows="5" id="mesaj"></textarea></td>
  </tr>
  <tr>
    <td colspan="3" align="right" valign="middle"><input name="gonder" type="submit" id="gonder" value="G&ouml;nder &gt;&gt;"></td>
  </tr>
</table>
</form>


';

<?
}
?>





/* Yukariya koydugumuz kodlarin içinde tek tirnak isareti ( ' ) varsa, önlerine mutlaka ters bölü ( \ ) koyuyoruz.
Yoksa PHP hatasi aliyoruz - Template Parse Error. */

ssi_shutdown();

?>


Bir sürü gereksiz html kodu vardı yahu :P

Şimdi olması lazım.Eğer olmazsa ;

<form action="<?=$_SERVER["REQUEST_URI"]?>" method="post" name="formmail" id="formmail">

Kalın harflerle yazılı olan kısma bu kodları koyduğun sayfanın adresini yaz :P Eğer yine olmazsa , sabah sabah gözümden bir şeyler kaçmış olabilir .

BuR@K


Parse error: syntax error, unexpected '<' in /home2/ogni55/public_html/forum/mod.php on line 9

bu hatayı aldım  :-[

ay_danscisi

O işaretleride kaldıracaktın  :P
<form action="http://www.siten.com/forum/mod.php" method="post" name="formmail" id="formmail">


Elmacik

Yahu iyi ama siz PHP içine PHP koyuyorsunuz. Olmaz tabi :)
Bir de bu mail script benim bildiğim kadarıyla çalışmıyor.

Neyse, sonuçta <?php şeklinde başlamış bir kod, ?> işaretiyle bitmeden önce yeniden <? bu yazılamaz.
Yani doğru sıralama şu şekilde olabilir ancak:

<?php kodlar kodlar kodlar... ?>
<?=Yine kodlar kodlar kodlar?>
HTML kodları olabilir...<?php PHP kodlar kodlar kodlar...?>
HTML kodlar
<?=PHP kodlar..?>


Şu ise yanlış... :

<?php kodlar kodlar...
<? 
yine kodlar..?>

HTML kodlar..
<?=PHP kodlar..
<?php PHP kodlar..?>
Home of Elmacik

turkgenc

Quote from: stradivari on July 05, 2006, 06:57:11 AM
Merhabalar, yukardaki birinci yolu uyguladım forum içine eschat uygulamalı sohbet koymaya çalışıyorum ve kodları applet.

<applet name     ="esChat"
              code     ="esChat.class"
              archive  ="http://siteadresi/esChat.jar"
              codeBase ="http://siteadresi/"
              width    ="800"
              height   ="500">
              <param name="CABBASE" value="http://irc.siteadresi/esChat.cab">
      <PARAM NAME="NICK" VALUE="">
            <PARAM NAME="nickname" VALUE="">
            <PARAM NAME="password" VALUE="">
            <PARAM NAME="Channel1" VALUE="#Sohbet">
<PARAM NAME="Channel2" VALUE="#English">
<PARAM NAME="Channel3" VALUE="#Biliyormusun">
<PARAM NAME="Channel4" VALUE="#Ankara">
<PARAM NAME="Channel5" VALUE="#İstanbul">
<PARAM NAME="Welcome" VALUE="siteadresi SOHBET Odalarina Hoş Geldiniz">
            <PARAM NAME="port" VALUE="7000">
<PARAM NAME="realname" VALUE="http://siteadresi">
<PARAM NAME="ident" VALUE="Hossohbet">
            <PARAM NAME="performCommands" VALUE="JOIN">
            <PARAM NAME="Encoding" VALUE="Cp1254">
            <PARAM NAME="list" VALUE="Tahoma">
            <PARAM NAME="Linkscroll" VALUE="Tahoma">
</applet>


Bunu nasıl siteye Koyabilirizzzzzzzzzz ???????????????

Kafam Karıştı iyice ya üfffffffffff :'(

Siteme Sohbet Ekleyeceğim de Nasıl ekleyeceğimi tam olarak bilmiyorum Yardım edecek arkadaşlardan mesaj bekliyorum..

Ana sayfa - [ Yardım ] - Profil - Arama - Kişisel Mesajlar - Takvim vs. başlıklar var biliyorsunuz

Bunlardan [ Yardım ] Bölümünün ismini [Sohbet] olarak değiştirmek istiyorum.

Bazı sohbet siteleri Kod veriyor : Sitene Sohbet ekle gibi..

Adım Adım anlatabilecek Arkadaslar var mı ? Gülümseme

Şimdiden herkese Teşekkürler...

ay_danscisi

Quote from: Elmacik on July 27, 2006, 01:56:46 AM
Yahu iyi ama siz PHP içine PHP koyuyorsunuz. Olmaz tabi :)
Bir de bu mail script benim bildiğim kadarıyla çalışmıyor.

Neyse, sonuçta <?php şeklinde başlamış bir kod, ?> işaretiyle bitmeden önce yeniden <? bu yazılamaz.
Yani doğru sıralama şu şekilde olabilir ancak:

<?php kodlar kodlar kodlar... ?>
<?=Yine kodlar kodlar kodlar?>
HTML kodları olabilir...<?php PHP kodlar kodlar kodlar...?>
HTML kodlar
<?=PHP kodlar..?>


Şu ise yanlış... :

<?php kodlar kodlar...
<? 
yine kodlar..?>

HTML kodlar..
<?=PHP kodlar..
<?php PHP kodlar..?>

Tabi ya :) Yahu o gün mysqller toptan uçmuştu.3 siteyi tamir ile uğraşıyordum.Bu işlerden sonra buraya göz atarken gözümden kaçırdığım şeye ben bile gülüyorum :D Bu salakça hatayı yaptığım için tüm smf kullanıcılarından özür dilemeyi bir borç olarak görüyorum.

elbeye

ben sayfamı  forum/sayfa.php olarak yaptım giriş yapmadan acınca sorun yok fakat foruma giriş yapıp burayı acınca şöyle bi hata cıkıyor üst tarafta ;

     
Notice: Undefined index: hello_member_ndt in /home/web538/domains/sitemin adı.com/public_html/forum/Sources/Load.php(1607) : eval()'d code on line 290

nasıl düzeltebilirim :(

Arbalot

index.template.php dosyanı ac sunu bul
hello_member_ndt
bununla değiştir
hello_member

eğer bunu yaptıktan sonra yine aynı ise
languages/index.turkish.php dosyana sunu ekle
$txt['hello_member']='Hoşgeldiniz';

ve bize forumda sen son ne değişiklik yaptıgını soyle bizde bu hatanın nedeni ni bilelim.
ve senin problemin buyuk ihtimalle sadece burda değil cunku aynı problemi baska bir sitede daha yaşamıştık ve nerden baksan 10 tane aynı şekilde hata vardı....

elbeye

Quote from: Arbalot on August 04, 2006, 06:41:40 PM
index.template.php dosyanı ac sunu bul
hello_member_ndt
bununla değiştir
hello_member


Bunu yapınca düzeldi.

Şu an görünen bir sorun yok teşekkürler.. :)

Advertisement: