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

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



  #1  
ישן 20-05-2018, 17:57
  דוכובניק דוכובניק אינו מחובר  
 
חבר מתאריך: 29.04.04
הודעות: 638
PHP: ערך שדה בשדה עריכה מוצג באופן חלקי

שלום,
רצ"ב קוד ב PHP לשינוי ערך בטבלת MySQL.
הרצת הקוד מעלה הודעת הזהרה ולשונה:
"Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\magar\xxx.php on line 16"
נשגב מבינתי מה פסול במה שכתוב בשורה 16 בקוד ואודה למי שישפוך אור על התעלומה.
בעיה שניה, כל הרצה אמורה למחוק את הטבלה xxx ליצור אותה מחדש ולהוסיף לטבלה הריקה שורה אחת. הרצת הקוד מס. פעמים מוסיפה לטבלה מספר שורות כמס. הפעמים שהקוד הורץ. צא ולמד: הטבלה לא נמחקת ! מדוע ?!
בעיה 3: בשדה העריכה המציג ערך קיים, מוצג הערך הקיים באופן חלקי בלבד: מהתו הראשון עד המרווח הראשון. מדוע לא מוצגת המחרוזת במלואה?
תודה
קוד PHP:
<?php 
    $errors 
"";
    
$name=''
    
$db mysqli_connect('localhost''root''root4qpines''magar');
    IF(!
$db)
        DIE(
'' .MYSQLI_CONNECT_ERROR());
    
    
mysqli_query($db"DROP TABLE IF EXISTS 'xxx';");
    
mysqli_query($db"CREATE TABLE xxx(name VARCHAR(128))");
    
mysqli_query($db"INSERT INTO xxx(name) VALUES('aaa aaa aaa')");

    if (isset(
$_GET['edit_task']))
    {
        
$name $_GET['edit_task'];
        
$edid=mysqli_query($db"SELECT * FROM xxx WHERE name = $name");
        
$row=mysqli_fetch_array($edid);
        
$errors $name;
        echo 
$errors;
    }
    
$stations mysqli_query($db"SELECT * FROM xxx");
?>
<!DOCTYPE html>
<html>
<head>
    <link href="https://fonts.googleapis.com/css?family=Amatic+SC|Assistant|David+Libre|Heebo|J  ua|Varela+Round" rel="stylesheet">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style>
    .add_btn
{
    /*height: 39px;*/
    background: #FFF8DC;
    color: #6B8E23;
    border: 2px solid #6B8E23;
    border-radius: 5px;
    /*padding: 5px 20px;*/
}
.btn_td
{
    /*border-left: 1px solid #cbcbcb;    */
    border-bottom: 1px solid #FFFFFF;
}
    </style>
    
</head>
<body>
    <table>
        <thead>
            <tr>
                
                <th class="name_th" maxlength="50">Name</th>
                <th class="add_th"></th>
                <th class="edit_th"></th>
            </tr>
            <tr>
                <form method="POST" action="xxx.php">
                    <td><input type="text" name="name" class="name_input" value=<?php echo htmlspecialchars($name);?>></td>
                    <td class="btn_td"><button type="submit" class="add_btn" name="submit">Edit</button></td>
                </form>
            </tr>
            
        </thead>
        <tbody>
            <?php
                
while ($row mysqli_fetch_array($stations))
                {
                    echo 
"<tr>";
                    echo 
"<td class='name_td'>".$row['name']."</td>";
                    
                    echo 
"<td class='edit'>
                            <a href='xxx.php?edit_task="
.$row['name']."'>
                                <img src='edit.gif' alt='Smiley face' height='20px' width='20px'>
                            </a>
                            <span class='tooltiptext'>Edit</span>
                        </td>
                        </tr>"
;
                }
            
?>                                
        </tbody>
    </table>
</body>
</html>

נערך לאחרונה ע"י דוכובניק בתאריך 20-05-2018 בשעה 17:59. סיבה: הוספת קוד
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 20-05-2018, 18:31
צלמית המשתמש של Nati323
  משתמש זכר Nati323 Nati323 אינו מחובר  
 
חבר מתאריך: 25.10.05
הודעות: 1,508
בתגובה להודעה מספר 1 שנכתבה על ידי דוכובניק שמתחילה ב "PHP: ערך שדה בשדה עריכה מוצג באופן חלקי"

1) mysql_query יכול להחזיר false במידה ויש שגיאה בשאילתא, ולכן בשורה הבאה שבה אתה מנסה לגשת לתוצאות השאילתא אתה מקבל שגיאה שהכנסת boolean.
בקיצור, יש לך שגיאה בשאילתא , לא תחמת את הערך במרכאות($name)
2) אני חושד שזה בגלל ששמת את השם של הטבלה במרכאות במקום בטיקים `
3) שאתה מייצר קישור לדף העריכה תשים את הערך בתוך הפונקציה urlencode לא בטוח במאה אחוז שזו הבעיה כאן אבל אתה בכל מקרה צריך לעשות את זה.

אתה חשוף לSQL INJECTION ול XSS
_____________________________________
חתימתי העצומה בגודלה הוסרה ע"י השליט הבלתי מעורער שימי, למי שיש בעיה שיפנה אליו.


ד אַל תַּעַן כְּסִיל כְּאִוַּלְתּוֹ פֶּן תִּשְׁוֶה לּוֹ גַם אָתָּה. ה עֲנֵה כְסִיל כְּאִוַּלְתּוֹ פֶּן יִהְיֶה חָכָם בְּעֵינָיו

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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