Seite mit PHP aktualisieren

  • Hallo,


    nachdem per Klick auf einen Link folgende Aktionen durchgeführt werden:


    PHP
    <a href=newslist.php?news_ID=<? echo $news['news_ID']?>&action=delete>Löschen</a>


    (Newssystem-Admin)


    möchte ich gerne, dass die Seite sich automatisch aktualisiert, da sonst der Link zu der News nicht aus der Übersicht verschwindet. Habt ihr eine Ahnung, wie ich das da einbauen kann?

  • mh ... hab das so gemacht:


    PHP
    if($action=="delete"){
    header('WWW-Authenticate: Negotiate');
    header('WWW-Authenticate: NTLM', FALSE);
    }


    Passiert aber nichts. Wichtig ist mir vor allem, dass die Seite direkt automatisch nach dem Klick auf den Action-Link aktualisiert wird ...

  • Ich habe ein Guestbook mal geschrieben und da habe ich das so gelöst:



    Also mit der Syntax:

    PHP
    if (löschen)
    {
    ... löschen ...
    header( "location: $PHP_SELF?evtl=andere&Parameter=übergeben" );
    die;
    }


    Also wenn action=delPost und eine ID mitgegeben wurde, dann löscht er diesen Eintrag und kehrt zur gleichen Seite zurück.


    das die; ist wichtig, damit diese Seite sofort abgebrochen wird.


    MfG Florian

  • Re: Seite mit PHP aktualisieren


    Zitat

    Original geschrieben von andone
    möchte ich gerne, dass die Seite sich automatisch aktualisiert, da sonst der Link zu der News nicht aus der Übersicht verschwindet.


    Die einfachste Lösung wäre wohl die SQL-Querys (DELETE ...) zuerst auszuführen und dann mit dem Rendering der Seite beginnen. Dann taucht so ein Problem erst gar nicht auf.


    if($_GET['action'] == 'delete') {
    // hier dann den Post löschen
    }


    // Ab hier erst das Rendering der Page



    Ciao,


    Dominik =)

    :D <plaintext>


  • Das funktioniert allerdings nur, wenn noch nichts an den Browser gesendet wurde. Wenn er - wie ich vermute - die News erst löscht nachdem die erste Ausgabe gestartet wurde, dann hilft ein Redirect per Header-Location nicht viel.


    Also, andone, einfach mal bisschen mehr über dein Code verraten, dann kann Dir sicherlich besser geholfen werden =)

    :D <plaintext>

  • Das setze ich voraus. Ich sage ja noch keine Infos an den Browser vor der Anwendung.


    Meiner Meinung nach sollte PHP und HTML sowieso getrennt werden. Und dann PHP natürlich vor dem Designteil :)


    MfG Florian

  • Also ich hab das jetzt so gelöst:



    Jetzt wird die Seite direkt nach dem Löschen aktualisiert. Nur ist dann meine Übersicht, in der die News stehen, komplett leer und ich muss erst nocheinmal aktualisieren, bis die News da wieder auftauchen.


    Hat das was mit dem Senden von Browserinfos vor der Anwendung zu tun?


    Danke übrigens für eure tatkräftige Hilfe. ^^


    edit


    Ich muss mich korrigieren: Der Inhalt in der Tabelle wird erst wieder angezeigt, wenn ich die URL erneut aufrufe. Also die Liste heißt so:


    http://www..url.de/news/admin/newslist.php


    Und nachdem Löschen wurde folgender Parameter hinzugefügt:


    http://www..url.de/news/admin/…p?news_ID=9&action=delete


    Und erst wenn ich die erste URL wieder aufrufe, wird auch der Inhalt der Newsübersicht wieder korrekt angezeigt.


    Dann ist die Lösung mit dem Aktualisieren vielleicht doch nicht so gut ... kann ich auch direkt eine URL aufrufen lassen?


    PHP
    if($bool==1)
    header("Location: http://www.url.de/news/admin/newslist.php");
    die;
    }


    Das funktioniert nämlich nicht.


    Mittlerweile bin ich mir aber auch ziemlich sicher, dass es einfach nicht funktioniert, weil schon vorher Daten gesendet werden.
    Gibt es noch eine andere Lösung, ohne "Header" ?

  • Nee, du kannst bei PHP nur über den Header z.B. Seiten neu laden lassen.
    Aber im Ernst, wenn du erst die Datenbank bestände löscht und dann erst die Datenbank ausliest, funktioniert das.
    Also ungefähr so


    So funktioniert es 100%, denn die Datenbank liefert PHP ja keine nicht vorhanden Datenbestände!
    EDIT:

    Zitat

    Mittlerweile bin ich mir aber auch ziemlich sicher, dass es einfach nicht funktioniert, weil schon vorher Daten gesendet werden.
    Gibt es noch eine andere Lösung, ohne "Header" ?


    :top: Ganz genau so läuft das! Du darfst vorher keine Ausgaben an den Browser senden! In der Regel kannst du auch eine Seite dazwischen schreiben, die nur den Post löscht, keine Ausgabe hat und dich dann mit header an die news-ausgabe-seite weiterleitet!

  • Mh ... also mit dem von dir angegebenen Code wird die News überhaupt nicht gelöscht. Ich poste euch jetzt wohl langsam mal den gesamten Code der Datei ...


    Also das ist der Bereich der Newsübersicht in newslist.php:


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!