עבודה עם מחרוזות

Xiao Xiao

New member
עבודה עם מחרוזות

כרגע אני עובד על בדיקות לפני הרשמה למערכת, הכוונה לוודא שהמשתמש מכניס סיסמה, שם משתמש וכו'. נתקלתי בבעיה עם השם משתמש אני מעוניין שלכל משתמש יהיה שם ייחודי לו, ולכן אני מבצע מספר בדיקות לוודא שהשם משתמש יהיה תקין. הבעיה היא שיכול להיות משתמש ששמו John Smith אבל עוד מישהו יוכל להכנס כ John Smith (למי שלא שם לב בראשון רווח אחד בשני שני רווחים בין המילים) והוא יראה אותו דבר. הבעיה היא שאני רוצה לאפשר למשתמש להרשם כ John Smith 1 ואז אני בעצם צריך לבדוק שאין יותר מרווח אחד רצוף, אין ניתן לעשות זאת? ועוד שאלה קטנה שמתי לב ששדה מטיפוס char הוא אינו case-sensitive ולכן אם מישהו מנסה להרשם כ john אבל קייים כבר John הוא נותן שגיאה, האם זו בדיקה מספקת או שכדאי לי לבצע בדיקה ידנית? תודה, אורן.
 

Xiao Xiao

New member
עוד שאלה קטנה

נגיד שאני קובע cookie:
setcookie ('cookietest',$cookie,time()+2592000,'/','127.0.0.1');​
איך אני מוחק אותה? האם ככה?
setcookie ('cookietest'," ",time()-2592000,'/','127.0.0.1');​
(שימו לב שאין תוכן לעוגיה והזמן הוא מינוס). האם המחיקה טובה? ונגיד שאת שורת המחיקה אני אכתוב יום אחרי שקבעתי את הcookie האם היא עדיין תמחק? 2592000 = 30 יום תודה, אורן.
 

Yo 17

New member
לא..

מה שעשית נכון, אבל מספיק לכתוב ככה setcookie ('cookietest'," ",time()-1,'/','127.0.0.1');
 

Xiao Xiao

New member
תודה אבל זה לא עובד

הוא מציג את הcookie יפה אבל הוא לא מוחק אותה, למי שמעוניין צירפתי את הקוד של התוכנית רק להעתיק לקובץ ולהריץ:
<?php function checkAuth($userToCheck, $passToCheck) { $user = "foo"; $pass = "bar"; $encodedPass = md5($pass); if ($userToCheck == $user && $passToCheck == $encodedPass) { $check = TRUE; } else { $check = FALSE; } return $check; } if (isset($relogin)) { #setcookie ('cookietest'," ",time()-1,'/','127.0.0.1'); setcookie ('cookietest'); } if (isset($_GET['login'])) { $password = md5($_POST['formPass']); $username = $_POST['formUser']; if (checkAuth($username, $password)) { $cookie = serialize(array($username, $password)); setcookie ('cookietest',$cookie,time()+3600,'/','127.0.0.1'); $msg = "Authentication was successful! The cookies have been sent!"; }else{ $msg = "Authentication error!"; } } ?> <html> <head> <?php if (isset($_GET['login'])) { echo("<meta http-equiv='refresh' content='5;url=cookie.php'>"); } ?> <title>Test Cookie</title> </head> <body> <?php if (isset($_COOKIE['cookietest']) && !isset($_GET['relogin'])) { list($username, $password) = @unserialize(stripslashes($_COOKIE['cookietest'])); if (checkAuth($username, $password)) { echo(" Hello $username!" . " Your password (md5 encrypted) is: $password" . " <a href='cookie.php?relogin=1'>Delete cookies and force login</a><br>"); print_r($_COOKIE); } else { echo(" Authentication error from cookies values" . " <a href='cookie.php?relogin=1'>Delete cookies and force login</a>"); } } else { if (!isset($_GET['login']) || isset($relogin)) { ?> <form action="cookie.php?login=1" method="POST"> User: <input type="text" name="formUser"> Pass: <input type="password" name="formPass"> <input type="submit" name="submit" value="Log In"> </form> <?php } elseif (isset($_GET['login'])) { echo(" $msg" . " You'll be redirected in 5 seconds!"); } } ?> </body> </html>​
תודה, אורן.
 
למעלה