Samuel Vogel: header() Funktion

Hallo,

1. Ich will das wenn eine Datei hochgeladen wurde, also man schon auf ein Button "hochladen" geklickt hat die Seite noch mal neu geladen wird. Damit die Datei dann in der Liste der Dateien auch wiklich angezeigt wird!
Das geht ja mit header(Location: ...) abber wenn man eine weitere Datei hochlädt soll das gleich wieder passieren doch dann kommt der Fehler "headers are already sent by...". Wie kann ich das umgehen?

2. Wie kann ich einer Variable mehrere Werte übergeben (Arry) und die/das ganze Arry an eine andere Seite übergeben (test.php?arry=...)?

Ich hoffe ihr versteht was ich meine.
Danke schon mal für etweige Antworten!

samy,

  1. Hallo Samuel !

    1. Ich will

    Erst mal schlecht. Sage lieber: Ich würde gerne, oder ... ich würde gerne, aber ich kann nicht  ;-)

    das wenn eine Datei hochgeladen wurde, also man schon auf ein Button "hochladen" geklickt hat die Seite noch mal neu geladen wird. Damit die Datei dann in der Liste der Dateien auch wiklich angezeigt wird!

    Also: seite.php mit dem Hochlade-Formular, klich auf submit, diese Seite soll noch mal geladen werden. Dann ist es ja wohl klar, dass die PHP-Verarbeitungsfunktionen für die Hochgeladenen Dateien auch in dieser seite.php stehen müssen. Am Besten prüfst du dann ganz am Anfang der Seite, ob man auf <submit> geklickt hat und verarbeitest die Daten, ansonsten Zeigst du das Formular an.

    Z.B.:

    ...
    <body>
    <h1>Dateien hochladen</h1>

    if($HTTP_POST_VARS["submit"])
     {
      move_uploaded_file($HTTP_POST_FILES[...], verzeichnis/wo/hin) // oder so was ähnliches halt
      // etc ...
      echo "Die Dateien" . hochladeergebnis . " wurden erfolgreich hochgeladen !";
     }
     else
     {
      echo "... dein formular halt ...";
      echo "<input type="submit" value="ab damit">";
     }

    Das geht ja mit header(Location: ...) abber wenn man eine weitere Datei hochlädt soll das gleich wieder passieren doch dann kommt der Fehler "headers are already sent by...". Wie kann ich das umgehen?

    Aha, anscheinend willst du nicht das, was ich dir beschrieben habe. Dein Problem ist es, dass du headers() aufrufst, nachdem du schon was an den Browser gesendet hast.

    echo "hallo";
      headers("location: www.hier.de/umleitung");

    geht also nicht. Es darf vor headers(); noch NICHTS, überhaupt GAR NICHTS ausgegeben werden. Das heißt natürlich nicht, dass du vorher nicht schon die kompliziertesten Funktionen aufrufen kannst, sondern, dass du z.B. per echo() oder print() nichts ausgeben darfst, oder auch nicht html-code vorher ausgeben darfst.

    1. Wie kann ich einer Variable mehrere Werte übergeben (Arry) und die/das ganze Arry an eine andere Seite übergeben (test.php?arry=...)?

    Das Ding heißt "Array", und dein Verfahren ist ziemlich umständlich. Sorry, werde gerade von jemanden Gerufen, hoffe, dass ich schon mal geholfen habe.

    benji

    --
    Soy el pequeño benji :)
    1. Hallo

      1. Ich will
        Erst mal schlecht. Sage lieber: Ich würde gerne, oder ... ich würde gerne, aber ich kann nicht  ;-)

      Werde drauf achten :)

      Danke für die Antwort das mit dem header hab ich einfach nach der Methode von "CueMeX" glößt:

      <head>
        if($action == "reload") {
          echo "<meta ...";
        }
      </head>

      Aber die Methode mit dem zwischne speichern gefällt mir nicht !!!

      Ich würde gerne, aber ich kann nicht   die Array übergeben als anschluss an einen link (test.php?Array=...) !!!

      samy,

  2. Moin....
    Also erstma zum 2ten....
    ich würde die daten zwischen speichern.
    wie du das machst is dir überlassen in einer Textdatei oder in einer Datenbank. Wie du willst...
    Dann zum ersten.
    du könntest das so amchen....

    <html>
    <head>
    [...]
    <?php if(isset($aktion)) { echo "<meta http-equiv="refresh" content="0;URL=gbook.php">";} ?>
    [...]
    </head>
    [...]

    Vielleicht hilft dir das weiter

    MfG
    CueMeX