Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] wie kann man warnings unterdrücken?

Einklappen

Neue Werbung 2019

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

  • [Erledigt] wie kann man warnings unterdrücken?

    hallo,
    wie kann ich session_register mit
    PHP-Code:
    $_SESSION["???"
    ändern
    damit kein warning ausgegeben wird?

    code:
    PHP-Code:
    <?php 
    error_reporting
    (E_ALL E_NOTICE);
    session_start (); 
    $connID mysql_connect ("localhost""root""douggydoug"); 
    @
    mysql_select_db ("loginsystem"$connID); 
    $sql "SELECT * FROM benutzerdaten WHERE (Benutzername like '".$_POST['username']."') AND (Kennwort = '".$_POST['password']."')"
    $result mysql_query ($sql$connID); 
    if (
    mysql_num_rows ($result) > 0) { 
      
    $datenrichtig true
     
      
    $user_eingeloggt true;  
    } else { 
      
    $datenrichtig false
     
      
    $user_eingeloggt false

    session_register ("user_eingeloggt"); 
    ?> 
    <html> 
    <head> 
      <?php if ($datenrichtig) { ?> 
      <meta http-equiv="Refresh" content="2; url=hauptmitarbeiter.php?<?=session_name()?>=<?=session_id()?>"> 
      <?php ?> 
    </head> 
    <body> 
    <?php 
    if ($datenrichtig) {  
      echo 
    "Vielen Dank für’s Einloggen. Sie werden weitergeleitet..."
    } else { 
      echo 
    "Die Daten waren falsch."

    ?> 
    </body> 
    </html>
    gruß
    douggy

  • #2
    Wozu Meldungen unterdrücken? Schreibe sauberen Code, dann musst du gar nicht erst etwas unterdrücken.

    Kommentar


    • #3
      session_register solltest du gar nicht verwenden. das funktioniert nur wenn register_globals on ist und das sollte es nicht sein.

      Kommentar


      • #4
        ok, da ich noch neu auf dem gebiet bin frage ich wie ich das (session_register) umgehen kann.
        wie kann man das im code ändern?

        douggy

        Kommentar


        • #5
          PHP-Code:
          $_SESSION['user_eingeloggt'] = true false

          Kommentar


          • #6
            Und dann noch ein paar Anmerkungen zu
            $sql = "SELECT * FROM benutzerdaten WHERE (Benutzername like '".$_POST['username']."') AND (Kennwort = '".$_POST['password']."')";
            $result = mysql_query ($sql, $connID);
            if (mysql_num_rows ($result) > 0) {
            Du machst mit den Daten aus der Datenbank rein gar nichts, ausser die Anzahl der Datensätze zählen. So wie mysql_query() arbeitet, werden aber -noch bevor das Skript irgendwie weiterarbeitet- sämtliche Datensätze vom MySQL Server in den PHP Prozess übertragen. Bei einem Datensätz mag das verschmerzbar sein, bei vielen kann das aber ein unnötiger Flaschenhals werden. Wenn Du nur zählen willst, benutze die SQl Funktion Count().

            Du verwendest LIKE für den Vergleich des Benutzernamns und = für das Passwort. Vermutlich willst Du die Groß/Kleinschreibung beim Namen ignorieren. a) Warum? b) LIKE hat keinen Einfluss auf auf die Case-sensitivity, das wird über Collations geregelt. Durch das LIKE handelst Du Dir nur das Problem ein, dass ein Angreifer jetzt gleich alle Benutzer auf einmal ausprobieren kann - einfach indem in das Login-Feld % eingetragen wird.

            Ausserdem ist die Abfrage anfällig für sql injections. Mit diesem Code kann man sich ohne Kenntnis eines Benutzernames oder Passwortes anmelden.

            Kommentar


            • #7
              hallo,
              eine frage hätte ich noch...

              wie kann ich mit dem benutzernamen, der in einer login datei eingegeben und dann an diesen code s.o. weiter gegeben wurde, arbeiten?

              hintergrund des ganzen ist das ich gerne wissen möchte wer sich angemeldet hat um ihm dann nur bestimmte bereiche der tabelle anzuzeigen.

              gruß
              douggy

              Kommentar


              • #8
                Das solltest du am besten mit der user_id machen und den User später nicht am Usernamen Identifizieren.

                Aber generell kannst du

                PHP-Code:
                $_SESSION['xxx'] = "blubb"
                machen und schon steht dir $_SESSION['xxx'] in jedem Script auf deinem Server was session_start() benutzt zur Verfügung.

                Kommentar


                • #9
                  danke für den tip...

                  mal was anderes:

                  wie kann ich prüfen was in der 18ten spalte drin ist ohne "$row[18]" zu benutzen? da steht die farbe für den hintergrund. ich möchte dieses aber nicht ausgeben.
                  wie kann man den inhalt einer spalte lesen es aber nicht ausgeben?

                  PHP-Code:
                  if($row[18] == $rot){ 
                                                    echo 
                  "<td nowrap bgcolor=#FF6464 >&nbsp;" $row[$i] . "</td>\n"
                  gruß
                  douggy

                  Kommentar


                  • #10
                    Da waren wir doch schon mal. Auslesen heißt nicht ausgeben. Wenn Du in einer Schleife ausgibst, mußt Du eben diesen Durchlauf überspringen oder die Ausgabe anderweitig verhindern.

                    http://www.php.de/datenbanken/48674-...tml#post376902

                    Kommentar


                    • #11
                      alles klar, habs jetzt...

                      danke für die erinnerung^^

                      gruß

                      Kommentar

                      Lädt...
                      X