Ankündigung

Einklappen
Keine Ankündigung bisher.

Profilbild erstellen

Einklappen

Neue Werbung 2019

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

  • Profilbild erstellen

    Hi zusammen,

    bin dabei bisschen php,html,css usw zu lernen.

    Meine learning by doing Seite ist

    http://hakanhp.de

    __________________________________________________ ________

    Ich habe ein Login erstellt, eine Registration, und eine meinprofil.php Seite.
    Ist alles noch Rohbau aber Funktioniert. Und um diese Ansätze geht es mir auch.

    Jetzt möchte ich bei der Registration den Benutzer die Möglichkeit geben, ein Profilbild hochzuladen. Dieses Profilbild soll dann Automatisch auf die profil.php seite gelangen, wobei ich die Position natürlich mit css bearbeiten werde.


    Im folgenden Code, seht Ihr meine index.php

    PHP-Code:
    <?php
    $verhalten 
    0;
    session_start();
    if(!isset(
    $_SESSION["username"]) and !isset($_GET["page"])) {
    $verhalten 0;
    }
    if(
    $_GET["page"] == "log") {
    /*
    $user = $_POST["user"];
    $passwort = $_POST["passwort"];
    */

    $user strtolower($_POST["user"]);
    $passwort md5 ($_POST["passwort"]);

    $verbindung mysql_connect("""""")
                or die (
    "Fehler im System");

                
    mysql_select_db("")
                or die (
    "Verbidung zur Datenbank war nicht möglich...");

                
    $control 0;
                
    $abfrage "SELECT * FROM login WHERE user = '$user' AND passwort ='$passwort'";
                
    $ergebnis mysql_query($abfrage);
                while(
    $row mysql_fetch_object($ergebnis))
                    {
                        
    $control++;
                    }

    if(
    $control != 0) {
    $_SESSION["username"] = $user;
    $verhalten 1;
    } else {
    $verhalten 2;
    }
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
             <link rel="stylesheet" type="text/css" href="http://hakanhp.de/hakanhp/design.css"/>
            <link href="design.css" type="text/css" rel="stylesheet" media="screen"/>
            <link href="http://hakanhp.de/hakanhp/menu_assets/styles.css" rel="stylesheet" type="text/css"/>

        <title>Login</title>
        <?php
        
    if($verhalten == 1) {
        
    ?>
        <meta http-equiv="refresh" content="2; URL=http://hakanhp.de/hakanhp/start.php"
        <?php
        
    }
        
    ?>


    </head>


    <body>

    <div id="wrapper">

    <div id="header">
        </div>

        <div id="cssmenu">
    <ul>
       <li class='active'><a href='http://hakanhp.de'><span>Anasayfa</span></a></li>
       <li class='last'><a href="#">Bos alan</a></li>
       <li class='has-sub'><a href='#'><span>Bos alan</span></a>
          <ul>
             <li class='has-sub'><a href='#'><span>Bos alan</span></a>
                <ul>
                   <li><a href='#'><span>Bos Alan</span></a></li>
                   <li class='last'><a href='#'><span>Bos alan</span></a></li>
                </ul>
             </li>
             <li class='has-sub'><a href='#'><span>Bos alan</span></a>
                <ul>
                   <li><a href='#'><span>Bos alan</span></a></li>
                   <li class='last'><a href='#'><span>Bos alan</span></a></li>
                </ul>
             </li>
          </ul>
       </li>
       <li><a href='#'><span>Bos alan</span></a></li>
       <li class='last'><a href='#'><span>Bos alan</span></a></li>
    </ul>
    </div>


    <div id="content">

    <div id="content2">


    </div>
    </div>


    <div id="login">
    <?php
    if($verhalten == 0) {
    ?>

    <form method="post" action="index.php?page=log">

        <input type="text" name="user" id="benutzername" /><br />
        <input type="password" name="passwort" id="benutzerpasswort" /><br />
        <input type="submit" id="einloggen" value="Einloggen" />
    </form>

    <?php
    }
    if(
    $verhalten == 1) {
    ?>

    <?php
    }
    if(
    $verhalten == 2) {
    ?>

    <?php
    }
    ?>


    </div>
    <div id="logged">
    <?php
    switch($verhalten) {
    case 
    0:
    echo 
    'Bitte einloggen.<br><a href="register.php">oder Jetzt Registrieren...</a>';
    break;
    case 
    1:
    echo 
    'weiterleitung..';
    break;
    case 
    2:
    echo 
    'falsche daten. <a href="index.php">zurück</a>';
    }
    ?>


    </div>






    <div id="footer">
        </div>
        </div>

    </body>
    </html>
    __________________________________________________ _____

    Es folgt die register.php

    PHP-Code:
    <html>
    </head>
        <title>Registrieren</title>
        <link rel="stylesheet" type="text/css" href="http://hakanhp.de/hakanhp/design.css"/>
            <link href="design.css" type="text/css" rel="stylesheet" media="screen"/>
            <link href="http://hakanhp.de/hakanhp/menu_assets/styles.css" rel="stylesheet" type="text/css"/>
    </head>
    <body>
    <div id="wrapper">
    <div id="header">
        </div>
        <div id="cssmenu">
    <ul>
       <li class='active'><a href='http://hakanhp.de'><span>Anasayfa</span></a></li>
       <li class='last'><a href="#">Bos alan</a></li>
       <li class='has-sub'><a href='#'><span>Bos alan</span></a>
          <ul>
             <li class='has-sub'><a href='#'><span>Bos alan</span></a>
                <ul>
                   <li><a href='#'><span>Bos Alan</span></a></li>
                   <li class='last'><a href='#'><span>Bos alan</span></a></li>
                </ul>
             </li>
             <li class='has-sub'><a href='#'><span>Bos alan</span></a>
                <ul>
                   <li><a href='#'><span>Bos alan</span></a></li>
                   <li class='last'><a href='#'><span>Bos alan</span></a></li>
                </ul>
             </li>
          </ul>
       </li>
       <li><a href='#'><span>Bos alan</span></a></li>
       <li class='last'><a href='#'><span>Bos alan</span></a></li>
    </ul>
    </div>
    <h3>Registrieren</h3>
    <div class="infobox">Die Registrierung ist kostenlos und unverbindlich.
     </div>

    <?php
    if(!isset($_GET["page"])) {
    ?>
        <form action="register.php?page=2" method="post">
        Username:<input type="text" name="user" /><br />
        Passwort:<input type="password" name="pw" /><br />
        Passwort wiedeholen:<input type="password" name="pw2" /><br />
        <input type="submit" value="Senden" />
        </form>
    <?php
    }
    ?>
    <?php
    if(isset($_GET["page"])) {
        if(
    $_GET["page"] == "2") {
        
    $user strtolower($_POST["user"]);
        
    $pw md5($_POST["pw"]);
        
    $pw2 md5($_POST["pw2"]);

        if(
    $pw != $pw2) {
            echo 
    "Deine Passwörter stimmen nicht überein. Bitte wiederhole deine Eingabe....<a href=\"register.php\">zurück</a>";
        } else {
                
    $verbindung mysql_connect("""""")
                or die (
    "Fehler im System");

                
    mysql_select_db("")
                or die (
    "Verbidung zur Datenbank war nicht möglich...");

                
    $control 0;
                
    $abfrage "SELECT user FROM login WHERE user = '$user'";
                
    $ergebnis mysql_query($abfrage);
                while(
    $row mysql_fetch_object($ergebnis))
                    {
                        
    $control++;
                    }
                if(
    $control != 0) {
                    echo 
    "Username schon vergeben. Bitte verwende einen anderen Usernamen....<a href=\"register.php\">zurück</a>";
                } else {
                
    $eintrag "INSERT INTO login
                (user, passwort)

                VALUES
                ('
    $user', '$pw')";

                
    $eintragen mysql_query($eintrag);

                if(
    $eintragen == true) {
                    echo 
    "Vielen Dank. Du hast dich nun registriert...<a href=\"http://hakanhp.de\">Jetzt anmelden</a>";
                } else {
                    echo 
    "Fehler im System. Bitte versuche es später noch einmal...";
                }
                
    mysql_close($verbindung);
                }
        }
        }
    }
    ?>
    <div id="footer">
        </div>
    </div>
    </body>
    </html>
    __________________________________________________

    Es folgt die profil.php

    PHP-Code:
    <?php
    session_start
    ();
    if(isset(
    $_SESSION["username"])) {
    ?>

    <html>
    <head>
            <title>Mein Profil</title>
            <link rel="stylesheet" type="text/css" href="design.css"/>
            <link href="http://hakanhp.de/hakanhp/menu_assets/styles.css" rel="stylesheet" type="text/css"/>
            <link href="design.css" type="text/css" rel="stylesheet" media="screen"/>

    </head>

    <body>

    <div id="wrapper">
        <div id="header">
        </div>


    <div id="cssmenu">
    <ul>
       <li class='active'><a href='http://hakanhp.de/hakanhp/start.php'><span>Anasayfa</span></a></li>
       <li class='last'><a href="/hakanhp/profil.php">Mein Profil</a></li>
       <li class='last'><a href="/hakanhp/logout.php">Ausloggen</a></li>
       <li class='has-sub'><a href='#'><span>Bos alan</span></a>
          <ul>
             <li class='has-sub'><a href='#'><span>Bos alan</span></a>
                <ul>
                   <li><a href='#'><span>Bos Alan</span></a></li>
                   <li class='last'><a href='#'><span>Bos alan</span></a></li>
                </ul>
             </li>
             <li class='has-sub'><a href='#'><span>Bos alan</span></a>
                <ul>
                   <li><a href='#'><span>Bos alan</span></a></li>
                   <li class='last'><a href='#'><span>Bos alan</span></a></li>
                </ul>
             </li>
          </ul>
       </li>
       <li><a href='#'><span>Bos alan</span></a></li>
       <li class='last'><a href='#'><span>Bos alan</span></a></li>
    </ul>
    </div>




    <h1><?php echo $_SESSION["username"]; ?></h1>

    <?php
    } else {
    ?>
    Bitte erst einloggen, <a href="http://hakanhp.de/">hier</a>.
    <?php
    }
    ?>
    Wie sollte die Uploadfunktion eurer Meinung nach ausgeführt werden?
    Das Profilbild wird nur im eigenen Profil angezeigt.
    Sollte man die Bilder auf die Datenbank laden?

    Kennt ihr Gute vorallem sichere Upload Code´s?

  • #2
    http://php.net/manual/de/features.fi...ost-method.php

    Die hochgeladene Datei mithilfe von http://de3.php.net/manual/en/function.getimagesize.php überprüfen.

    Die Datei dann umbenennen (z.B. in den aktuellen Timestamp) und den Dateinamen dann z.B. in die MySQL Tabelle eintragen (in eine extra Spalte "avatar" beispielsweise).

    Im Profil dann einfach eine MySQL Abfrage für die Spalte avatar erstellen und das ganze in einen HTML img Tag packen.

    Übrigens: Du solltest Benutzereingaben UNBEDINGT !IMMER! filtern und überprüfen. Dein Script weist dicke Sicherheitslücken auf. Eine Hilfe dabei ist zum Beispiel mysql_real_escape_string. Am besten du googelst mal SQL-Injections und liest dich ein bisschen in das Thema ein.

    Immer merken: User Eingaben = BÖSE!

    Kommentar


    • #3
      Zitat von Chrisomator Beitrag anzeigen
      http://php.net/manual/de/features.fi...ost-method.php

      Die hochgeladene Datei mithilfe von http://de3.php.net/manual/en/function.getimagesize.php überprüfen.

      Die Datei dann umbenennen (z.B. in den aktuellen Timestamp) und den Dateinamen dann z.B. in die MySQL Tabelle eintragen (in eine extra Spalte "avatar" beispielsweise).

      Im Profil dann einfach eine MySQL Abfrage für die Spalte avatar erstellen und das ganze in einen HTML img Tag packen.

      Übrigens: Du solltest Benutzereingaben UNBEDINGT !IMMER! filtern und überprüfen. Dein Script weist dicke Sicherheitslücken auf. Eine Hilfe dabei ist zum Beispiel mysql_real_escape_string. Am besten du googelst mal SQL-Injections und liest dich ein bisschen in das Thema ein.

      Immer merken: User Eingaben = BÖSE!

      Hilfst du mir dabei anhand meines Codes das injection Problem zu lösen?
      Hab das jetzt schon oft gehört und auch versucht.

      hier mal ein Code, wo ich aber immer ne Fehlermeldung bekomme, weil ich es
      glaube ich zumindest an falscher stelle positioniere.

      PHP-Code:
      if($_GET["page"] == "log"
      {
        
      $verbindung mysql_connect("""" "")
            or die (
      "Fehler im System");


        
      mysql_select_db("")
            or die (
      "Verbidung zur Datenbank war nicht möglich...");

        
      $control 0;

        
      $query "SELECT 
                     count(*) 
                   FROM 
                     `login`
                   WHERE 
                     `user` = '" 
      mysql_real_escape_string($_POST["user"]) . "'
                    AND 
                     `passwort` ='" 
      md5 ($_POST["passwort"]) . "'";
                                  

        
      $result mysql_query($query)
           or die (
      "MySQL-Error: " mysql_error());
           
        
      $control mysql_result($result0);


      mir würde schon reichen wenn man mir den code oben in meinen Orginal code reinsetzen würde.

      Kommentar


      • #4
        Ein Hinweis: MySQL ist veraltet ( deprecated ) mit PHP 5.5. Steig besser früher als zu spät um auf MySQLi oder PDO.
        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

        Kommentar


        • #5
          Zitat von tr0y Beitrag anzeigen
          Ein Hinweis: MySQL ist veraltet ( deprecated ) mit PHP 5.5. Steig besser früher als zu spät um auf MySQLi oder PDO.


          wie und wo funktioniert sowas?

          Kommentar


          • #6
            Guckst du da: http://php.net/manual/de/book.mysqli.php

            Eigentlich ist das weniger Kompliziert als du vermuten wirst. Aufs wesentliche runtergebrochen schreibst du statt mysql_query halt mysqli_query.

            Achte aber auf die Parameter der neuen Funktionen. [man]mysqli_query[/man], [man]mysqli_connect[/man], ...
            [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

            Kommentar


            • #7
              Dein Code ist sehr anfällig für SQL-Injection.
              Es brauch nur jemand als Passwort "' or 1=1" eingeben und schon hat er sich eingeloggt.
              Für alle die es nicht wissen "Ich bin eine Signatur"

              Kommentar


              • #8
                dann ergänzt doch mal bitte die stellen damit das nicht passiert

                Kommentar


                • #9
                  Zitat von capulcu Beitrag anzeigen
                  dann ergänzt doch mal bitte die stellen damit das nicht passiert
                  Nunja, mit SQL-Injection im Detail solltest du dich auseinander setzen. Es sei aber dazu gesagt das du prepared Statements ( nochmal was neues ) deinem jetzigen Query-Model vorziehen könntest. Dann wäre das Thema SQL-Injections gänzlich vom Tisch.

                  P.S.: SQL-Injections wird bei Prepared Statements dahingehend verhindert, da du eingehende Daten im Query mit einem Placeholder ( :feldname ) definierst und sie dann an den query-placeholder bindest ( $stmt->bindValue(':feldname', $_POST['...']) ).
                  [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                  Kommentar


                  • #10
                    Zitat von tr0y Beitrag anzeigen
                    Nunja, mit SQL-Injection im Detail solltest du dich auseinander setzen. Es sei aber dazu gesagt das du prepared Statements ( nochmal was neues ) deinem jetzigen Query-Model vorziehen könntest. Dann wäre das Thema SQL-Injections gänzlich vom Tisch.

                    P.S.: SQL-Injections wird bei Prepared Statements dahingehend verhindert, da du eingehende Daten im Query mit einem Placeholder ( :feldname ) definierst und sie dann an den query-placeholder bindest ( $stmt->bindValue(':feldname', $_POST['...']) ).

                    ok. Bahnhof. danke

                    Kommentar


                    • #11
                      Zitat von capulcu Beitrag anzeigen
                      ok. Bahnhof. danke
                      Ja, für den Anfang etwas schwierig das ganze. Google mal nach dem Begriff "SQL Injection", du wirst da ( wikipedia ) sicher schlüssig fündig. Notwendig ist es aber SQL-Injection zu verhindern, da du sonst eine potentielle Sicherheitslücke in deiner Anwendung / Webseite absichtlich offen lässt.
                      [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                      Kommentar


                      • #12
                        Zu dem Zeitpunkt, zu dem diel2001 gepostet hat (#7), stimmt das, was er/sie gepostet hat, übrigens nicht mehr. Der Code in #3 ist „sicher“ vor Injections.
                        Edit: Okay, Kommando zurück: Ob du die Sache an allen Stellen berichtigt hast, weiß man nicht.

                        Ich hätte um das md5 ($_POST["passwort"]) allerdings auch noch ein mysql_real_escape_string gesetzt (zu „veraltet“ wurde ja alles gesagt). Einfach aus dem Grund, weil ich Überlegungen wie „da braucht es keins, denn md5 liefert nur [0-9a-z]+“ unnötig kompliziert finde. Die Überlegung „alles wird escapet“ ist ausreichend, praktikabel, „zukunftssicher“ und viel einfacher.

                        Es geht bei dem Thema gar nicht mal primär darum, böswillige Angriffe zu verhindern. (Aber das ist das Argument, das zieht.)

                        Es geht – wie bei allen Behandlungen von Kontextwechseln – einfach darum, dass der Code überhaupt mal alle Eingaben korrekt verarbeiten kann.

                        Kommentar


                        • #13
                          Hi, in diesem Beitrag wurde das Thema sql injections angesprochen. kann mir bitte jemand sagen was ich an welchen Teil ändern muss? wenns geht bitte ohne HOCH php sprache, da ich wesentlich Neu bin in der Materi. Danke schonmal


                          PHP-Code:
                          <?php
                          $verhalten 
                          0;
                          session_start();
                          if(!isset(
                          $_SESSION["username"]) and !isset($_GET["page"])) {
                          $verhalten 0;
                          }
                          if(
                          $_GET["page"] == "log") {
                          /*
                          $user = $_POST["user"];
                          $passwort = $_POST["passwort"];
                          */

                          $user strtolower($_POST["user"]);
                          $passwort md5 ($_POST["passwort"]);

                          $verbindung mysql_connect("""""")
                                      or die (
                          "Fehler im System");

                                      
                          mysql_select_db("")
                                      or die (
                          "Verbidung zur Datenbank war nicht möglich...");

                                      
                          $control 0;
                                      
                          $abfrage "SELECT * FROM login WHERE user = '$user' AND passwort ='$passwort'";
                                      
                          $ergebnis mysql_query($abfrage);
                                      while(
                          $row mysql_fetch_object($ergebnis))
                                          {
                                              
                          $control++;
                                          }

                          if(
                          $control != 0) {
                          $_SESSION["username"] = $user;
                          $verhalten 1;
                          } else {
                          $verhalten 2;
                          }
                          }
                          ?>
                          <!DOCTYPE html>
                          <html>
                          <head>
                                   <link rel="stylesheet" type="text/css" href="http://hakanhp.de/hakanhp/design.css"/>
                                  <link href="design.css" type="text/css" rel="stylesheet" media="screen"/>
                                  <link href="http://hakanhp.de/hakanhp/menu_assets/styles.css" rel="stylesheet" type="text/css"/>

                              <title>Login</title>
                              <?php
                              
                          if($verhalten == 1) {
                              
                          ?>
                              <meta http-equiv="refresh" content="2; URL=http://hakanhp.de/hakanhp/start.php"
                              <?php
                              
                          }
                              
                          ?>


                          </head>


                          <body>

                          <div id="wrapper">

                          <div id="header">
                              </div>

                              <div id="cssmenu">
                          <ul>
                             <li class='active'><a href='http://hakanhp.de'><span>Anasayfa</span></a></li>
                             <li class='last'><a href="#">Bos alan</a></li>
                             <li class='has-sub'><a href='#'><span>Bos alan</span></a>
                                <ul>
                                   <li class='has-sub'><a href='#'><span>Bos alan</span></a>
                                      <ul>
                                         <li><a href='#'><span>Bos Alan</span></a></li>
                                         <li class='last'><a href='#'><span>Bos alan</span></a></li>
                                      </ul>
                                   </li>
                                   <li class='has-sub'><a href='#'><span>Bos alan</span></a>
                                      <ul>
                                         <li><a href='#'><span>Bos alan</span></a></li>
                                         <li class='last'><a href='#'><span>Bos alan</span></a></li>
                                      </ul>
                                   </li>
                                </ul>
                             </li>
                             <li><a href='#'><span>Bos alan</span></a></li>
                             <li class='last'><a href='#'><span>Bos alan</span></a></li>
                          </ul>
                          </div>


                          <div id="content">

                          <div id="content2">


                          </div>
                          </div>


                          <div id="login">
                          <?php
                          if($verhalten == 0) {
                          ?>

                          <form method="post" action="index.php?page=log">

                              <input type="text" name="user" id="benutzername" /><br />
                              <input type="password" name="passwort" id="benutzerpasswort" /><br />
                              <input type="submit" id="einloggen" value="Einloggen" />
                          </form>

                          <?php
                          }
                          if(
                          $verhalten == 1) {
                          ?>

                          <?php
                          }
                          if(
                          $verhalten == 2) {
                          ?>

                          <?php
                          }
                          ?>


                          </div>
                          <div id="logged">
                          <?php
                          switch($verhalten) {
                          case 
                          0:
                          echo 
                          'Bitte einloggen.<br><a href="register.php">oder Jetzt Registrieren...</a>';
                          break;
                          case 
                          1:
                          echo 
                          'weiterleitung..';
                          break;
                          case 
                          2:
                          echo 
                          'falsche daten. <a href="index.php">zurück</a>';
                          }
                          ?>


                          </div>






                          <div id="footer">
                              </div>
                              </div>

                          </body>
                          </html

                          Kommentar


                          • #14
                            Hier steht es auch noch mal erklärt: http://phpforum.de/forum/showthread.php?t=231777

                            Kommentar

                            Lädt...
                            X