Merhaba Arkadaşlar,Başlıkta belirttiğim gibi ilgili script
çekiliş vb işlerde kullanılabilir. İçerik:
1) Random PHP İçerisinde
3 adet özel tanımlı fonksiyon bulunmaktadır.
-temiz_sql();-filitre();Bu ikisi görev olarak birleştirilmiş fonksiyonlardır. PHP nin son sürümlerinde
mysql_real_escape_string kullanımı için mysql oturumunun başlaması gerekmektedir. Bu sebepten ötürü şayet sayfanızda
mysql oturumu yoksa muhtemelen hata alacaksınız. Şayet mysql oturumu yoksa ve
hata alıyorsanızBulunuz:
function filitre ($x)
{
return mysql_real_escape_string(temiz_sql(trim(htmlspecialchars(strip_tags($x)))));
}
Değiştiriniz:
function filitre ($x)
{
return temiz_sql(trim(htmlspecialchars(strip_tags($x))));
}
-random();Asıl çekilişin yapıldığı fonksiyondur.
$returnvalues dizisi global olarak tanımlanmıştır. Şayet fonksiyon başka türlü bir scriptte kullanılırsa çekilişte dönen değerler
$returnvalues dizisine kayıtlıdır.
2) Exec PHPFonksiyonun çalıştırıldığı sayfadır.Post.php de scripti yazarken textarea ismine name[] verdik. Bu sebepten dolayı exec php de
random("name"); şeklinde kullanım yaptık.
3) Post PHP2 Aşamadan oluşmaktadır:
İlk aşamada kaç adet seçenek oluşturulacağı ve sonuçların nasıl kaçlı gruplandırılacağı belirlenmektedir. Misal ,seçenekleriniz sırasıyla x y z t ile ise, grup değerine 2; seçenek değerine 4 girerseniz:
y x
t z
gibi bir sonuç döndürecektir. 1 girseydiniz alt altta 4 farklı değer dönecekti.
İkinci aşamada ise adetini girdiğiniz seçeneklerin neler oluduğunu tayin edersiniz.
random.php
<?php
/*
Author= HOSTINGSITENIZ.NET NETWORK SERVICE
System= MIXER
$returnvalues gives new values
*/
function temiz_sql($sql)
{
return preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|--|\\\\)/"),"",$sql);
}
function filitre ($x)
{
return mysql_real_escape_string(temiz_sql(trim(htmlspecialchars(strip_tags($x)))));
}
function random ($textboxname)
{
global
$returnvalues;
$sayi=count($_POST[$textboxname]);
$sifir=0;
while($sifir<$sayi)
{
$values[$sifir]=filitre($_POST[$textboxname][$sifir]);
$sifir++;
}
$count=count($values);
$temel=0;
while($temel<$count){
$ncount=count($values);
$x=rand();
$arrayid=$x%$ncount;
$returnvalues[$temel]=$values[$arrayid]; // New Values
$values[$arrayid]="";
$basic=0;
$ncountum=$ncount-1;
while($basic<$ncount)
{
if($values[$basic]!="")
{
$yenidizi=$yenidizi.$values[$basic]."[-HSNET-]";
}
$basic++;
}
$yenidizi= preg_replace("@\[-HSNET-\]$@","",$yenidizi);
$values=explode("[-HSNET-]",$yenidizi);
unset($yenidizi);
$temel++;
}
}
?>
Exec.php
<?php
require_once("random.php");
random("name");
if(!is_numeric($_POST["grupla"])){die("ACCESS DENIED");}
$grup=trim(htmlspecialchars(strip_tags($_POST["grupla"])));
$sayi=count($returnvalues);
$sayi=ceil($sayi/$grup);
$point=0;
echo '<table border="0" cellspacing="0" cellpadding="0" >';
while($point<$sayi)
{
$play=0;
$renks=$point%2;
if($renks==0){$renk="#EEEEEE";}
if($renks==1){$renk="#FFFFFF";}
echo ' <tr align="center" bgcolor="'.$renk.'">';
while($play<$grup)
{
$x=$point*$grup;
$x=$x+$play;
echo "<td style=\"padding:15px;\">".$returnvalues[$x]."</td>";
$play++;
}
echo "</tr>";
$point++;
}
echo'</table>';
?>
Post.php
<?php
echo'<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
$adet= htmlspecialchars(strip_tags($_POST["adet"]));
if(!is_numeric($_POST["adet"])){unset($_POST["adet"]);}
if($adet!=""){$screen=2;} if($adet==""){$screen=1;}
if($screen==1){?>
<form id="form1" name="form1" method="post" action="post.php">
<p>Adet
<input name="adet" type="text" id="adet" size="10" />
</p>
<p>Grup
<input name="grupla" type="text" id="grupla" size="10" />
</p>
<p>
<input type="submit" name="button2" id="button2" value="Oluştur" />
</p>
</form>
<?php } ?>
<?php if($screen==2){
echo'<form id="form1" name="form1" method="post" action="exec.php">';
$sayi=0;
while($sayi<$adet){
echo' <label>
<input type="text" name="name[]" id="name[]" />
</label>
<p>
';
$sayi++;
}
echo'<label>
<input type="hidden" name="grupla" id="button" value="'.$_POST["grupla"].'" />
<input type="submit" name="button" id="button" value="Gönder" />
</label></form>';} ?>
Not 1) Kaynak kodları verilen dosyalar hazır halde ektedir.
Not 2) Kaynak gösterilerek alıntı yapılabilir.
Saygılarımla...
Abdullah ÇINAR