Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] header('Location... innerhalb einer Schleife klappt nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] header('Location... innerhalb einer Schleife klappt nicht

    Hi,

    nach dem Absenden eines Formulars prüfe ich auf $_POST und lasse beim vorhanden sein 2 INSERT Befehle absenden.

    Als letztes soll dann an ein anderes Formular weitergeleitet werden.

    Hier der Code:
    PHP-Code:
    if (!empty($_POST))
    {
        
    INC::sqlDo("INSERT INTO `artikel` (`id`, `titel`, `inaktiv`, `formular_id`) VALUES ($id->value , '$_POST[titel]', 1, '$_POST[verkaufsformular]');");
        

        
    $kat_name mysql_fetch_object(INC::sqlDo"SELECT `tabellen_namen` AS value FROM `artikel-verkaufsformular` WHERE `id` = $_POST[verkaufsformular]));
        
    $kat_name $kat_name->value.'-kat';

        
    $i 0;
        foreach (
    $_POST['kategorie'] as $kat)
        {    
            if (empty(
    $kat))
            { return; }        

            if (
    $i == 0)    
            {
                
    INC::sqlDo("INSERT INTO `$kat_name` (`artikel`, `kategorie`, `type`, `prio`) VALUES ($id->value , '$kat', 'par', '$i');");
            } else {
                
    INC::sqlDo("INSERT INTO `$kat_name` (`artikel`, `kategorie`, `type`, `prio`) VALUES ($id->value , '$kat', 'sub', '$i');");
            }
            
    $i++;
        }

        
    header('Location: /admin/artikel?edit=$id->value');
     

    Der ganze Code seint zu klappen. Ich habe alle Datenbankeinträge drin.
    Nur die Weiterleitung springt nicht an.

    Nehme ich die foreach-Schleife raus, klappt die Weiterleitung.

    Es scheint also nicht an der Programmierung zu liegen, da schleife + weiterleitung in separter Ausführung klappt.
    PHP selbst zeigt auch keinen Fehler.

    Weiß einer, woran es liegen könnte ?

  • #2
    PHP-Code:
    if (empty($kat)) 
     { return; } 
    Hier würde ich mal zuerst suchen. Am besten lässt du dir die Variable mal mit var_dump ausgeben. Eventuell meintest du auch break statt return?

    Davon abgesehen wird die Weiterleitung auch dann nicht wie gewünscht funktionieren, innerhalb von Single-Quotes werden Variablen nicht geparst.
    PHP-Code:
    header('Location: /admin/artikel?edit=$id->value'); 
    Programming PHP

    Kommentar


    • #3
      ah... Danke.

      Break ließ dann die Header-Weiterleitung ausführen.
      Double-Quotes behob dann das nachfolgende Problem

      Danke

      Kommentar


      • #4
        Für sowas am besten immer so schreiben:
        PHP-Code:
        header('Location: /admin/artikel?edit='.$id->value); 
        Dann gibt es definitiv keine Verwirrung (die bei " " auftreten könnte) und man sieht am Syntaxhighlight schon sehr gut was ne Variable ist und was nen reiner Text ist!

        Kommentar

        Lädt...
        X