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

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



  #1  
ישן 07-10-2005, 22:13
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
עזרה במערכת login

אוקי.. אני מתחיל מערכת של משתמשים... והתחלתי בקובץ login
הוא בנוי משני קבצים:
send_login.php
קוד PHP:
 <html>
<
head> <title>hii</title> </head>
<
body>
<
div align="right">
<
form action="check_login.php" method="POST">
<
input type="text" value="claint" align="RIGHT" size="10" maxlength="10" /><br>
<
input type="password" value="pass" align="RIGHT" size="10" maxlength="12" /><br>
<
font color="#000000" size="3">השתמש בעוגיות</font>
<
input type="checkbox" value="cookie" align="RIGHT" checked="checked" /><br>
<
input type="submit" name="sumbit" value="שלח טופס"><input type="reset" name="reset" value="מחק טופס">
</
form>
</
div>
</
body>
</
html


ו- check_login.php
קוד PHP:
<?php
setcookie
("agzoz[claint]","$_post[claint]");
setcookie("agzoz[claint]","$_post[claint]");
if (
$_post[cookie]="") {
setcookie("agzoz[claint]","$_post[claint]",time()-1);
setcookie("agzoz[claint]","$_post[claint]",time()-1);
}
$link=mysql_connect('localhost','root','*******')o  r die("Eror!");
mysql_select_db('agzoz','$link');
$check="null"
$check="mysql_query("select*from claints where `claintlike `$_post[claint]`");
if (!isset(
$check)) {
echo "
user name is incorrect";
setcookie("
agzoz[claint]","$_post[claint]",time()-1);
setcookie("
agzoz[claint]","$_post[claint]",time()-1);
} else {
  echo "
user name is correct"
}
if (isset(
$check)) {
  
$pass="null"
$pass="mysql_query("select*from claints where `pass` like `$_post[pass]`");"
}
if (!isset(
$pass)) {
  echo "
password is incorrect";
  setcookie("
agzoz[claint]","$_post[claint]",time()-1);
setcookie("
agzoz[claint]","$_post[claint]",time()-1);
} else {
  echo "
password is corrct"
}
 ?>

הבעיה היא שכשאני שולח טופס זה מציג לי דף לבן
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 09-10-2005, 05:19
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 3 שנכתבה על ידי שי משעלי שמתחילה ב "וואו מה זה לעזאזאל?..."

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

שי הציג את שאילתת SQL שגויה שכתובה בתוך הקוד, וכמונה שמתי לב שיש לפחות עוד אחת (שאילתה נוספת עם שגיאות דומות).

ראשית, כשאתה כותב בשאילתה את התן כוכבית (*) שמסמן כמובן שאתה מעונין בכל העמודות, תעשה ריווח לפני הכוכבית ולאחריו, שכן זה לו חלק מהמילה הראשונה והשלישית, וכל עוד אין תו רווח, המילה נחשבת לפקודה אחת, כך שהמסד רואה את "select*from" כמילה אחת, והיות ואין כזאת פקודה, כמובן שמלבד שגיאה לא צפוי שתקבל משהו יעיל.

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

לכן תכתוב שורה זו, ושאילתות דומות לזה, באופן הבא:
קוד PHP:
 $pass mysql_query("SELECT * FROM claints WHERE pass LIKE '".$_POST['pass']."'"); 

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

בשורה התחתונה נראה שחסר לך יסודות בסיסיים ביותר בשפה, אז חבל שתתחיל לעבוד על הקוד הזה, פשוט תקדיש מספר שעות ללמוד את השפה מהיסוד, זה יקל עליך את החיים.

נערך לאחרונה ע"י ישראל K בתאריך 09-10-2005 בשעה 05:25.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 11-10-2005, 21:30
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
לא הקשבתי..
בתגובה להודעה מספר 4 שנכתבה על ידי ישראל K שמתחילה ב "כשראיתי את ההודעה לראשונה,..."

לא לקחתי את ההצעה שלך ושיפרתי את הסקריפט:
send_login.php
קוד PHP:
 <html>
<
head> <title>hii</title> </head>
<
body>
<
div align="right">
<
form action="check_login.php" method="POST">
<
input type="text" name="claint" align="RIGHT" size="10" maxlength="10" /><br>
<
input type="password" name="pass" align="RIGHT" size="10" maxlength="12" /><br>
<
font color="#000000" size="3">use cookies</font>
<
input type="checkbox" value="cookie" align="RIGHT" checked="checked" /><br>
<
input type="submit" name="sumbit" value="sumbit"><input type="reset" name="reset" value="reset">
</
form>
</
div>
</
body>
</
html

check login.php
קוד PHP:
<?php
setcookie
("agzoz['claint']","$_POST['claint']");
setcookie("agzoz['pass']","$_POST['pass']"); //cookies set
if ($_POST['cookie']="") {
setcookie("agzoz['claint']","$_POST['claint']",time()-1); //check if user wont to use cookies
setcookie("agzoz['pass']","$_POST['pass']",time()-1);
}
$link=mysql_connect('localhost','root','070794')or   die("Eror!"); //connect to mysql or eror
mysql_select_db('agzoz','$link'); //select my database
$check="null"
$check=mysql_query(SELECT FROM claints WHERE claint LIKE '".$_POST['claint']."'); //select claint
if (!isset($check)) {    //chck if the user don't write anithing
echo "user name is incorrect";
setcookie("agzoz['claint']","$_POST['claint']",time()-1);  //delete cookies
setcookie("agzoz[claint']","$_POST['claint']",time()-1);

$check_re=mysql_fetch_array($check//check the claint
foreach ($check_re as $value//loop for all the passwords to check the claint
{
if (
$_POST['claint']==$check_re['claint'])
{
echo 
"user name is corecct";
}
}
if (isset(
$check)) {
  
$pass="null";
 
$pass mysql_query("SELECT * FROM claints WHERE pass LIKE '".$_POST['pass']."'"); 
$pass_re=mysql_fetch_array($check//check the pass
foreach ($check_re as $value//loop for all the passwords to check the claint
{
if (
$_POST['pass']==$pass_re['pass'])
{
echo 
"password is corecct";
}

}
if (!isset(
$pass)) {
  echo 
"password is incorrect";
  
setcookie("agzoz['claint']","$_POST['claint']",time()-1);
setcookie("agzoz['claint']","$_POST['claint']",time()-1);
} else {
  echo 
"password is corrct";
}
 
?>

גם פה הדף נשאר ריק.. מה קרה?
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 11-10-2005, 22:05
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 7 שנכתבה על ידי tnadav1 שמתחילה ב "לא הקשבתי.."

אתה ממש, אבל ממש ! לא חייב לקבל את הצעתי, רק תקח בחשבון ש לי אין כל רווח אם תבחר לקבל את ההצעה או לא. לעומתך, שאם תבחר לקבל אותה, הרווח יהיה כולו שלך.

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

תזכור כלל:
אם אתה כותב מחרוזת (בתור ערך למשתנה או כל דבר אחר) אתה צריך לתחום אותו במרכאות בודדות או כפולות.
אם אתה רוצה לחבר בין מחרוזת למשתנה, תתחום את המחרוזת במרכאות, ובין המשתנה למחרוזת תשים נקודה.

זה ^ כמובן לא הכלל היחידי, אך אחד מהבסיסיים שהבעיה שלך מאופיינת בהם.
ושוב, הצעתי הקודמת עדיין בתקפה.

נערך לאחרונה ע"י ישראל K בתאריך 11-10-2005 בשעה 22:08.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #19  
ישן 12-10-2005, 15:26
  microto microto אינו מחובר  
 
חבר מתאריך: 30.09.04
הודעות: 6
בתגובה להודעה מספר 1 שנכתבה על ידי tnadav1 שמתחילה ב "עזרה במערכת login"

אחי מה עם הצפנה ?
קוד:
md5()

מה עם
קוד:
'" . mysql_escape_string($_POST['pass']) . "'

מה אתה רוצה שיסגרו תסוגריים ויוציאו את הסיסמה?

הינה קוד שלי
קוד:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.1 Transitional//EN"> <HTML> <HEAD> <TITLE> Login Page </TITLE> </HEAD> <BODY> <center> <form method="post" action="login.php"> Enter User Name.<br> <input type="text" name="Username" size="25" maxlength="50" /><br> Enter Password.<br> <input type="password" name="Password" size="25" maxlength="32" /><br> <input type="submit" value="Login" /> </form> </center> </BODY> </HTML> <?PHP if(isset($_POST['Username'], $_POST['Password'])) { session_start(); header("Location: includes/log.php"); include('includes/db.php'); $Username = $_POST['Username']; $getpass = $POST['Password']; $passcheck = md5($getpass); $sql = "SELECT * FROM `login` where `Username`='$Username'"; $res = mysql_query($sql); $row = mysql_fetch_array($res); mysql_free_result($res); $passenc = $row['Password']; if ($passcheck == $passenc) { $_SESSION['access'] = '1'; session_write_close(); } elseif ($passcheck != $passenc) { $_SESSION['access'] = '0'; session_write_close(); } } ?>

נערך לאחרונה ע"י microto בתאריך 12-10-2005 בשעה 15:38.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #25  
ישן 14-10-2005, 17:36
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
בתגובה להודעה מספר 1 שנכתבה על ידי tnadav1 שמתחילה ב "עזרה במערכת login"

שיפרתי שוב (גרסה 1.2 חחח...)
קוד PHP:
<?php
setcookie
("agzoz['claint']","$_POST['claint']");
setcookie("agzoz['pass']","$_POST['pass']"); //cookies set
if ($_POST['cookie']="") {
setcookie("agzoz['claint']","$_POST['claint']",time()-1); //check if user wont to use cookies
setcookie("agzoz['pass']","$_POST['pass']",time()-1);
}
$link=mysql_connect('localhost','root','070794')or   die("Eror!"); //connect to mysql or eror
mysql_select_db('agzoz','$link'); //select my database
$check="null"
$check=mysql_query("SELECT * FROM claints WHERE claint=".$_POST['claint'].""); //select claint
if (!isset($check)) {    //chck if the user don't write anithing
setcookie("agzoz['claint']","$_POST['claint']",time()-1);  //delete cookies
setcookie("agzoz[claint']","$_POST['claint']",time()-1);
die(
"claint is empty");

$check_re=mysql_fetch_array($check//check the claint
$acces="0"
foreach ($check_re as $value//loop for all the passwords to check the claint
{
if (
$_POST['claint']==$check_re['claint'])
{
$acces="1";
}
}
 if (
acces="0")
{
setcookie("agzoz['claint']","$_POST['claint']",time()-1);  //delete cookies
setcookie("agzoz[claint']","$_POST['claint']",time()-1);
die(
"claint is incorecct");
}
if (
acces="1") {
  
$pass="null";
 
$pass=mysql_query("SELECT * FROM claints WHERE pass=".$_POST['pass']."");
$pass_re=mysql_fetch_array($check//check the pass
foreach ($check_re as $value//loop for all the passwords to check the claint
{
if (
$_POST['pass']==$pass_re['pass'])
{
$acces="2"
}
}
if (
$acces!="2")) {
  
setcookie("agzoz['claint']","$_POST['claint']",time()-1);
setcookie("agzoz['claint']","$_POST['claint']",time()-1);
die(
"password is incorrect")
}
echo 
"wow.. thet`s work!!!"
 
