לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 10-06-2008, 11:20
  saare saare אינו מחובר  
 
חבר מתאריך: 26.02.08
הודעות: 18
בעיה מוזרה מאוד..

שלום.
בניתי את הקוד הזה:
קוד PHP:
<?php
if (isset($_COOKIE['userid'], $_COOKIE['userpre']) && $_COOKIE['userpre'] != 'ban' && $_COOKIE['userpre'] != 'user'){
require(
"some_config_file");
if (isset(
$_GET['act']) && trim(strtolower($_GET['act'])) == 'logout'){
setcookie("cp_log","",$ptime-3600,'/','.'.$add_site_a);
cp_header();
?>
<div class="PBlock">
<div class="Head">התנתקות ממערכת האדמין</div>
<div class="Box">
התנתקת בהצלחה. אתה מועבר.
<meta http-equiv="refresh" content="1;url=index.php" />
</div>
</div>
<?php
cp_footer
();
}else{
if (isset(
$_POST['do_cp_log'])){
$passoutq mysql_query("SELECT pass FROM users WHERE user='".$log_name."'");
$passout mysql_fetch_assoc($passoutq);
$passoutf $passout['pass'];
if (
$passoutf != md5(trim($_POST['pass']))){
$msg 'הסיסמא לא תואמת לשם המשתמש.';
}
else {
setcookie('cp_log',$log_name,$ptime+(60*60),'/','.'.$add_site_a) or die("cookie error");
header("Location: adm");
}
}
else {
$msg 'הזן את סיסמתך, '.$log_name.':';
}
cp_header();
?>
<div class="PBlock">
<div class="Head">התחברות למערכת האדמין</div>
<div class="Box">
<form method="post" action="<?php echo $site_add_a?>cp_log.php">
<div style="color: #0078eb; background-color: #d4e59f; width: 100%;">
<?php
echo $msg;
?>
</div>
<input type="password" style="direction: ltr; text-align: left;" name="pass" />
<br />
<input type="submit" name="do_cp_log" value="התחבר!" class="submit" />
</form>
</div>
</div>
<?php
cp_footer
();
}
}
else{
header("Location: index.php");
}
?>

[שימו לב שבREQUIRE יש some_config_file, בקוד המקורי יש ייבוא של קובץ קונפיג עם כל הפונקציות והמשתנים שהשתמשתי בהם ולא מוגדרים כאן]

מסיבה שלא הצלחתי למצוא, העמוד "מדלג" על בלוק ה else שעושה עוגייה ומעביר ל adm.
הוא מציג את ההודעה שהגדרתי אם הטופס לא נשלח.
ה-IF שלפניו עובד מצויין.

אני לא מצאתי את הבעיה.
למישהו יש רעיון?

תודה.

נערך לאחרונה ע"י saare בתאריך 10-06-2008 בשעה 11:22.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 10-06-2008, 15:10
  saare saare אינו מחובר  
 
חבר מתאריך: 26.02.08
הודעות: 18
בתגובה להודעה מספר 1 שנכתבה על ידי saare שמתחילה ב "בעיה מוזרה מאוד.."

