Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehlermeldung richtig beheben!

Einklappen

Neue Werbung 2019

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

  • Fehlermeldung richtig beheben!

    Hallo ich ahbe folgende Datei admin.php! Wenn ich es im localhost (http://localhost/admin.php) aufrufe, werden mir folgende Melcungen angezeigt.
    Code:
    Notice: Undefined index: action in C:\Dokumente und Einstellungen\Berti\Eigene Dateien\Website\admin.php on line 15
    
    Notice: Undefined index: action in C:\Dokumente und Einstellungen\Berti\Eigene Dateien\Website\admin.php on line 30
    
    Notice: Undefined index: action in C:\Dokumente und Einstellungen\Berti\Eigene Dateien\Website\admin.php on line 47
    Wenn ich dann eine Aktion durchführe sind diese Meldungen weg, aber alle und nicht nur, die Meldung deren Aktion gerade durchgeführt wurde. Was ist da in meinem Script falsch?

    PHP-Code:
    <?php
        
    /**
        *
        * @author       < >
        * @version      1.0
        * @module       Newssystem
        * @copyright    Copyright (c) 2006 by Adalbert Rohr
        */
        
    error_reporting(E_ALL);
        
    // Mögliche Fehler im Scipt ausgeben

        
    include ('inc/config.php');
        
    // Konfigurationsdatei laden

        
    if($_GET['action']=='1' AND $_GET['id']) {
            
    $db mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
            
    mysql_select_db(MYSQL_DATABASE$db) OR die(mysql_error());
            
    // Verbindung zur Datenbank aufbauen

            
    $sql "DELETE FROM
                       bero_news
                   WHERE
                       nw_id = "
    $_GET['id'];

            
    $result mysql_query($sql$db) OR die(mysql_error());
            
    // Datensatz-Ausgabe festlegen
        
    }
        
    // Ein Datensatz soll gelöscht werden

        
    if($_GET['action']=='2' AND $_GET['id']) {
            
    $db mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
            
    mysql_select_db(MYSQL_DATABASE$db) OR die(mysql_error());
            
    // Verbindung zur Datenbank aufbauen

            
    $sql "UPDATE
                       bero_news
                   SET
                       nw_pruef = '1'
                   WHERE
                       nw_id = "
    $_GET['id'];

            
    $result mysql_query($sql$db) OR die(mysql_error());
            
    // Datensatz-Ausgabe festlegen
        
    }
        
    // Ein Datensatz soll freigeschaltet werden

        
    if($_GET['action']=='3' AND $_GET['id']) {
            
    $db mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
            
    mysql_select_db(MYSQL_DATABASE$db) OR die(mysql_error());
            
    // Verbindung zur Datenbank aufbauen

            
    $sql "UPDATE
                       bero_news
                   SET
                       nw_pruef = '-1'
                   WHERE
                       nw_id = "
    $_GET['id'];

            
    $result mysql_query($sql$db) OR die(mysql_error());
            
    // Datensatz-Ausgabe festlegen
        
    }
        
    // Ein Datensatz soll gesperrt werden

        
    $db mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
        
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
        
    // Verbindung zur Datenbank herstellen

        
    $sql "SELECT
                   nw_id,
                   nw_titel,
                   nw_autor,
                   nw_pfad,
                   nw_text,
                   nw_datum,
                   nw_pruef
               FROM
                   bero_news
               ORDER BY
                   nw_id DESC"
    ;

        
    $result mysql_query($sql$db) OR die(mysql_error());
        
    // Datensatz-Ausgabe festlegen

        
    echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n";
        echo 
    "  \"http://www.w3.org/TR/html4/transitional.dtd\">\n";
        echo 
    "<html>\n";
        echo 
    "<head>\n";
        echo 
    "    <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\">\n";
        echo 
    "    <meta name=\"description\" content=\"\">\n";
        echo 
    "    <meta name=\"keywords\" content=\"Berti, Adalbert, Rohr, News, Newssystem\">\n\n";
        echo 
    "    <title>News</title>\n";
        echo 
    "    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/style.css\">\n";
        echo 
    "    <link rel=\"shortcut icon\" href=\"http://www.berti-rohr.de/favicon.ico\">\n";
        echo 
    "    <script src=\"js/scripts.js\" type=\"text/javascript\"></script>\n";
        echo 
    "</head>\n\n";
        echo 
    "<body>\n";
        echo 
    "<div id=\"main\">\n";
        if(
    mysql_num_rows($result)) {
            while(
    $row mysql_fetch_assoc($result)) {
                include(
    'inc/replace.php');
                
    $datum date("d.m.Y @ H:i"strtotime($row['nw_datum']));
                echo 
    "\n";
                echo 
    "<table border=\"0\" cellspacing=\"1\" cellpadding=\"0\" id=\"newseintrag\">\n";
                echo 
    "  <tr>\n";
                echo 
    "    <td id=\"links\" class=\"titel\">[b]‹"$datum ."›[/b] (by "$row['nw_autor'] .")</td>\n";
                echo 
    "    <td class=\"titel\">[b]‹"$row['nw_titel'] ."›[/b]</td>\n";
                echo 
    "  </tr>\n";
                echo 
    "  <tr>\n";
                echo 
    "    <td id=\"links\" class=\"bild\">";
                if(
    $row['nw_pfad']!='') {
                    echo 
    "<img src=\""$row['nw_pfad'] ."\" width=\"120\" height=\"90\" class=\"bild\" alt=\""$row['nw_titel'] ."\">";
                }
                echo 
    "</td>\n";
                echo 
    "    <td class=\"text\">"$text ."</td>\n";
                echo 
    "  </tr>\n";
                echo 
    "  <tr>\n";
                echo 
    "    <td colspan=\"2\">[b]Admin:[/b]\n";
                echo 
    "    <a href=\"edit.php?id="$row['nw_id'] ."\">Editieren</a> -\n";
                if(
    $row['nw_pruef']=='-1') {
                    echo 
    "    <a href=\""$_SERVER['PHP_SELF'] ."?id="$row['nw_id'] ."&action=2\" onClick=\"return Sicherheitsabfrage(this);\">Anzeigen</a> -\n";
                } else {
                    echo 
    "    <a href=\""$_SERVER['PHP_SELF'] ."?id="$row['nw_id'] ."&action=3\" onClick=\"return Sicherheitsabfrage(this);\">Nicht anzeigen</a> -\n";
                }
                echo 
    "    <a href=\""$_SERVER['PHP_SELF'] ."?id="$row['nw_id'] ."&action=1\" onClick=\"return Sicherheitsabfrage(this);\">Löschen</a>\n";
                echo 
    "    </td>\n";
                echo 
    "  </tr>\n";
                echo 
    "</table>\n";
            }
        } else {
            echo 
    "Keine News vorhanden!\n";
        }
        echo 
    "</div>\n";
        echo 
    "</body>\n";
        echo 
    "</html>\n";
    ?>

  • #2
    http://www.google.de/search?hl=de&q=...le-Suche&meta=

    Kommentar


    • #3
      Sorry, aber ich kann mit deinem Link nicht soviel anfangen. ich finde zwar jedemenge seiten, auf denen der Fehler angezeigt wird, aber keine seite, auf der mal beschrieben wird, wie man diesen fehler beheben kann!

      Kommentar


      • #4
        Naja les dir die Fehlermeldung durch. Es ist eben noch nicht dieser Index gesetzt. Und wenn du die Aktion durchführst dann ist eben diese Variable gesetzt! Musst halt prüfen ob die Variable gesetzt ist dann kommt kein Fehler.

        Kommentar


        • #5
          Zitat von winki
          Sorry, aber ich kann mit deinem Link nicht soviel anfangen. ich finde zwar jedemenge seiten, auf denen der Fehler angezeigt wird, aber keine seite, auf der mal beschrieben wird, wie man diesen fehler beheben kann!
          Kannst du nicht lesen??? Der erste Treffer schreibt (sogar in Deutsch):

          Ursache: Das Postarray Element 'var' existiert nicht, vor der Verwendung dieses Elementes sollte die Existenz geprüft werden, z.B. mit isset und empty

          Kommentar


          • #6
            Kurz gesagt: Du musst isset($_GET['action']) noch mit in deine IF-Anweisungen tun.

            Anstatt
            PHP-Code:
                if($_GET['action']=='1' AND $_GET['id']) { 
            musst du
            PHP-Code:
                if(isset($_GET['action']) AND $_GET['action']=='1' AND $_GET['id']) { 
            Das natürlich überall

            Kommentar


            • #7
              Bitte so:
              PHP-Code:
              if( isset( $_GET['id'] ) AND $_GET['action']=='1' 
              Folgendes musst du weglassen:
              PHP-Code:
              AND $_GET['id'

              Kommentar


              • #8
                Dann prüft er allerdings nicht auf die Existenz id. Wofür das notwendig ist, ist mir nicht klar.
                PHP-Code:
                if (isset ($_GET['action']) && isset($_GET['id']) && ($_GET['cation === '1'])) 
                Desweiteren sollten die Abfragen mit elseif anstelle von nachfolgenden ifs verknüpft werden.

                Kommentar


                • #9
                  Stimmt, sorry Schiff. Kommt vom stupiden Copy&Paste bei Fragen die schon 1000 mal da waren und die man nur monoton schnell abarbeitet Oo

                  Zitat von KingCrunch
                  Dann prüft er allerdings nicht auf die Existenz id. Wofür das notwendig ist, ist mir nicht klar.
                  PHP-Code:
                  if (isset ($_GET['action']) && isset($_GET['id']) && ($_GET['cation === '1'])) 
                  Desweiteren sollten die Abfragen mit elseif anstelle von nachfolgenden ifs verknüpft werden.
                  warum schreibst du alles in Klammern -> () ?

                  Ausserdem ist $_GET['cation === '1'] komplett falsch. Nicht nur ein Rechtschreibfehler, sondern auch falscher Vergleich

                  PHP-Code:
                  if(isset($_GET['action'], $_GET['id']) && $_GET['action'] === '1'
                  Tuts auch, und du hast keine 2 isset (bei AND kann man die Zusammenfügen mit Komma-Trennung)

                  MFG

                  Kommentar


                  • #10
                    Ausserdem ist $_GET['cation === '1'] komplett falsch. Nicht nur ein Rechtschreibfehler, sondern auch falscher Vergleich
                    Ja, stimmt, sagst es aber selbst: Ma eben runter gekritzelt

                    Tuts auch, und du hast keine 2 isset (bei AND kann man die Zusammenfügen mit Komma-Trennung)
                    Jo, stimmt, gehört zu Dingen, die ich mir nicht merke, weil selten benötigt Ist wahrscheinlich auf performanter

                    Kommentar

                    Lädt...
                    X