Weiterleitung mit header

rollerueckwaerts

Erfahrenes Mitglied
Hallo liebe tutorials.de Gemeinde.

Ich hänge gerade an einer Stelle und versteh nicht ganz was schief läuft.
Ich möchte einen Besucher an eine bestimmte Seite weiterleiten.
An welche weitergeleitet wird entscheid eine IF-Abfrage,
Dabei soll noch eine Zeile in der Datenbank gelöscht werden, nachdem diese überhaupt auf existenz geprüft wurde.


So schaut mein gescribbel aus ;):
PHP:
$site = JRequest::getVar('site');    // in dem Beispiel wird charge ausgelöst

if ($site=="charge") {
  $dbname = "#__wallet_charge";
  $redirectlinkright = Header("Location: index.php?option=com_wallet&message=1");
  $redirectlinkfailed = Header("Location: index.php?option=com_wallet&message=4");
} else if ($site=="old") {
	$dbname = "#__bambam_olde";
  $redirectlinkright = Header("Location: index.php?option=com_lostrommel&todo=myold&message=1");
  $redirectlinkfailed = Header("Location: index.php?option=com_lostrommel&todo=myold&message=2");
}
 
// Schauen ob Eintrag existiert
  $query1 = "SELECT id FROM ".$dbname;
  $query2 = " WHERE userid = '".$userid."' AND id='".$id."'";
  $query = $query1.$query2;
  $db->setQuery($query); 
  $result = $db->loadResult();

// Falls ja löschen
 if (!empty($result)) {

  $query = "DELETE FROM ".$dbname." WHERE id='".$id."' AND userid='".$userid."'";
	$db->setQuery($query); 
	$result = $db->query();
  
print($redirectlinkright);
} else {
print($redirectlinkffailed);

}}
Das Problem ist, die entsprechenden Zeilen werden mit dem DELETE erfolgreich gelöscht. Bis dahin funktionierts.
Leider leiter er dann immer auf $redirectlinkfailed, obwohl doch alles gut ging.

Woran kann das liegen ?

Hoffe jemand schubst mich in die richtige Richtung.


Greetz
Tobi
 
Zuletzt bearbeitet:
PHP ist keine funktionale Programmiersprache in dem Sinne, dass du Funktionen als Werte speichern kannst. Du kannst also nicht die Funktionsaufrufe vorher in Variablen speichern und dann aufrufen.

Du kannst aber die Parameter des Funktionsaufrufs speichern und dann verwenden:
PHP:
if ($site=="charge") {
    $dbname = "#__wallet_charge";
    $redirectlinkright = "index.php?option=com_wallet&message=1";
    $redirectlinkfailed = "index.php?option=com_wallet&message=4";
} else if ($site=="old") {
    $dbname = "#__bambam_olde";
    $redirectlinkright = "index.php?option=com_lostrommel&todo=myold&message=1";
    $redirectlinkfailed = "index.php?option=com_lostrommel&todo=myold&message=2";
}
// […]
if (!empty($result)) {
    $query = "DELETE FROM ".$dbname." WHERE id='".$id."' AND userid='".$userid."'";
    $db->setQuery($query); 
    $result = $db->query();
    header("Location: ".$redirectlinkright);
} else {
    header("Location: ".$redirectlinkffailed);
}
 
Zurück