Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Admin Girisi Sorun

A

Aristograt

Misafir
merhaba arkadaslar admine bir türlü giris yapamiyorum dosya sekillerini altda vericem sizlere acaba ne gibi bir yanislik var


tablosu

-----------------------
# Table structure for table `drinksadmin`
#

CREATE TABLE `drinksadmin` (
`username` varchar(20) NOT lisanssız default '0',
`password` varchar(20) default lisanssız,
PRIMARY KEY (`username`)
) TYPE=MyISAM;

#
# Dumping data for table `drinksadmin`
#

INSERT INTO `drinksadmin` (`username`, `password`) VALUES ('admin','admin');
# --------------------------------------------------------



connection.php

<?
$dbServer="localhost";
$dbuserName="root";
$dbpassword="sifre";
$dbName="root";
$con=mysql_connect ($dbServer, $dbuserName, $dbpassword) or die ('Cannot connect to the database.');
$db=mysql_select_db ($dbName);
session_start();
?>


login dosyasi



<?
include("connection.php");
$username=trim($username);
$password=trim($lpassword);
if($username=="" || $password =="")
{
header("Location: index.php?error=wu");
exit;
}
$sql="select password from drinksadmin where username='$username'";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result))
{
$dbpass=$row[0];
}
if($dbpass==$password)
{
session_start();
$admin_username=$username;
session_register("admin_username");
}
else
{
header("Location: index.php?error=wu");
exit;
}
?>



admin ana sayfa


<?
include("login.php");
?>
<html>

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

<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<link rel="stylesheet" href="stylesheet.css" type="text/css">

<title>Control Panel</title>
<script language="JavaScript">
<!--
function checkifvalid(){
if (window.document.myform.username.value=="")
{
alert("Kindly enter your user name!");
window.document.myform.username.focus();
return false;
}
if (window.document.myform.lpassword.value=="")
{
alert("Kindly enter your password!");
window.document.myform.lpassword.focus();
return false;
}

return true;
}
</script>
</head>
<script language="JavaScript">
<?php
if(isset($error))
{
if($error=="wu")print("alert('Invalid Username and password!');");
if($error=="lo")print("alert('Your session has expired!');");
}
?>
</script>
</head>
 

Raiden

0
Onaylı Üye
Üye
Katılım
13 Ocak 2005
Mesajlar
339
Açılan Konu
23
Tepki puanı
0
hosting serverinde REGISTER_GLOBALS Kapalı Olmayabilir Bu Durum da

$username ve $password yerine $_POST['username'] ve $_POST['password'] kullanmalısın
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36
$username=trim($username);
$password=trim($lpassword);

$username=trim($_POST[username]);
$password=trim($_POST[lpassword]);

-

not: posttan gelen değişken Lpassword olarak girilmiş, orada l olduğundan emin olun..
 
A

Aristograt

Misafir
atay dostum


$username=trim($_POST[username]);
$password=trim($_POST[lpassword]);

bu sekilde degistigim zaman login.php yi ana index e girdim fakat ordan menulere bastigimda tekrar sifre isdiyor
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36
menulere bastığında gittiğin sayfaların kodlarından oturum kontrolunu yapan bölümleri yazar mısın inceliyeyim.
 
A

Aristograt

Misafir
addcategory.php mesela bu


<?
include("connection.php");
include("checksession.php");
include("functions.php");
if(isset($groupname))
{
$sql="insert into recipescategory(catname) values('$groupname')";
$res=mysql_query($sql);
$uniqid=mysql_insert_id();
$msg="lo";
}
?>
<html>

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

<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<link rel="stylesheet" href="stylesheet.css" type="text/css">

<title>Control Panel</title>
<!-- European format dd-mm-yyyy -->
<script language="JavaScript" src="calendar1.js"></script><!-- Date only with year scrolling -->
<!-- American format mm/dd/yyyy -->
<script language="JavaScript" src="calendar2.js"></script><!-- Date only with year scrolling -->

<script language="JavaScript">
<!--
function checkifvalid(){
if (window.document.myform.groupname.value=="")
{
alert("Kindly enter the Category Name!");
window.document.myform.groupname.focus();
return false;
}
return true;
}
</script>
</head>
<script language="JavaScript">
<?php
if(isset($msg))
{
if($msg=="lo")print("alert('Category Added!');");
}
?>
</script>
 
A