?>

האבטחה תצא בגרסה 1.3 חח..

נערך לאחרונה ע"י tnadav1 בתאריך 14-10-2005 בשעה 17:39.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #26  
ישן 15-10-2005, 18:04
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 25 שנכתבה על ידי tnadav1 שמתחילה ב "שיפרתי שוב (גרסה 1.2 חחח...) ..."

ומה עכשיו ?
זה עובד ? יש בעיה ? אם כן, מה הבעיה ? מה כתוב בהודעת שגיאה אם יש כזאת ?

אל תתחיל כל שורת קוד בתחילת השורה, אלא תבצע הזחה בשורות המתאימות.
לדוגמה, אם יש לך תנאי או לולאה, אז את כל הקוד שבתוך התנאי או הלולאה תכתוב יותר בתוך השורה, תעשה tab בתחילת השורה לפני הקוד, כדי שיראו בדיוק איזה קוד שייך לתנאי ואיזה קוד שייך כבר להמשך, אחרת לא נוכל כל פעם לקרוא מחדש את הקוד 'הלא קריא' שלך.

אני מסופק אם לעזור לך, בינתיים קראתי את השורה הראשונה, ואני רואה שוב שאתה מתעקש שנתקן אותך בלי שתבין את הקוד, במקום ללמוד את השפה כמו שצריך, אתה עושה שגיאות שמתחיל כבר לא טועה בהם, וחבל.
למה אתה כותב משתנה בתוך מרכאות ?
קוד PHP:
 setcookie("agzoz['claint']","$_POST['claint']"); 

צריך לכתוב כך:
קוד PHP:
 setcookie("agzoz['claint']",$_POST['claint']); 
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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