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

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



  #1  
ישן 30-08-2008, 18:25
  טל שמאי טל שמאי אינו מחובר  
 
חבר מתאריך: 26.08.03
הודעות: 46
שאלה עזרה - התחברות למערכת תגובות

יש לי באתר מערכת תגובות דרושת הרשמה. עד לפני כמה חודשים (המעבר לשרת חדש) הכל עבד טוב ויפה, אבל מרגע שעברתי לשרת חדש אי-אפשר להתחבר על-מנת לכתוב תגובות. כלומר כאשר כותבים שם וסיסמא נכונים, אכן מקבלים הודעה שההתחברות בוצעה בהצלחה (כנ"ל להיפך), אבל למעשה אין שום התחברות ואני חוזר למסך של השם והסיסמא (כלומר - לא באמת מתבצעת התחברות למערכת התגובות). לא עשיתי שום שינויים בקבצים בעת המעבר לשרת החדש.
מה יכולה להיות הבעיה?
(אם אתם זקוקים למידע נוסף על-מנת לעזור לי, אשמח אם תציינו איזה)


מצ"ב קוד של טופס ה-login:






<?php
include "dbc.php";
function checkChars($text){
$ok = true;
$illegal = "/[^ א-תa-zA-Z0-9_]/";
if (preg_match($illegal, $text)){
$ok = false;
}
return $ok;
}
if (isset($_POST['login'])){
$err = 0;
if(checkChars($_POST['username'])){
$q = "SELECT * FROM users WHERE username = '".$_POST['username']."' LIMIT 1";
$r = mysql_query($q) or die(mysql_error());
if (mysql_num_rows($r) > 0){
$d = mysql_fetch_array($r);
if ($d['password'] == md5($_POST['password'])){
$_SESSION['logged'] = true;
$_SESSION['uid'] = $d['id'];
if (isset($_POST['goto']) and $_POST['goto'] != ""){
header("Location: ".$_POST['goto']);
} else {
echo '<script>
window.opener.location.reload();
alert(\'התחברת בהצלחה!\');
window.close();
</script>';
}
exit;
} else {
$err = 2;
}
} else {
$err = 2;
}
} else {
$err = 1;
}
}
?>
<html dir="rtl">
<head>
<title>התחברות לאתר</title>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=windows-1255">
<style>
body, td {
font-size: 12px;
font-family: Arial;
}
</style>
</head>
<body bgcolor="#eff2f5">
<?php
if (isset($err) && $err == 2){
echo "<span style=\"Color: red;\">שם המשתמש או הסיסמא שגויים.</span><br /><br />";
} else if (isset($err) && $err !== 0){
echo "<span style=\"Color: red;\">התרחשה שגיאה בהתחברות.</span><br /><br />";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table width="100%">
<tr><td height="25"></td></tr>
<tr>
<td align="right">שם משתמש:</td>
<td align="right"><input type="text" name="username" /></td>
</tr>
<tr>
<td align="right">סיסמא:</td>
<td align="right"><input type="password" name="password" /></td>
</tr>
<tr><td height="25"></td></tr>
<tr>
<td></td>
<td><input type="submit" name="login" value="התחבר" /><input type="hidden" name="goto" value="<?php if (isset($_POST['goto'])){ echo $_POST['goto']; } else if (isset($_GET['ondone']) && $_GET['ondone'] == "close") { } else { echo $_SERVER['HTTP_REFERER']; } ?>" /></td>
</tr>
</tr>
<tr><td height="25" colspan="2" valign="bottom" align="center"><a style="Color: #3c3c3c;" href="register.php">הרשמה לאתר</a> <span style="Color: #3c3c3c;">|</span> <a style="Color: #3c3c3c;" href="remind.php">שכחתי סיסמא</a></td></tr>
<tr>
</table>
</form>
</body>
</html>
<?php
exit;
?>
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 30-08-2008, 19:12
צלמית המשתמש של iBot
  משתמש זכר iBot iBot אינו מחובר  
 
חבר מתאריך: 16.08.08
הודעות: 123
בתגובה להודעה מספר 1 שנכתבה על ידי טל שמאי שמתחילה ב "עזרה - התחברות למערכת תגובות"

לפני שיהיה אפשר יהיה לעזור לך...

ויהיה אור:
קוד PHP:
<?php
include "dbc.php";

function 
checkChars($text)
{
    
$ok true;
    
$illegal "/[^ א-תa-zA-Z0-9_]/";
    
    if ( 
preg_match $illegal$text ) )
    {
        
$ok false;
    }
    
    return 
$ok;
}

if ( isset ( 
$_POST['login'] ) )
{
    
$err 0;
    if ( 
checkChars $_POST['username'] ) )
    {
        
$q "SELECT * FROM users WHERE username = '{$_POST['username']}' LIMIT 1";
        
$r mysql_query $q ) or die ( mysql_error() );
        if ( 
mysql_num_rows $r ) > )
        {
            
$d mysql_fetch_array $r );
            if ( 
$d['password'] == md5 $_POST['password'] ) )
            {
                
$_SESSION['logged'] = true;
                
$_SESSION['uid'] = $d['id'];
                if ( isset( 
$_POST['goto'] ) and $_POST['goto'] != "" )
                {
                    
header 'Location: '.$_POST['goto'] );
                }
                else
                {
                    echo 
'<script>window.opener.location.reload();alert(\'התחברת בהצלחה!\');window.close();';
                }
                exit;
            }
            else
            {
                
$err 2;
            }
        }
        else
        {
            
$err 2;
        }
    }
    else
    {
        
$err 1;
    }
}
?>