Aristograt

Misafir
editsetting.php dosyasida bu


<?
include("connection.php");
include("checksession.php");
include("functions.php");
if(isset($adminemail))
{
saveSetting("URLDOMAIN",$domain);
saveSetting("EXTRATOKEN_FIELD1",$extratokenfield);
saveSetting("ADMINEMAIL",$adminemail);
saveSetting("MODERATOREMAIL",$moderatoremail);
if($autosignup=="")$autosignup="Y";
saveSetting("AUTOSIGNUP",$autosignup);
if($approvecom=="")$approvecom="N";
saveSetting("APPROVECOMMENTS",$approvecom);
if(is_numeric($toprated))saveSetting("TOPRATEDSIZE",$toprated);
if(is_numeric($seresults))saveSetting("SEARCHRESULTSIZE",$seresults);
saveSetting("RATINGSIMAGE",$ratingsimage);
saveSetting("EXTRARECIPEFIELD",$extrarecipefield);
}
$domain=getSetting("URLDOMAIN");
$adminemail=getSetting("ADMINEMAIL");
$moderatoremail=getSetting("MODERATOREMAIL");
$autosignup=getSetting("AUTOSIGNUP");
$approvecom=getSetting("APPROVECOMMENTS");
$toprated=getSetting("TOPRATEDSIZE");
$seresults=getSetting("SEARCHRESULTSIZE");
$ratingsimage=getSetting("RATINGSIMAGE");
$extrarecipefield=getSetting("EXTRARECIPEFIELD");
$extratokenfield=getSetting("EXTRATOKEN_FIELD1");

?>
<html>

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

<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<link rel="stylesheet" href="stylesheet.css" type="text/css">
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36
checksession.php yi past eder misin
 
A

Aristograt

Misafir
<?
session_start();
if(!$admin_username){
header("location:index.php?error=lo");
}
?>
 
A

Aristograt

Misafir
funcistion da bu


<?
$urldomain=getSetting("URLDOMAIN");
function sendHTMLmail($fromid,$to,$subject,$message)
{
$headers = "From: $fromid\n";
$headers .= "Reply-To: $fromid\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\n";
$headers .= "Content-Transfer-Encoding: 8bit;\n\n";
$headers .= stripslashes($message);
$headers .= "\n";
@mail("$to", "$subject", "", "$headers");
}
function getSetting($val)
{
$sql="select * from recipesettings where setting='$val'";

$res=mysql_query($sql);
while($obj=mysql_fetch_object($res))
{
return $obj->settingvalue;
}
}
function getTemplate($val)
{
$sql="select * from recipesemailtemplates where usedfor='$val'";

$res=mysql_query($sql);
while($obj=mysql_fetch_object($res))
{
return $obj->template;
}
}
function saveSetting($key,$val)
{
$sql="update recipesettings set settingvalue='$val' where setting='$key'";
$res=mysql_query($sql);
}
function saveTemplate($key,$val)
{
$sql="update recipesemailtemplates set template='$val' where usedfor='$key'";
$res=mysql_query($sql);
}

function getRatings($id)
{
$sql1="select * from recipesratings where recipeid=$id";
$result1=mysql_query($sql1);
if(!mysql_num_rows($result1))
{
$rating="Not rated yet";
$textrating="Not rated yet";
}
else
{
$sql1="select * from recipesratings where recipeid=$id";
$result1=mysql_query($sql1);
while($obj=mysql_fetch_object($result1))
{
$pos=$obj->avgrating;
$textrating="$obj->avgrating from $obj->numvotes votes";
$imrating="Rated $obj->avgrating from $obj->numvotes votes";
}

$rating="";
for($i=0;$i<floor($pos);$i++)
$rating=$rating."<img alt='$imrating' src='../images/starp.gif'>";
$numleft=5-$i;
if(($pos-$i)>=0.5)
{
$numleft=$numleft-1;
$rating=$rating."<img alt='$imrating' src='../images/starm.gif'>";
}
for($i=0;$i<$numleft;$i++)
$rating=$rating."<img alt='$imrating' src='../images/starn.gif'>";
}
if(getSetting("RATINGSIMAGE")=="Y")return $rating;else return $textrating;
}
?>
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36
<?
session_start();
if(!$admin_username){
header("location:index.php?error=lo");
}
?>

