647
צפיות
צפיות
13
תשובות
תשובות
בעיה עם $_GET ב- PHP
כתבתי דף ב- PHP שמקבל נתונים מטופס בשיטת GET. הבעיה שלי היא שלא תמיד אני באמת רוצה לשלוח לאותו הדף נתונים ב- GET.
כאשר טופס באמת שולח לדף את נתונים הדף עובד ללא שום בעיה, אך כאשר הטופס לא שולח נתונים אז מתחוללת השגיאה הבאה:
Notice: Undefined index: sql in F:serverwwwrootindex.php on line 14
השורה שבה מתרחשת השגיאה היא:
$x=$_GET['sql'];
כיצד ניתן למנוע את השגיאה?
תודה מראש!
13 תשובות
——->
<?php
if(isset($_GET["id"]))
{
echo $_GET["id"];
}
else
{
echo "No GET here.";
}
?>
תודה רבה!
בעיה ב- PHP עם mysql_connect
הפונקציה mysql_connect משום מה לא מוכרת ע"י PHP.
הנה השגיאה:
Fatal error: Call to undefined function mysql_connect() in F:phplearnindex.php on line 15
הנה שורת הקוד:
mysql_connect ('127.0.0.1', 'root', '111');
כיצד ניתן לפתור את הבעיה?
תודה מראש!
PHP ופונקציות ה-MySQL
כדי לאפשר ל-PHP להשתמש בפונקציות ה-MySQL אתה צריך לעשות כמה דברים.
ההוראות הן כדלקמן (בהנחה שהורדת את כל חבילת הZIP של PHP).
1. תאתר את קובץ php.ini (אם בצעת התקנה על IIS הוא אמור להיות בתיקיית Windows שלך).
2. תעתיק את הקובץ libmysql.dll לתיקיית Windowssystem32
3. בתוך הקובץ php.ini תמצא את השורה בה תגדיר את התיקייה בה נמצאים ה"אקסטנשנים" שלך (לדוגמא: extension_dir=C:php5ext)
4. תמצא את השורה בה כתוב extension=php_mysql.dll ותוריד את הסימון 5. תאתחל מחדש את שרת הweb שלך (Apache או IIS, מה שאתה מריץ)
בהצלחה!
עובד! תודה רבה!
בעיה עם שאילתה בעברית ב- MySQL
אני מריץ את שאילתת הוספה באמצעות PHP:
$sql="insert into tbl_users(username,password) values('" . $_POST['username'] . "','" . $_POST['password'] . "')";
mysql_query($sql);
השאילתה עובדת ללא שגיאות במהלך הריצה, אך משום מה הנתונים של העברית נשמרים כסימני שאלה.
חשוב לציין כי מיד לאחר ההתקנה של המסד MySQL 4.1.11 הגדרתי בו קידוד hebrew.
אשמח לקבל פיתרון בנושא.
תודה מראש!
———>
אם אני זוכר נכון, גירסה 4.1.X עובדת אם UNICODE, לכן אתה צריך לישמור/לישלוף את הנתונים כ UNICODE.
בכל מיקרה, הקידוד שבו אתה שלוף את הנתונים צריך להיות זהה לקידוד שבו אתה מכניס את הנתונים.
בהצלחה!
ראה הוזהרת. XSS
הקוד שהעלת (בלי בדיקת קלט) עלול להיות מקור לצרות.
חסימת XSS:
ב PHP יש פונקציה מובנה להפיכת תווים מיוחדים שעולולים ליגרום בעיות כגון &",><?' ועוד….
היא ניקרא htmlspecialchars
http://il.php.net/manual/en/function.htmlspecialchars.php
מה כל-כך בעייתי בקוד שהעלתי?
זו בסך הכל השמה של מחרוזת שהמשתמש הקליד מטופס לתוך משתנה. מה כל-כך בעייתי בקוד כזה? ומה זה ה- XSS הזה בדיוק? אפשר מידע מפורט יותר?
תודה!
אתה מכניס נתונים ל DB
מבלי להפעוך תווי html, כלומר מישהוא יכול להכניס תגי html לקוד וכאשר תכניס אותם למסד הם יפריעו לתצוגה.
אם אתה לא הופך אותם בהכנסה, תהפוך אותם בשליפה.
בדרך כלל אני מחליף אותם בהצגה
כשבניתי אפליקציות ב- ASP תמיד תמיד הקפדתי על הפעלת הפונקציה server.htmlencode על כל מחרוזת שאני מציג ללקוח.
בזבוז
אתה מחליף גם הרבה תווים שלא עושים שום בעיה.