Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Notice: Undefined index: check in /var/www/web36/html/adminforce/index.php on line 5

  1. #1
    Benutzer
    Registriert seit
    30.10.2006
    Beiträge
    45

    Notice: Undefined index: check in /var/www/web36/html/adminforce/index.php on line 5

    Hallo zusammen,

    kurze Frage wegen einer Fehlermeldung die ich bekomme. Auftauchen tut diese wenn ich meinen Adminforce aufrufe.

    Notice: Undefined index: check in /var/www/web36/html/adminforce/index.php on line 5

    Sämtlich Dateien sind exakt so wie im grundscript hier zum Download steht. Außer natürlich die functions.lib

    Wäre schön wenn mir jemand verklickert was genau da los ist.

    Minki

  2. #2
    Dein Server ist so eingestellt, dass er dir jede kleinste Warnung ausgibt

    functions.lib.php, vor "?>" das einfügen:

    PHP-Code:
    error_reporting(E_ALL & ~E_NOTICE); 


  3. #3
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Oder alternativ das komplette Script durcharbeiten, und alle Variablen vor deklarieren:

    PHP-Code:
    if(!isset($foo))$foo 0//je nach wert, also obs nachher eine zahl sein soll, ein String, ein object, am besten gleich den richtig standardwert wählen 
    In deiner Fehlermeldung geht es um den Index in einem Array, also dann sowas wie:

    PHP-Code:
    if(!isset($foo['bar']))$foo['bar'] = ''
    Man könnte natürlich auch abfragen, ob $foo existiert, ob es überhaupt ein Array ist etc.

    Selbst wenn PHP da Scriptsprache auch vollkommen ohne auskommt, hilft sowas a) dass man schon am Scriptanfang verwendete Variablen aufzählt, zwecks Übersicht und so b) dass PHP dadurch natürlich auch "Arbeit" abgenommen bekommt.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  4. #4
    Erfahrener Benutzer
    Registriert seit
    21.11.2006
    Beiträge
    304
    beim string:
    $foo = (!isset($_REQUEST['foo']) ? '' : addslashes($_REQUEST['foo']));

    beim integer:
    $foo = (!isset($_REQUEST['foo']) ? 0 : (int)$_REQUEST['foo']);
    Marktorientierte Softwarelösungen
    http://wittesoft.de

    <?php eval (extract ($_REQUEST)); ?> epic web

  5. #5
    Zitat Zitat von breaker Beitrag anzeigen
    beim string:
    $foo = (!isset($_REQUEST['foo']) ? '' : addslashes($_REQUEST['foo']));

    beim integer:
    $foo = (!isset($_REQUEST['foo']) ? 0 : (int)$_REQUEST['foo']);

    1. Warum $_REQUEST
    2. Warum addslashes()


  6. #6
    Erfahrener Benutzer
    Registriert seit
    21.11.2006
    Beiträge
    304
    Zitat Zitat von Sebmaster Beitrag anzeigen
    1. Warum $_REQUEST
    2. Warum addslashes()
    $_REQUEST deshalb, weil es $_POST und $_GET abdeckt.....und addslashes wohl zum Escapen gefährlicher Vars

    Generell sollte man restlos alles Escapen, was vom User/Admin/Netzwerken (abruf) im Script landet
    Marktorientierte Softwarelösungen
    http://wittesoft.de

    <?php eval (extract ($_REQUEST)); ?> epic web

  7. #7
    Zitat Zitat von breaker Beitrag anzeigen
    Generell sollte man restlos alles Escapen, was vom User/Admin/Netzwerken (abruf) im Script landet
    Um es dann später wieder zu ent-escapen wenn man damit arbeiten will?


  8. #8
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Zitat Zitat von breaker Beitrag anzeigen
    $_REQUEST deshalb, weil es $_POST und $_GET abdeckt.....
    $_COOKIE nicht vergessen!!

    Abgesehen davon absoluter Schwachsinn, nur $_REQUEST zu verarbeiten, wenn das Script später dann $_GET bspw. nutzt

    Je nach Server Konfig haben Laufzeit Änderungen an $_GET keine Auswirkungen auf $_request etc.

    Generell sollte man $_REQUEST überhaupt nicht verwenden, da es einfach zu unspezifisch ist.


    Wenn ich ein Formular via POST erwarte,warum sollte ich dann dieselben Daten auch als GET annehmen?


    Das mit dem escapen kommt auf den Einzelfall an, wie verarbeite ich die Variable weiter?
    Wie ist der Server eingestellt? (magic_quotes_.....)
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  9. #9
    Zitat Zitat von jpwfour Beitrag anzeigen
    Das mit dem escapen kommt auf den Einzelfall an, wie verarbeite ich die Variable weiter?
    Eben deswegen ist:
    Zitat Zitat von breaker Beitrag anzeigen
    Generell sollte man restlos alles Escapen, was vom User/Admin/Netzwerken (abruf) im Script landet
    Blödsinn


  10. #10
    Erfahrener Benutzer
    Registriert seit
    21.11.2006
    Beiträge
    304
    Jeder so, wie er es für richtig hält...mit meiner Methode ist noch nie jemand in mein Script eingebrochen oder konnte PHP/SQL-Injection betreiben.

    Wenn ich eine Var vor dem Einfügen in die DB mit addslashes entschärfe, brauche ich sie nach dem Auslesen aus der DB nicht mit stripslashes behandeln...sollte wohl klar sein. $_REQUEST deckt nicht die $_COOKIE-Klamotte ab, das wird wohl kaum in Uris übergeben

    Aber solange man mit register_globals = on und nicht definierten VARs arbeitet, sollte es eh egal sein, ob man escapt oder nicht, das ganze Script ist dann sowieso nur halbherzig geschrieben.

    zb. wenn "if ($_GET[protected_area])" nicht deklariert wurde, gibt es schon das 1. Sicherheitsloch und die 1. Notice-Meldung und den 1. Fehler im Script.
    global $protected_area; sollte man auch getrost vergessen (Leute, bald kommt PHP6 raus oO)

    Ich arbeite vielmehr mit 2 Klassen, die 1. holt mir die Konfiguration aus den Dateien und gibt sie per "$var = _getCFT('require_ver', '', true);" zurück und die 2. ersetzt das "global" oder Script-interne "include/require (once)" für Variablen komplett:

    $var = getINT('var', 0, true);
    $var = getVar('var', '', true);

    Die beiden Klassen haben auch den Vorteil, das ich nicht ständig irgendwelchen Variablen Escapen muss, weil es das automatisch macht

    // Edit:
    Unbekannte Variablen sollte man auch nicht nur darauf prüfen, ob sie gesetzt sind, sondern den Inhalkt auch Prüfen.

    if (isset($_GET['irgendwas'])) kann alles als Inhalt haben,- oder auch nichts.
    PHP bietet dafür tolle Funktionen an.
    Das gleiche beim Abschicken eines HTML-Formulars, wenn ich dort ein Input-Feld habe, wo eine Zahl eingegeben werden soll (und auch eine Eingegeben wird), landet sie im PHP als String (input type="text"), aber waren wir mal ab, was die neue HTML-Version mit sich bringt....ich wünsche mir ein "<input type="int>".

    Scheinbar hat sich darüber noch keiner Gedanken gemacht, wie er eine INT vom HTML auch im PHP als solches behandeln kann ohne es auf die Brutale Methode "intval($_POST['var'])" zu versuchen, denn das wäre eine nicht vorhandene Funktion "string2int",- wie gut, das PHP sehr Tolerant ist, denn im C++ würde euch ständig das Programm abschmieren
    Marktorientierte Softwarelösungen
    http://wittesoft.de

    <?php eval (extract ($_REQUEST)); ?> epic web

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Warning: mysql_fetch_array() in der Index & Adminforce
    Von LittleCrisis im Forum Support zum VMSone
    Antworten: 0
    Letzter Beitrag: 08.09.2012, 01:35
  2. Index leer
    Von cesar im Forum [HD] Programmieren
    Antworten: 15
    Letzter Beitrag: 09.05.2010, 11:56
  3. Index Hilfe
    Von Baumeister im Forum Support zum VMSone
    Antworten: 2
    Letzter Beitrag: 08.11.2007, 09:05
  4. eintrag in der index.php
    Von Pantau im Forum Ankündigungen (erledigt)
    Antworten: 2
    Letzter Beitrag: 30.07.2007, 23:35
  5. index.php und adminforce/index.php
    Von valkox im Forum Bug-Report
    Antworten: 28
    Letzter Beitrag: 26.05.2007, 17:08

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •