Ankündigung

Einklappen
Keine Ankündigung bisher.

history.back

Einklappen

Neue Werbung 2019

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

  • history.back

    Hallo zusammen!

    Ich hab ein Formular, mit dem man Datensätze einfügen kann.
    Das ganze funktioniert auch so wie es soll.

    Das Problem ist aber, dass sobald man auf speichern klickt, die Seite nach dem Neuladen wieder zurückversetzt werden soll (damit man bei mehreren Eingaben nicht mehr alles einzeln eingeben muss).

    Das mache ich so:
    Code:
    ?><script language="javascript">history.back();</script><?
    Das wäre jetzt aber NOCH kein Problem wenn der User alles korrekt eingeben würde...
    Bevor ich die Daten nämlich in die Datenbank einfüge überprüfe ich nämlich was der User eingegeben hat, und wenn er ein wichtiges Feld nicht ausgefüllt hat, dann bekommt er eine Fehlermeldung.
    Etwa so:
    Code:
    <?
    echo "<font color='red'>Vorname fehlt!</font>
    ";
    ?>
    Wenn der User jetzt seinen Vornamen eingibt und nochmal auf speichern klickt wird (sofern die anderen Felder auch korrekt ausgefüllt sind) der Eintrag gespeichert.

    ABER: da dann ein history.back folgt sieht er die Felhlermeldung noch immer!

    Was ich suche ist also entweder A:
    eine alternative zu history.back()
    oder B:
    etwas womit ich die Felhermeldungen trotz history.back wieder verschwindern lassen kann.

    Weiß jemand wie ich das realisieren kann?

    Vielen Dank im Vorraus für jede Antwort!


  • #2
    history.back() ruft doch nur eine Seite auf

    PHP-Code:
    <?php
    if (alles korrekt) {
      
    header("Location: zurück.php");
    } else {
      
    hierbleiben();
    }
    ?>

    Kommentar


    • #3
      ?
      (machst du da nicht das gleiche wie ich? abgesehen davon dass ich javascript benutzt hab)

      Es funktioniert ja eigentlich. Wenn man alles korrekt eingibt bekommt man sowieso keine Fehlermeldungen zu sehen.
      Wenn man was falsch eingibt bekommt man eine Fehlermeldung.

      ABER: Wenn man NACHDEM man was falsch eingegeben hat, das richtige eingibt ist alles korrekt und der Datensatz wird erstellt. Der User SIEHT aber wieder die Fehlermeldung. (weil ja die vorherige Seite angezeigt wird)

      Wie kann ich also die vorherige Seite anzeigen UND die Fehlermeldung eleminieren?

      Kommentar


      • #4
        Kein history.back() verwenden, da die Seite dann aus dem Cache geholt wird (zumindest meistens) und da steht nunmal schon die Fehlermeldung, weil sie ja Teil des Quellcodes ist.

        Kommentar


        • #5
          Stimmt!

          Jetzt hab ich aber noch eine Frage dazu (verwende header() eigentlich nicht ):

          Ich bekomme jetzt die Warung:
          Warning: Cannot modify header information - headers already sent by (output started at ... stylesheet.css ...

          Klar, ich kann die Warnung einfach unterdrücken
          Code:
          error_reporting(0);
          aber ich möchte das wenn möglich doch lieber auf korrektem Weg lösen.

          Nur wie?

          Kommentar


          • #6
            Benutz mal die Suche, speziell zu dieser Fehlermeldung gabs in den letzten Tagen mehrere Threads.

            Kommentar


            • #7
              Vor dem Header darf keine Ausgabe sein. Kein echo, print, usw.
              Achte auch darauf dass du nichts includest dass schon ne Ausgabe beinhaltet.

              Kommentar


              • #8
                In der Suche steht nur x-mal, dass man vor header nichts ausgeben darf... das hilft mir aber auch nicht weiter...

                Hm, ich hab den Stylesheet jetzt via index.php eingebunden:

                Code:
                <link href="includes/stylesheet.css" rel="stylesheet" type="text/css">
                Leider bekomm ich noch immer eine Warnung, diesmal wegen der Datei include_javascript.php

                Kann ich die auch via index.php so wie den Stylesheet einbinden (kann aus der Datei auch eine .js-Datei machen) ?
                Wenn ja, wie?

                Kommentar


                • #9
                  Zitat von seeker
                  In der Suche steht nur x-mal, dass man vor header nichts ausgeben darf... das hilft mir aber auch nicht weiter...
                  Wieso - das ist die Lösung für diese Fehlermeldung! Was verstehst du daran nicht?
                  Du darfst NICHTS mit ?>html <code> oder sonstwas <?php, mit print oder echo an den Browser schicken BEVOR du die Funktion header() aufrufst.

                  Das schlimmste an euch Anfängern ist echt nicht eure Fragerei, sondern der Faulheit ein Problem selbständig (obwohl Hilfe da ist) zu lösen.

                  Handelt doch mal wie im richtigen Leben oder seid ihr da auch so bekloppt?

                  Kommentar


                  • #10
                    Ich weiß ja eh, dass ich IN DIESEM Script nichts vor den header setzen darf!

                    Aber in der index.php muss das doch gehen, schließlich hab ich es ja mit der stylesheet-Datei auch geschafft, geht es NUR mit stylesheet-Dateien oder kann ich javascript-Dateien so auch reinkriegen?

                    Kommentar


                    • #11
                      Zitat von seeker
                      Ich weiß ja eh, dass ich IN DIESEM Script nichts vor den header setzen darf!
                      [..] so auch reinkriegen?
                      Nein, IN JEDEM.
                      Was heißt "so reinkriegen". Beispeil Code?

                      Kommentar


                      • #12
                        Und warum hab ich das dann mit dem stylesheet geschafft?

                        index.php
                        Code:
                        	require('includes/include_funktionen.php');
                        	require('includes/german.php');
                        	
                        ?>
                        <!DOCtype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
                        <html>
                        	<head>
                        	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                        	<meta content="MSHTML 6.00.2900.2722" name="GENERATOR">
                        	<title><?= TITLE ?></title>
                        	<link href="includes/stylesheet.css" rel="stylesheet" type="text/css">
                        	</head>
                        	<body>
                        <?
                        Aber mit der Javascript-Datei funktioniert das einfach nicht...
                        Weiß jemand wie man eine Javascript-Datei hier einbinden kann?

                        Kommentar


                        • #13
                          <script language="javascript" type="text/javascript" src="meineJavascriptdatei.js"></script>

                          Oder was meinst du?

                          Kommentar


                          • #14
                            Ja genau! Genau das war's was ich gesucht hab!
                            Funktioniert einwandfrei!
                            DANKE!

                            Kommentar

                            Lädt...
                            X