שיניתי את הקוד מעט, זייחתי והוספתי הערות, וזה עדיין לא עובד:
קוד PHP:
<?php
//if can be here: Start
if (isset($_COOKIE['userid'], $_COOKIE['userpre']) && $_COOKIE['userpre'] != 'ban' && $_COOKIE['userpre'] != 'user')
{
//config file
require("adm/adm_con.php");
//are we loging out?
if (isset($_GET['act']) && trim(strtolower($_GET['act'])) == 'logout')
{
setcookie("cp_log","",$ptime-3600,'/','.'.$add_site_a);
cp_header();
?>
<div class="PBlock">
<div class="Head">התנתקות ממערכת האדמין</div>
<div class="Box">
התנתקת בהצלחה. אתה מועבר.
<meta http-equiv="refresh" content="1;url=index.php" />
</div>
</div>
<?php
cp_footer
();
}
//else, is the fotm submitted?
elseif (isset($_POST['do_cp_log']))
{
//get the real password out
$passoutq mysql_query("SELECT pass FROM users WHERE user='".$log_name."'");
$passout mysql_fetch_assoc($passoutq);
$passoutf $passout['pass'];
//if the password isnt correct
if ($passoutf != md5(trim($_POST['pass'])))
{
$msg 'הסיסמא לא תואמת לשם המשתמש.';
}
//else, cookie and redirect
else
{
setcookie('cp_log',$log_name,$ptime+(60*60),'/','.'.$add_site_a) or die("cookie error");
header("Location: adm");
exit;
}
}
else
{
$msg 'הזן את סיסמתך, '.$log_name.':';
}
cp_header();
?>
<div class="PBlock">
<div class="Head">התחברות למערכת האדמין</div>
<div class="Box">
<form method="post" action="<?php echo $site_add_a?>cp_log.php">
<div style="color: #0078eb; background-color: #d4e59f; width: 100%;">
<?php
echo $msg;
?>
</div>
<input type="password" style="direction: ltr; text-align: left;" name="pass" />
<br />
<input type="submit" name="do_cp_log" value="התחבר!" class="submit" />
</form>
</div>
</div>
<?php
cp_footer
();
//can be here: End
}
else
{
header("Location: index.php");
}
?>

טוב הזיוח פה קצת נהרס אבל זה לא חשוב..
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 11-06-2008, 00:38
  emanuel emanuel אינו מחובר  
 
חבר מתאריך: 11.02.05
הודעות: 569
שלח הודעה דרך ICQ אל emanuel
היי סער... מכיר אותי נכון ?
בתגובה להודעה מספר 1 שנכתבה על ידי saare שמתחילה ב "בעיה מוזרה מאוד.."

אני מניח שכן ...
אז דבר ראשון :S
דבר שני :
קוד PHP:
 $passoutq mysql_query("SELECT pass FROM users WHERE user='".$log_name."'");
