הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה קצת מוזרה כשאני משתמש בכתובת שמורכבת מ3 GETים....אחד מהם לא מתפקד (https://hosts.co.il/forums/showthread.php?t=27338)

-VladK- 26-07-06 16:04

בעיה קצת מוזרה כשאני משתמש בכתובת שמורכבת מ3 GETים....אחד מהם לא מתפקד
 
שלום...

יש לי נגיד את הכתובת:
?act=panel&do=edit&id=45

עכשיו....PANEL מתפקד, EDIT, מתפקד....אבל הID לא....כאילו יש לי בדיקה אם הזינו ID בכתובת וזה מחזיר לי FALSE....למה?

drowkid 26-07-06 16:54

תן תקוד...

בניה 26-07-06 16:59

ב"ה

תעשה print_r ל
קוד:

$_GET

-VladK- 26-07-06 17:04

ציטוט:

נכתב במקור על ידי בניה
ב"ה

תעשה print_r ל
קוד:

$_GET

זה לא עושה כלום :-/

הנה הקוד של זה:
PHP קוד:

    function editp() {

        if(isset(
$_COOKIE['membersU'])) {
            if(isset(
$_GET['id'])) {
                if(
is_int($_GET['id'])) {
                    
$id $_GET['id'];
                    
skin::shead("עריכת תמונה");
                    
$Uid $_COOKIE['membersU'];
                    if(isset(
$_POST['submit'])) {
                        
extract($_POST);
                        
$purl mysql_real_escape_string($purl);
                        
$purl htmlspecialchars($purl);
                        
$fParts explode("."$purl);
                        
$ext $fParts[count($fParts)-1];
                        
$ext strtolower($ext);
                        if((
$ext == "gif") or ($ext == "jpg") or ($ext == "jpeg") or ($ext == "png")) {
                            
$insert mysql_query("UPDATE `banners` SET `url` = '$purl' WHERE `id` ='$id'") or die(mysql_error());
                            echo 
'התמונה התעדכנה בהצלחה!<br /><input type="button" value="סגור חלון" name="close" onclick="window.top.close(); opener.location.reload();" />';
                        } else {
                            echo 
'אנו מאפשרים שימוש רק בפורמטים: gif, jpeg, png';
                        }
                    } else {
                        
$ser mysql_query("SELECT * FROM `banners` WHERE `id`='$id'") or die(mysql_error());
                        
$sar mysql_fetch_assoc($ser);
                        echo 
'<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
                        כתובת התמונה שלך:
                        <input type="text" name="purl" value="'
.$sar['url'].'" size="30" />
                        <br /><br />
                        <input type="submit" value="עדכן" name="submit" /> | <input type="button" value="סגור חלון" name="close" onclick="window.top.close(); opener.location.reload();" />
                        </form>'
;
                    }
                    
skin::sbot();

                }
            }
        } else {
            echo 
'עליך להיות רשום על מנת לתוכל לערוך תמונות!';
        }

    } 


RS324 26-07-06 18:02

תיצור דף חדש ותכתוב בו
print_r($_GET)

ואז תבדוק אם הבעיה עדיין קיימת...אם כן, זה משהו במערכת שלך

-VladK- 26-07-06 18:12

עשיתי בתוך קובץ חדש PRINT_R וזה החזיר לי את זה:
Array ( [act] => panel [do] => edit [id] => 45 )
אבל כשהרצתי בפונקציה זה לא החזיר כלום :-/

עריכה:
דרך עגב....הנה העמוד INDEX....
PHP קוד:

<?
include 'source/inc.php';

if(isset(
$_GET['act'])) {
    
$act $_GET['act'];
    if (
$act == "idx") {
        
$skin->index();
    } elseif (
$act == "panel") {
        if(isset(
$_GET['do'])) {
            
extract($_GET);
            if(
$do == "add") {
                
$pan->addp();
            } elseif(
$do == "edit") {
                
$pan->editp();
            }
        } else {
        
$pan->index();
        }
    } else {
        
$skin->index();
    }
} else {
    
$skin->index();
}
?>


BlueNosE 26-07-06 18:25

שאלת אם אנחנו מכירים דרכים לנטרל GET.
אולי ניטרלת את זה?

Unknown 26-07-06 18:58

אמממ אל תשכח שאתה משתמש כאן בפונקציה
אולי עדיף במקום להשתמש במשתנים גלובאליים תשלח לפונקציה את מערך ה$_GET:

קוד:

$pan->editp($_GET);
וכמובן שתערוך את הגדרת הפונקציה:

קוד:

function editp($getArr) {

        if(isset($_COOKIE['membersU'])) {
            if(isset($getArr['id'])) {
                if(is_int($getArr['id'])) {
                    $id = $getArr['id'];
                    skin::shead("עריכת תמונה");
                    $Uid = $_COOKIE['membersU'];
                    if(isset($_POST['submit'])) {
                        extract($_POST);
                        $purl = mysql_real_escape_string($purl);
                        $purl = htmlspecialchars($purl);
                        $fParts = explode(".", $purl);
                        $ext = $fParts[count($fParts)-1];
                        $ext = strtolower($ext);
                        if(($ext == "gif") or ($ext == "jpg") or ($ext == "jpeg") or ($ext == "png")) {
                            $insert = mysql_query("UPDATE `banners` SET `url` = '$purl' WHERE `id` ='$id'") or die(mysql_error());
                            echo 'התמונה התעדכנה בהצלחה!<br /><input type="button" value="סגור חלון" name="close" onclick="window.top.close(); opener.location.reload();" />';
                        } else {
                            echo 'אנו מאפשרים שימוש רק בפורמטים: gif, jpeg, png';
                        }
                    } else {
                        $ser = mysql_query("SELECT * FROM `banners` WHERE `id`='$id'") or die(mysql_error());
                        $sar = mysql_fetch_assoc($ser);
                        echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
                        כתובת התמונה שלך:
                        <input type="text" name="purl" value="'.$sar['url'].'" size="30" />
                        <br /><br />
                        <input type="submit" value="עדכן" name="submit" /> | <input type="button" value="סגור חלון" name="close" onclick="window.top.close(); opener.location.reload();" />
                        </form>';
                    }
                    skin::sbot();

                }
            }
        } else {
            echo 'עליך להיות רשום על מנת לתוכל לערוך תמונות!';
        }

    }

תערוך ותוסיף גם משתנה של $_POST לשלוח לפונקציה ותחליף את ה$_POST במשתנה שבחרת, ותגיד אם עבד לך

ואני רואה השתמשת בשיטה שלי לקבלת סיומת :P

-VladK- 26-07-06 19:32

ציטוט:

נכתב במקור על ידי Unknown
אמממ אל תשכח שאתה משתמש כאן בפונקציה
אולי עדיף במקום להשתמש במשתנים גלובאליים תשלח לפונקציה את מערך ה$_GET:

קוד:

$pan->editp($_GET);
וכמובן שתערוך את הגדרת הפונקציה:

קוד:

function editp($getArr) {

        if(isset($_COOKIE['membersU'])) {
            if(isset($getArr['id'])) {
                if(is_int($getArr['id'])) {
                    $id = $getArr['id'];
                    skin::shead("עריכת תמונה");
                    $Uid = $_COOKIE['membersU'];
                    if(isset($_POST['submit'])) {
                        extract($_POST);
                        $purl = mysql_real_escape_string($purl);
                        $purl = htmlspecialchars($purl);
                        $fParts = explode(".", $purl);
                        $ext = $fParts[count($fParts)-1];
                        $ext = strtolower($ext);
                        if(($ext == "gif") or ($ext == "jpg") or ($ext == "jpeg") or ($ext == "png")) {
                            $insert = mysql_query("UPDATE `banners` SET `url` = '$purl' WHERE `id` ='$id'") or die(mysql_error());
                            echo 'התמונה התעדכנה בהצלחה!<br /><input type="button" value="סגור חלון" name="close" onclick="window.top.close(); opener.location.reload();" />';
                        } else {
                            echo 'אנו מאפשרים שימוש רק בפורמטים: gif, jpeg, png';
                        }
                    } else {
                        $ser = mysql_query("SELECT * FROM `banners` WHERE `id`='$id'") or die(mysql_error());
                        $sar = mysql_fetch_assoc($ser);
                        echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
                        כתובת התמונה שלך:
                        <input type="text" name="purl" value="'.$sar['url'].'" size="30" />
                        <br /><br />
                        <input type="submit" value="עדכן" name="submit" /> | <input type="button" value="סגור חלון" name="close" onclick="window.top.close(); opener.location.reload();" />
                        </form>';
                    }
                    skin::sbot();

                }
            }
        } else {
            echo 'עליך להיות רשום על מנת לתוכל לערוך תמונות!';
        }

    }

תערוך ותוסיף גם משתנה של $_POST לשלוח לפונקציה ותחליף את ה$_POST במשתנה שבחרת, ותגיד אם עבד לך

ואני רואה השתמשת בשיטה שלי לקבלת סיומת :P

וואלה...תודה רבה....אבל יש עם עוד בעיה...אומנם זה מציג:
Array ( [act] => panel [do] => edit [id] => 40 )

אך הוא לא מציג את השאר...
זה איכשהוא קשור ל2 בדיקות האלא:
PHP קוד:

if(isset($GET['id'])) {
if(
is_int($GET['id'])) { 

אבל מה שמוזר הן תקינות ....אז למה זה לא עובד?

eXtaZa 26-07-06 22:04

אחרי השורה:
PHP קוד:

if(is_int($GET['id'])) { 

ניסית להדפיס סתם משהו? זה מדפיס?


כל הזמנים הם GMT +2. הזמן כעת הוא 17:32.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