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

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



  #1  
ישן 17-01-2006, 23:46
  המחפש המחפש אינו מחובר  
 
חבר מתאריך: 24.11.05
הודעות: 317
בעיה בטופס התחברות

שלום...
בניתי טופס התחברות בPHP ויש לי איתו בעיות.
לאחר שאני מתחבר גם אם הפרטים נכונים או לא נכונים הוא מעביר אותי לדף לבן.
ושאני עושה רענן הוא מבקש להתחבר שוב.
קוד העמוד:
קוד PHP:
<?php
include "db.php";
if(
$do == "logout") { // אם המשתמש בחר להתנתק 
setcookie("cmsname",""); 
setcookie("cmspass",""); 
header("location: admin.php"); 

 
$query mysql_query("SELECT * FROM cms_user WHERE id=1");
 
$arr mysql_fetch_array($query);
if(
$_COOKIE["cmsname"] == $arr["user"] && $_COOKIE["cmspass"] == $arr["pass"]) {
 echo 
"You are logged in.<br>";
 echo 
"<a href=\"admin.php?do=logout\">התנתק</a>";
 die();
}
if(
$_POST["posted"]) {
 
$name $_POST["name"];
 
$pass $_POST["pass"];
 
$query mysql_query("SELECT * FROM cms_user WHERE id=1");
 
$arr mysql_fetch_array($query);
 if(
$name == $arr["user"] && $pass == $arr["pass"]) {
  
setcookie("cmsname",$name,time()+60*60*24*31);
  
setcookie("cmspass",$pass,time()+60*60*24*31);
 
header("location: admin.php");
 }
} else {
?>
<form action="admin.php" method="post">
<input type="hidden" name="posted" value="1" />
UserName: <input type="text" name="name" /><br />
Password: <input type="password" name="pass" /><br />
<input type="submit" value="Login!" />
</form>


תודה מראש
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 18-01-2006, 06:42
  המחפש המחפש אינו מחובר  
 
חבר מתאריך: 24.11.05
הודעות: 317
בתגובה להודעה מספר 4 שנכתבה על ידי ישראל K שמתחילה ב "כמו שכתוב, תבדוק את שורה 32..."

בבקשה, כל הקוד
קוד:
<?php include "db.php"; if($do == "logout") { // אם המשתמש בחר להתנתק setcookie("cmsname",""); setcookie("cmspass",""); header("location: admin.php"); } $query = mysql_query("SELECT * FROM cms_user WHERE id=1"); $arr = mysql_fetch_array($query); if($_COOKIE["cmsname"] == $arr["user"] && $_COOKIE["cmspass"] == $arr["pass"]) { echo "You are logged in.<br>"; echo "<a href=\"admin.php?do=logout\">התנתק</a>"; die(); } if($_POST["posted"]) { $name = $_POST["name"]; $pass = $_POST["pass"]; $query = mysql_query("SELECT * FROM cms_user WHERE id=1"); $arr = mysql_fetch_array($query); if($name == $arr["user"] && $pass == $arr["pass"]) { setcookie("cmsname",$name,time()+60*60*24*31); setcookie("cmspass",$pass,time()+60*60*24*31); header("location: admin.php"); } } else { ?> <form action="admin.php" method="post"> <input type="hidden" name="posted" value="1" /> UserName: <input type="text" name="name" /><br /> Password: <input type="password" name="pass" /><br /> <input type="submit" value="Login!" /> </form>

שורה 32 היא השורה מתחת ל</form>
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 18-01-2006, 10:53
  המחפש המחפש אינו מחובר  
 
חבר מתאריך: 24.11.05
הודעות: 317
בתגובה להודעה מספר 8 שנכתבה על ידי yytg שמתחילה ב "בס"ד תביא את הקודים..."

טוב...
הצלחתי לסדר כמה דברים, אך יש בעיה נוספת:
כאשר נכנסים לאתר ומכניסים שם משתמש וסיסמא ולוחצים התחבר מופיעה הודעת שגיאה:
קוד:
Warning: Cannot modify header information - headers already sent by (output started at /home/צונזר/domains/צונזר/public_html/php/cms/admin.php:6) in /home/צונזר/domains/צונזר/public_html/php/cms/admin.php on line 24 Warning: Cannot modify header information - headers already sent by (output started at /home/צונזר/domains/צונזר/public_html/php/cms/admin.php:6) in /home/צונזר/domains/צונזר/public_html/php/cms/admin.php on line 25 Warning: Cannot modify header information - headers already sent by (output started at /home/צונזר/domains/צונזר/public_html/php/cms/admin.php:6) in /home/צונזר/domains/צונזר/public_html/php/cms/admin.php on line 26


הקוד של העמוד (כל הקוד):
קוד PHP:
 <html dir="rtl">
<
head>
<
title>כניסה ללוח הבקרה למנהלים</title>
</
head>
<
body>
<?
php
include "db.php";
if(
$do == "logout") { // אם המשתמש בחר להתנתק 
setcookie("cmsname",""); 
setcookie("cmspass",""); 
header("location: admin.php"); 

$query mysql_query("SELECT * FROM cms_user WHERE id=1");
$arr mysql_fetch_array($query);
if(
$_COOKIE["cmsname"] == $arr["name"] && $_COOKIE["cmspass"] == $arr["pass"]) {
echo 
'ברוך הבא .$arr["name"].';
echo 
"<a href=\"admin.php?do=logout\">(התנתק)</a>";
die();
}
if(
$_POST["posted"]) {
$name $_POST["name"];
$pass $_POST["pass"];
if(
$name == $arr["name"] && $pass == $arr["pass"]) {
     
setcookie("cmsname",$name,time()+60*60*24*31);
     
setcookie("cmspass",$pass,time()+60*60*24*31);
    
header("location: admin.php");
}
} else {
?>
<form action="admin.php" method="post">
<input type="hidden" name="posted" value="1" />
שם משתמש: <input type="text" name="name" /><br />
סיסמא: <input type="password" name="pass" /><br />
<input type="submit" value="התחבר!" />
</form>
<?php
}
?>
</body>
</html> 


שורות 24-26 מודגשות.
בכל מקרה הינה הם לחוד:
קוד PHP:
 setcookie("cmsname",$name,time()+60*60*24*31);
     
setcookie("cmspass",$pass,time()+60*60*24*31);
    
header("location: admin.php"); 
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 18-01-2006, 11:23
  yytg yytg אינו מחובר  
 
חבר מתאריך: 12.08.04
הודעות: 993
בתגובה להודעה מספר 15 שנכתבה על ידי המחפש שמתחילה ב "תוכל בבקשה להסביר לי את השיטה..."

בס"ד
קוד PHP:
 <html dir="rtl">
<
head>
<
title>כניסה ללוח הבקרה למנהלים</title>
</
head>
<
body>
<?
php
include "db.php";
$OutPut='';
if(
$do == "logout") { // אם המשתמש בחר להתנתק 
setcookie("cmsname",""); 
setcookie("cmspass",""); 
header("location: admin.php"); 

$query mysql_query("SELECT * FROM cms_user WHERE id=1");
$arr mysql_fetch_array($query);
if(
$_COOKIE["cmsname"] == $arr["name"] && $_COOKIE["cmspass"] == $arr["pass"]) {
$OutPut+= 'ברוך הבא .$arr["name"].';
$OutPut+= "<a href=\"admin.php?do=logout\">(התנתק)</a>";
die();
}
if(
$_POST["posted"]) {
$name $_POST["name"];
$pass $_POST["pass"];
if(
$name == $arr["name"] && $pass == $arr["pass"]) {
     
setcookie("cmsname",$name,time()+60*60*24*31);
     
setcookie("cmspass",$pass,time()+60*60*24*31);
    
header("location: admin.php");
}
}
echo 
$OutPut;
?>
<form action="admin.php" method="post">
<input type="hidden" name="posted" value="1" />
שם משתמש: <input type="text" name="name" /><br />
סיסמא: <input type="password" name="pass" /><br />
<input type="submit" value="התחבר!" />
</form>
</body>
</html> 

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #18  
ישן 18-01-2006, 15:06
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 17 שנכתבה על ידי המחפש שמתחילה ב "עדיין מראה את אותה שגיאה, רק..."

נראה שפשוט לא הבנת את הבעיה.

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

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


ישנה דרך, באמצעות הפונקציה yytg הפנה אותך אליה, לעצור את שליחת הפלט לדפדפן, כך שלמרות שריצת הקוד שלך יוצרת פלט הוא יאגר בחוצץ (buffer) ולא ישלח ללקוח/לדפדפן עד שתתן הוראה מתאימה.
לכן בצורה כזאת תוכל לשלוח כותרים גם באמצע ניתוח הקוד, כיון שלמרות שנוצר פלט הוא עדיין לא נשלח לדפדפן.

אז תבחר את אחד מהאפשרויות הבאים:
1. לשנות את הקוד כך ששליחת הכותרים יופיעו לפני התוכן.
2. להשתמש בחוצץ לאגירת התוכן - תקדיש לפחות זמן קצר ללימוד הפונקציות בקישור שקיבלת.
3. לשמור את כל התוכן ידנית בתוך משתנה ולעשות בו שימוש מתאים... בד"כ פשוט להדפיס את המשתנה בסיום הפעולה. זאת אומרת במקום לכתוב echo, לכתוב " $echo .=" ובסיום הדף להדפיס לדפדפן את התוכן של המשתנה echo.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.14 שניות עם 10 שאילתות

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

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