עכשיו השאלה המתבקשת היא מה כולל הקובץ dbc.php?
ואם הוא כולל רק מה שאני חושב שהוא כולל, איפה הצהרת שאתה משתמש בסאשיין?
_____________________________________

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 30-08-2008, 20:17
  טל שמאי טל שמאי אינו מחובר  
 
חבר מתאריך: 26.08.03
הודעות: 46
בתגובה להודעה מספר 6 שנכתבה על ידי iBot שמתחילה ב "[QUOTE]ואם הוא כולל רק מה..."

אוקיי, הוספתי כרגע הצהרה וזה אכן עובד!
המון תודה!

רק עוד שאלה קטנה...
לגבי הקטע בו מוצג המשתמש המחובר ("טל, ברוך הבא!")

כאשר אני עושה התחלת סשיין, אכן רואים איזה משתמש מחובר אך רואים גם את האזהרה הבאה:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/virtual/mezegavi/public_html/index.php:8) in /home/virtual/mezegavi/public_html/right.php on line 10

אם כך, איפה אני אמור לשים את המשתנה של התחלת הסיישן בקטע הבא?:
קוד PHP:
<?php
 
if (!isset($_SESSION['logged']) or !isset($_SESSION['uid'])){
  
?> 
   • <span class="intxt" style="cursor: pointer; text-decoration: underline;" onclick="window.open ('login.php?ondone=close',
'login','width=330,height=365');">התחברות לאתר</span> | <span class="intxt" style="cursor: pointer; text-decoration: underline;" onclick="window.open ('register.php?ondone=close',
'login','width=400,height=600');">הרשמה לאתר</span>
   <br /><br />
<?php
 
} else {
  
$q "SELECT * FROM users WHERE id = ".$_SESSION['uid']." LIMIT 1";
  
$r mysql_query($q) or die($q."<br />".mysql_error());
  if (
mysql_num_rows($r) > 0){
   
$d mysql_fetch_array($r);
   
$username $d['username'];
   echo 
"שלום <b>".$username."</b> !<br />• <a class=\"intxt\" href=\"logout.php\">התנתק</a> | <span class=\"intxt\" style=\"cursor: pointer; text-decoration: underline;\" onclick=\"window.open ('updateUser.php',
'login','width=360,height=600');\">שינוי פרטים</span><br /><br />"
;
  } else {
   unset(
$_SESSION['uid']);
   unset(
$_SESSION['logged']);
  }
 }
?>
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.04 שניות עם 12 שאילתות

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

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