php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen
Alt 16.07.2013, 14:27  
Neuer Benutzer
 
Registriert seit: 16.07.2013
Beiträge: 11
PHP-Kenntnisse:
Anfänger
capulcu befindet sich auf einem aufstrebenden Ast
Standard 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?
capulcu ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.07.2013, 14:36  
Neuer Benutzer
 
Registriert seit: 13.08.2012
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
Chrisomator befindet sich auf einem aufstrebenden Ast
Standard

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!
Chrisomator ist offline   Mit Zitat antworten
Alt 16.07.2013, 14:41  
Neuer Benutzer
 
Registriert seit: 16.07.2013
Beiträge: 11
PHP-Kenntnisse:
Anfänger
capulcu befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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.
capulcu ist offline   Mit Zitat antworten
Alt 16.07.2013, 15:19  
Erfahrener Benutzer
 
Registriert seit: 26.07.2010
Beiträge: 10.748
PHP-Kenntnisse:
Fortgeschritten
tr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehen
Standard

Ein Hinweis: MySQL ist veraltet ( deprecated ) mit PHP 5.5. Steig besser früher als zu spät um auf MySQLi oder PDO.
__________________
PHP.de - Baud (→α) - PHP.de Repo - Bookmarks
Will code for gifts | BDD | HeForShe
tr0y ist offline   Mit Zitat antworten
Alt 16.07.2013, 15:25  
Neuer Benutzer
 
Registriert seit: 16.07.2013
Beiträge: 11
PHP-Kenntnisse:
Anfänger
capulcu befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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?
capulcu ist offline   Mit Zitat antworten
Alt 16.07.2013, 15:32  
Erfahrener Benutzer
 
Registriert seit: 26.07.2010
Beiträge: 10.748
PHP-Kenntnisse:
Fortgeschritten
tr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehen
Standard

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. mysqli_query, mysqli_connect, ...
__________________
PHP.de - Baud (→α) - PHP.de Repo - Bookmarks
Will code for gifts | BDD | HeForShe
tr0y ist offline   Mit Zitat antworten
Alt 16.07.2013, 15:34  
Benutzer
 
Registriert seit: 16.07.2013
Beiträge: 40
PHP-Kenntnisse:
Fortgeschritten
diel2001 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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.
diel2001 ist offline   Mit Zitat antworten
Alt 16.07.2013, 16:31  
Neuer Benutzer
 
Registriert seit: 16.07.2013
Beiträge: 11
PHP-Kenntnisse:
Anfänger
capulcu befindet sich auf einem aufstrebenden Ast
Standard

dann ergänzt doch mal bitte die stellen damit das nicht passiert
capulcu ist offline   Mit Zitat antworten
Alt 16.07.2013, 16:49  
Erfahrener Benutzer
 
Registriert seit: 26.07.2010
Beiträge: 10.748
PHP-Kenntnisse:
Fortgeschritten
tr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehen
Standard

Zitat:
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['...']) ).
__________________
PHP.de - Baud (→α) - PHP.de Repo - Bookmarks
Will code for gifts | BDD | HeForShe
tr0y ist offline   Mit Zitat antworten
Alt 16.07.2013, 17:11  
Neuer Benutzer
 
Registriert seit: 16.07.2013
Beiträge: 11
PHP-Kenntnisse:
Anfänger
capulcu befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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
capulcu ist offline   Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Liste beliebter Bücher erstellen hubba Gewerblich 5 23.06.2013 21:36
User soll Unterseite erstellen können!? chickenburner PHP Einsteiger 9 01.04.2012 17:00
Mit PHP eine Tabelle erstellen JamieFraser PHP Einsteiger 6 10.03.2011 14:40
Signed XML erstellen, kompatibel zu .NET Igotcha PHP Tipps 2010 3 06.11.2010 02:09
[Erledigt] Mysql - Query dynamisch erstellen - String zusammenfügen zoom PHP Tipps 2010 12 19.10.2010 13:50
Websiteteile vom User erstellen lassen magni PHP Tipps 2009 4 15.12.2009 11:17
Kleinen PHP Script "Bannerrotation" aus MySQL-Datenbank erstellen... ispvip PHP Tipps 2009 2 03.11.2009 09:01
PHP Ordner erstellen mit bestimmten Namen matzee PHP Tipps 2009 13 04.09.2009 11:45
[Erledigt] jpeg erstellen aus textstring erstellen Psydl PHP Tipps 2009 16 07.07.2009 18:54
[Erledigt] foreach schleife beim erstellen einer image_map schlägt fehl litterauspirna PHP Tipps 2009 8 25.05.2009 13:04
dta/dtaus-Datei mit Hilfe von PHP erstellen BartTheDevil89 PHP Tipps 2009 4 06.01.2009 14:25
[Erledigt] darf keine Datenbank erstellen in phpMyAdmin Datenbanken 2 20.10.2005 19:32
Stammbaum erstellen Riot PHP Tipps 2005 17 13.05.2005 16:32
Ordner erstellen und Datei uploaden Juuro PHP Tipps 2005 6 20.01.2005 21:18
Ordner per Skript erstellen --> Rechte Problem PHP Tipps 2004 2 06.07.2004 14:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
profilbild erstellen, profilbilder erstellen, <head profile= \\> bild erstellen, css profilbild, php login und register profilbild

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum