Seite 1 von 2

Redirect Weiterleitung -HILFE !!!!-

Verfasst: 02.09.2005 21:05
von nightwalker
Hi, kann mir vielecht jemand helfen ? Ich habe mir ein shop programmiert, soweit habe ich auch alles hinbekommen, ausser diese misst weiterleitung nachdem die user ihre angaben eingetragen haben. ich habe es jetzt so gemacht:
Code:

header('Location: ' . append_sid('shop_bs.'.$phpEx.'&action=buy&item='.$item.'&'));


wenn ich nen echo mache ist der link in ordnung, aber bei der weiterleitung schmeisst er immer das item raus ! Weisst du woran das liegt ? die variable hole ich mit get
Code:

$item=$_GET[item];


mache ich jetzt echo ist alles super:
Code:

shop_bs.php?action=buy&item=1;


benutz ich jetzt den redirect komme ich zu folgender seite:
Code:

http://web6.austria091.server4free.de/a ... 15255ebbc5


d.h. es wird immer die nummer des items rausgeworfen ? Aber warum ? ich versteh es nicht. Bitte helft mir !

Verfasst: 05.09.2005 17:06
von saerdnaer
müsste normalerweise so aussehen:
header('Location: ' . append_sid('shop_bs.'.$phpEx.'?action=buy&item='.$item.'&'));
benutz das nächste mal bitte bbcode zur besseren darstellung; danke!

mfg ah

RE

Verfasst: 06.09.2005 16:50
von nightwalker
Funktioniert auch nicht, die Variable wird nicht in die Adresse importiert, jedenfalls nicht im header Befehl. Beim Echo funktionert es.

Night

Verfasst: 07.09.2005 00:22
von Budman
Da stimmt doch aber was anderes auch nicht, denn er hängt ja die sid auch falsch an. Wenn müsste auf jeden Fall das letzte & raus, damit die Funktion append_sid auch erkennt, dass es hinten angehängt wird. Dieses & macht die Funktion ja selbständig.

Das klärt allerdings auch noch nicht, warum die itemnr nicht übergeben wird? Schonmal geprüft, ob das mit der Nummer auch korrekt übergeben wird?

Code: Alles auswählen

header('Location: ' . append_sid("shop_bs . ' . $phpEx . ' ?action=buy&item=' . $item . ' "));

hi

Verfasst: 08.09.2005 12:51
von nightwalker
Ja, ich hab es schon ausprobiert. habe ja gesagt, wenn ich nen echo mache, sprich echo $item dann geht es ja, nur halt nicht in dem header befehl. ich hatte ja schon daran gedacht, das man vieleicht im header keine variablen benutzen kann, aber er setzt ja auch automatisch das php dahinter.

night

Verfasst: 08.09.2005 13:15
von easygo
Versuchs mal so

Code: Alles auswählen

$header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
header($header_location . append_sid("shop_bs.$phpEx?action=buy&item=" . $item, true));
oder so ?

Code: Alles auswählen

$header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
header($header_location . append_sid("shop_bs.$phpEx?action=buy&item=$item", true));
Manchmal steckt der Teufel im Detail. easy

Re

Verfasst: 09.09.2005 13:34
von nightwalker
Danke erstmal an alle, die mir bis jetzt geantwortet haben, aber es GEHT immernoch NICHT :(

Er bekommt einfach nicht die item nummer

Code: Alles auswählen

http://web6.austria091.server4free.de/aprilia/shop_bs.php?action=buy&item=&sid=78c72a4ae36bf6aaca14cf3fd396c365
Wenn ich aber echo $item mache, dann bekomm ich die 1.

Dateien

Verfasst: 09.09.2005 13:38
von nightwalker
Falls es euch hilft, hier ist die Datei

Code: Alles auswählen

<?php 
define('IN_PHPBB', true); 

$phpbb_root_path = './'; 

include($phpbb_root_path . 'extension.inc'); 

include($phpbb_root_path . 'common.'.$phpEx); 




// 

// Start session management 

// 

$userdata = session_pagestart($user_ip, PAGE_SHOP); 

init_userprefs($userdata); 

// 

// End session management 

// 
$vorname = ( isset($HTTP_POST_VARS['vorname']) ) ? $HTTP_POST_VARS['vorname'] : '';
$name = ( isset($HTTP_POST_VARS['name']) ) ? $HTTP_POST_VARS['name'] : '';
$street = ( isset($HTTP_POST_VARS['street']) ) ? $HTTP_POST_VARS['street'] : '';
$nr = ( isset($HTTP_POST_VARS['nr']) ) ? $HTTP_POST_VARS['nr'] : '';
$plz = ( isset($HTTP_POST_VARS['plz']) ) ? $HTTP_POST_VARS['plz'] : '';
$ort = ( isset($HTTP_POST_VARS['ort']) ) ? $HTTP_POST_VARS['ort'] : '';

$sql = "UPDATE  phpbb_users SET user_vorname = '$vorname',
							    user_name = '$name',
								user_street = '$street', 
								user_nr= '$nr',
								user_plz= '$plz', 
								user_ort = '$ort'
								WHERE user_id = " . $userdata['user_id'];
if( !$db->sql_query($sql) ) 

{ 

message_die(GENERAL_ERROR, 'ERROR ', '', __LINE__, __FILE__, $sql); 

}	

$sql = "SELECT `user_street` FROM `phpbb_users` WHERE `user_id` = " . $userdata['user_id'];
      if ( !($sql1 = $db->sql_query($sql)) )

				    { 
					message_die(GENERAL_ERROR, 'Could not query  from database', '', __LINE__, __FILE__, $sql);
					}
	  $checkstreet = mysql_result($sql1,"user_street");

$item=$_GET[item];
if	( $checkstreet == !NULL){
      $header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: '; 
header($header_location . append_sid("shop_bs.$phpEx?action=buy&item=$item", true));
}
// 
// Generate page 

// 
include($phpbb_root_path . 'includes/page_header.'.$phpEx); 
$page_title = 'Benutzerangaben'; 

$template->set_filenames(array( 

   'body' => 'shop_angaben.tpl') 
); 
echo $item;
	$template->assign_vars(array(
	   'S_ANGABEN_ACTION' => append_sid('shopangaben.php')
   )); 
    
$template->pparse('body'); 
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>

Verfasst: 09.09.2005 17:40
von wartek
Also die Zeile würde ich ändern
$item=$_GET['item'];
Da Du die Variable außer fürs echo nicht brauchst (und echo ist da keine Referenz für den header) kannst Du Dir die Variablendef eigentlich sparen und die Zeile wie folgt versuchen:
header($header_location . append_sid("shop_bs.$phpEx?action=buy&item=' . $_GET['item'] . '", true));
EDIT: Der Vollständigkeit halber solltest Du $item=$_GET[item]; löschen und dann natürlich auch das echo $item; löschen.

wartek

geht auch nicht

Verfasst: 16.09.2005 22:49
von nightwalker
Ach, ich versteh es auch nicht, es geht einfach nicht. normal muss es so gehen, wie ihr es beschrieben habt, aber es hilft alles nichts, ich glaub ich geb es auf. Ich müsste dann einfach für jeden artikel ne if schleife machen, dann würde es gehen. vielen dank an euch alle !

Night