<?
session_start();
if (!session_is_registered("admin_username")){
header("location:index.php?error=lo");
}
?>
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36
script register globalsin kapalı olduğu serverlar için yazılmış. scriptin içinde ki tüm get, post ve session alımlarının kodlarının değiştirilmesi lazım veya serverdaki register globals ayarının değişmesi lazım.

yukarıdaki kodla yönetim paneline giriş sorununu çözersiniz fakat scriptin genelinde bol bol sorun yaşayabilirsiniz.
 
A

Aristograt

Misafir
atay ustacim ellerine saglik Allah razi Olsun hepinizden Raiden sendende Allah Razi Olsun dostum Hepinize Cok minnettarim
 

Angelo

0
Onaylı Üye
Üye
Katılım
13 Aralık 2004
Mesajlar
9,603
Açılan Konu
164
Tepki puanı
106
Konum
AZ
session,post ve get gibi globalleri, $_SESSION, $_POST, $_GET şeklinde kullanın.
$degisken, session_register, if ($degisken) gibi yazmaya başlarsanız bugün çalışsa bile yarın server değiştiğinde baş ağrıtır.
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36
session_is_registered ne gibi server konfigürasyonlarında sorun çıkartabiliyor?
 

Loi

0
Onaylı Üye
Üye
Katılım
13 Kasım 2006
Mesajlar
6,192
Açılan Konu
145
Tepki puanı
44
Konum
localhost
session_is_registered ne gibi server konfigürasyonlarında sorun çıkartabiliyor?

Konfigurasyonda sorun çıkarmıyor, PHP.ini icindeki ayarlarda degisiklikler(ornek register_globals) POST ve GET ile alinan verilerin degiskene tanimlanamamasina neden olabiliyor bu nedenle;

if($degisken) yerine, data post edilyiorsa if ($_POST['degisken']) seklinde kullaniniz diyor ve katiliyorum dogru soyluyor. Bu sekilde kullanin boyle aliskanlik edinin..

session_is_registered mevzusu ise yine php.inideki ayarlardaki degisikliklerde session_is_registered sonucunu duzgun vermeyebilecegi icin soylenmis olabilir.
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36
evet, bunu biliyorum. zaten konuyu açan arkadaşın sorunuda bu. bu sebeple, $degisken yerine $_POST[degisken] kullandırdım.

session için, register globalsin açık olduğu serverlarda $_SESSION kullanılabildiği gibi session_is_registered'de kullanılabiliyor. nitekim ben hep böyle kullanırım.

session_is_registered, hangi server konfigürasyonunda sorun çıkartıyormuş onu merak etitm, bileyimde ona göre davranayım :) register globals ile bir sorun yaratmıyor çünkü.

edit: editlediğin için bende mesajımı editlemek zorunda kaldım :) işte sorduğum "yine php.inideki ayarlardaki degisikliklerde" o değişklik neymiş onu merak ettim.
 

Angelo

0
Onaylı Üye
Üye
Katılım
13 Aralık 2004
Mesajlar
9,603
Açılan Konu
164
Tepki puanı
106
Konum
AZ
Doğru session atama yöntemi artık, 4.bilmemkaçıncı versiyondan sonra,
$_SESSION['anahtar'] = 'deger';

Doğru check yöntemi de
isset($_SESSION['anahtar']) veyahut ($_SESSION['anahtar'] != '')

$_SESSION globalinin kullanıldığı yerlerde bu şekilde kontrol edilmesi öneriliyor (veya gerekli tam bilmiyorum) session_is_registered() kullanmayın deniyor PHP Manual'da. Mevcut durumda ne gibi sonuçlar veriyor bilmiyorum, ben hiç kullanmadım o fonksiyonu. ilerisi için söyledim.

http://us3.php.net/session_is_registered


Bir başka nokta da
session_register() çağrısı yapıldığında, session başlamamışsa bile otomatik olarak başlatılıyor. Ancak $_SESSION şeklinde kullanım için bu söz konusu değil. O yüzden session_start() çağırılması gerekiyor. session_register şeklinde alışanlara gelecekte o da sorun çıkartabilir.
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36
Caution

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister().

$_SESSION kullanıyorsanız, session_register kullanmayın diyor. yani ikisini aynı anda.

edit: ki login sayfasında session_register ile cookie yaratılmış. bu script için kontrolu session_is_registered ile yapmak en mantıklısı gibi duruyor.
 
Üst