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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   ניתוב של $_POST (https://hosts.co.il/forums/showthread.php?t=67109)

OrPol 05-09-08 15:30

ניתוב של $_POST
 
יש לי קובץ עם הקוד הבא:
קוד:

global $_POST, $userdata, $userdata2  ;

$page=$_GET['mode'];
$mail=$_GET['mail'];
$error=$_GET['error'];
if($mail == 'sent'){
include('filemail.php?mode=done');
}elseif($mail == 'failed'){
include('filemail.php?mode=failed');
}elseif(empty($page)){
include('file1.php');
}elseif($page == "2" && $error == "wrong"){
include('file2.php?error=wrong');
}elseif($page == "1" && $error == "wrong"){
include('file1.php?error=wrong');
}else{
include('file'.$page.'.php');
}

משיקולי בטחון נעלתי את המקורות הנקראים file(1,2,3,4).php עם HTACCESS.
אז אני מאנקלד אותם בקובץ הראשי file.
כשאני שולח טופס מFILE1 לFILE2 אני כותב באקשיין של הפורם action="file.php?mode=2"
אבל הנתונים הולכים לאיבוד איפהשהו.

יש למישהו מושג איך אני יכול לנתב אותם דרך הקובץ הראשי file ועדיין לגשת אליהם כ$POST?

או שפשוט להכניס למשתמש גבלובלי ולקרוא את המערך מהמשתמש?
עריכה: ^^ לא עובד ^^
תודה!

AlmogBaku 05-09-08 16:33

קצת סדר בדברים
PHP קוד:

global $userdata$userdata2;

$page=$_GET['mode'];
$mail=$_GET['mail'];
$error=$_GET['error'];

if(
$mail == 'sent') {
    include(
'filemail.php?mode=done');
} else if (
$mail == 'failed') {
    include(
'filemail.php?mode=failed');
} else if (empty(
$page)) {
    include(
'file1.php');
} else if (
$page == "2" && $error == "wrong") {
    include(
'file2.php?error=wrong');
} elseif (
$page == "1" && $error == "wrong") {
    include(
'file1.php?error=wrong');
} else {
    include(
"file" $page ".php");


אני רואה שהקוד הבא הוא חלק בפונקציה, האם נסית לקרוא למשתנים $page $main $error מפונקציה אחרת/מחוץ לפונקציה, או שהפוסט עצמו נעלם?

OrPol 05-09-08 16:42

ציטוט:

נכתב במקור על ידי Baku (פרסם 665627)
קצת סדר בדברים
PHP קוד:

global $userdata$userdata2;

$page=$_GET['mode'];
$mail=$_GET['mail'];
$error=$_GET['error'];

if(
$mail == 'sent') {
    include(
'filemail.php?mode=done');
} else if (
$mail == 'failed') {
    include(
'filemail.php?mode=failed');
} else if (empty(
$page)) {
    include(
'file1.php');
} else if (
$page == "2" && $error == "wrong") {
    include(
'file2.php?error=wrong');
} elseif (
$page == "1" && $error == "wrong") {
    include(
'file1.php?error=wrong');
} else {
    include(
"file" $page ".php");


אני רואה שהקוד הבא הוא חלק בפונקציה, האם נסית לקרוא למשתנים $page $main $error מפונקציה אחרת/מחוץ לפונקציה, או שהפוסט עצמו נעלם?

זה העמוד שקורא לכל אחד מארבעת העמודים האחרים.
ניסיתי לקרוא לפוסט, כי הרי אני שולח את הfile1 לקובץ FILE הראשי עם ?mode=2 לדוגמא,
אז הוא אמור לקלוט את הPOST ולהעביר אותו אבל זה לא קורה.
וכן ניסיתי לקרוא להם מפונקצייה אחרת. אבל זה לא אמור לעבוד ישר כשאני קורא להם עם $post? הרי אני מאנקלד אותם לתוך הקובץ הזה שמקבל את הPOST

Kfir.G 08-09-08 09:32

לא התעמקתי בקוד שלך אבל ראיתי שאתה מנסה להשתמש ב$_GET עם include בצורה לא נכונה..
במקום לעשות
PHP קוד:

include "file.php?var=val 

עושים
PHP קוד:

$_GET['var']="val";
include 
"file.php"

מקווה שעזרתי :)

עריכה:
מצטער על ההקפצה לא שמתי לב :P


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

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