$passout mysql_fetch_assoc($passoutq);
$passoutf $passout['pass'];
//if the password isnt correct
if ($passoutf != md5(trim($_POST['pass'])))
{
$msg 'הסיסמא לא תואמת לשם המשתמש.';


מה קשה בשאילתא על בסיס כזה : :S
קוד:
SELECT 1 FROM users WHERE user='$log_name' and pass='$pass';

כמובן להריץ לזה OR DIE
אחרי זה לעבוד לפי מספר תוצאות שזה MYSQL_NUM_ROWS
עכשיו יש כמה פונקציות שמחזירות FALSE אז תעשה משפט IF קצר עם === שזה השוואה עם ערך + סוג...
נ.ב למה שאלת פה :S ?

בקוד הראשון בכלל השתמשת בREQUIRE לקובץ בלי סיומת שזה מוזר :S
דבר שני אתה קורא לפונקציות שכאן בקוד לא רואים...
דבר שלישי ...
ברח לי מהראש ... אה תעשה ERROR _ REPORTING שיציג גם WARNING שיציג הכל קיצר ^^
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 11-06-2008, 13:43
  saare saare אינו מחובר  
 
חבר מתאריך: 26.02.08
הודעות: 18
בתגובה להודעה מספר 3 שנכתבה על ידי emanuel שמתחילה ב "היי סער... מכיר אותי נכון ?"

אני מעדיף לעשות שאילתא כמו שעשיתי, לא יודע למה פשוט מעדיף..
ועמנואל, אתה לא קורא עד הסוף :S
ציטוט:
[שימו לב שבREQUIRE יש some_config_file, בקוד המקורי יש ייבוא של קובץ קונפיג עם כל הפונקציות והמשתנים שהשתמשתי בהם ולא מוגדרים כאן]

אם זה כ"כ חשוב, הנה הקוד של הקובץ קונפיג[עובד]:
קוד PHP:
<?php
$con 
mysql_connect("localhost""***""***");
mysql_select_db("***"$con); 
$log_nameq mysql_query("SELECT user FROM users WHERE id='".$_COOKIE['userid']."'");
$log_name mysql_fetch_assoc($log_nameq);
$log_name $log_name['user'];
$ptime time()+(60*60*7)+(60*1);
$site_add_a = ((substr($_SERVER['SERVER_NAME'],0,4) == 'www.') ? 'http://'.substr($_SERVER['SERVER_NAME'],4).'/' 'http://'.$_SERVER['SERVER_NAME'].'/');
$site_add_b = ((substr($_SERVER['SERVER_NAME'],0,4) == 'www.') ? 'http://'.substr($_SERVER['SERVER_NAME'],4).'/adm/' 'http://'.$_SERVER['SERVER_NAME'].'/adm/');
function 
main_page(){
global 
$site_add_a;
global 
$site_add_b;
echo <<<HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="he" xml:lang="he" dir="rtl">
<head>
<title>אדמין</title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1255" />
<meta http-equiv="content-language" content="he" />
<link href="
{$site_add_b}css.css" rel="stylesheet" type="text/css" />
<meta http-equiv="cache-control" content="no-store, no-cache, must-revalidate" />
<meta http-equiv="cache-control" content="post-check=0, pre-check=0" />
<meta http-equiv="Pragma" content="no-cache" />
</head>
<frameset cols="*, 185" frameborder="0" border="0" framespacing="0">
<frame name="body" scrolling="auto" src="
{$site_add_b}enter.php">
<frame name="menu" scrolling="auto" src="
{$site_add_b}menu.php">
</frameset>
</html>
HTML;
}
//=============================================
function cp_header(){
global 
$site_add_a;
global 
$site_add_b;
echo <<<HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="he" xml:lang="he" dir="rtl">
<head>
<title>אדמין</title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1255" />
<meta http-equiv="content-language" content="he" />
<link href="
{$site_add_b}css.css" rel="stylesheet" type="text/css" />
<meta http-equiv="cache-control" content="no-store, no-cache, must-revalidate" />
<meta http-equiv="cache-control" content="post-check=0, pre-check=0" />
<meta http-equiv="Pragma" content="no-cache" />
</head>
<body>
HTML;
}
function 
cp_footer(){
echo <<<HTML
</body>
</html>
HTML;
}
//=============================================
function no_pre(){
global 
$site_add_a;
global 
$site_add_b;
echo <<<HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="he" xml:lang="he" dir="rtl">
<head>
<title>אדמין</title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1255" />
<meta http-equiv="content-language" content="he" />
<link href="
{$site_add_b}css.css" rel="stylesheet" type="text/css" />
<meta http-equiv="cache-control" content="no-store, no-cache, must-revalidate" />
<meta http-equiv="cache-control" content="post-check=0, pre-check=0" />
<meta http-equiv="Pragma" content="no-cache" />
<script type="text/javascript">
if (top != self) {    
    top.location = self.location;    

</script>
</head>
<body>
<div class="no">
HTML;
if (!isset(
$_COOKIE['userid'], $_COOKIE['userpre']) || !isset($_COOKIE['cp_log'])){
echo 
'אינך מחובר.<br />
<a href="'
.$site_add_a.'club/login.php">התחבר למערכת</a> || <a href="'.$site_add_a.'cp_log.php">התחבר לפאנל</a>';
}
else {
echo 
'אינך מורשה להיכנס לעמוד זה.<br />
במידה ואתה סבור שאמורה להיות לך הרשאה להיכנס לעמוד זה,<a href="'
.$site_add_a.'pages/contact.php">צור קשר עם בעל האתר</a>.';
}
echo <<<HTML
</div>
</body>
</html>
HTML;
}
?>

ניסיתי גם error_reporting וגם ini_set ולא הוצגה לי אף שגיאה..
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 12-06-2008, 13:33
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
הנה הקוד עם הזיווח:
בתגובה להודעה מספר 1 שנכתבה על ידי saare שמתחילה ב "בעיה מוזרה מאוד.."

https://2008-uploaded.fresh.co.il/2...12/49285649.txt

עכשיו, לענייננו:

כדי לבדוק אם באמת קוד ה-PHP "מדלג" על בלוק ה-ELSE איפה שיוצרים את ה-CKI ( יענו עוגיה ), כתוב שם פקודת echo (לפני הקוד הנ"ל) שתוציא טקסט בולט. נסה גם אולי לבטל את הקוד של ה-CKI ושל ה-Header כאשר אתה נעזר ב-ECHO.

דבר נוסף שחשוב הוא שאי אפשר לשלוח כותרים (שליחת עוגיה וקביעת location חדש לעמוד, נכללים בקטגוריית הכותרים) אם הוצאת לפני כן פלט לדפדפן.
אולי מבחינתך לא הוצאת פלט, אבל בצורה מוסתרת נפלט אוטומטית פלט לדפדפן, עוד לפני שקוד ה-PHP שלך מעובד. לפלט הזה קוראים BOM, בצע עליו חיפוש בפורום.
הפיתרון של הסרת ה-BOM הוא לשמור את הקובץ (וכל שאר הקבצים שמגיעים לקובץ דרך include או require) באמצעות תוכנה (ממליץ על ++Notepad) שמסירה את ה-BOM. את חתימת ה-BOM תמצא בדר"כ בקבצים השמורים בקידוד UTF-8.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #13  
ישן 12-06-2008, 17:45
  saare saare אינו מחובר  
 
חבר מתאריך: 26.02.08
הודעות: 18
בתגובה להודעה מספר 12 שנכתבה על ידי DCD שמתחילה ב "טוב אז לצערי אני מודיע שאין..."

באמת תודה רבה שניסית לעזור, אבל איכשהו הסתדרתי, הנה הקוד החדש:
קוד PHP:
<?php
ini_set
('display_errors''On');
error_reporting(E_ALL);
ini_set('error_reporting'E_ALL);
//if can be here: Start
if (isset($_COOKIE['userid'], $_COOKIE['userpre']) && $_COOKIE['userpre'] != 'ban' && $_COOKIE['userpre'] != 'user')
{
 
//config file
 
require("adm/adm_con.php");
 
//are we loging out?
 
if (isset($_GET['act']) && trim(strtolower($_GET['act'])) == 'logout')
 {
  
setcookie("cp_log","",$ptime-3600,'/');
  
cp_header();
  
?>
  <div class="PBlock">
  <div class="Head">התנתקות ממערכת האדמין</div>
  <div class="Box">
  התנתקת בהצלחה. אתה מועבר.
<script type="text/javascript">
if (top != self) {    
    top.location = self.location;    
}  
</script>
  <meta http-equiv="refresh" content="1;url=index.php" />
  </div>
  </div>
  <?php
  cp_footer
();
  exit;
 }
 
//else, is the fotm submitted?
 
elseif (isset($_POST['do_cp_log']))
 {
  
//get the real password out
  
$passoutq mysql_query("SELECT pass FROM users WHERE user='".$log_name."'");
  
$passout mysql_fetch_assoc($passoutq);
  
$passoutf $passout['pass'];
  
//if the password isnt correct
  
if ($passoutf != md5(trim($_POST['pass'])))
  {
   
$msg 'הסיסמא לא תואמת לשם המשתמש.';
  }
  
//else, cookie and redirect
  
else
  {
   if (
$passoutf == md5(trim($_POST['pass']))){
/*
echo '<pre>';
var_dump($_POST);
echo '</pre>';
$msg = 'good';
*/
    
setcookie('cp_log',$log_name,$ptime+(60*60*24),'/') or die("cookie error");
    
header("Location: adm/index.php");
    exit;
   }
  }
 }
 else
 {
  
$msg 'הזן את סיסמתך, '.$log_name.':';
 }
 
cp_header();
 
?>
 <div class="PBlock">
 <div class="Head">התחברות למערכת האדמין</div>
 <div class="Box">
 <form method="post" action="<?php echo $site_add_a?>cp_log.php">
 <div style="color: #0078eb; background-color: #d4e59f; width: 100%;">
 <?php
 
echo $msg;
 
?>
 </div>
 <input type="password" style="direction: ltr; text-align: left;" name="pass" />
 <br />
 <input type="submit" name="do_cp_log" value="התחבר!" class="submit" />
 </form>
 </div>
 </div>
 <?php
 cp_footer
();
//can be here: End
}
else
{
header("Location: index.php");
}
?>
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 23:25

הדף נוצר ב 0.05 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר