Ergebnis 1 bis 5 von 5

Thema: Skript für Userdaten ändern

  1. #1
    HTML Newbie Avatar von Emily1992
    Registriert seit
    29.07.2012
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Frage Skript für Userdaten ändern

    Hallo Ich habe ein Usersystem mit Registrierung, Login, Logout und Profil erstellt. Das alles funktioniert wunderbar aber ich wollte nun das die User auch ihre Daten ändern können.

    Wenn ich mein Skript anwende und auf einen Button klicke nachdem ich etwas geändert hab, passiert garnix. Die Seite lädt nicht und aktualisiert sich nicht... Auch in der Datenbank ändert sich nichts.

    Ich bitte um Hilfe

    EDIT: Avatare hochladen funktioniert.

    Hier ist der Code
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>Unbenanntes Dokument</title> 
    <link href="style_2012.css" rel="stylesheet" type="text/css" /> 
    </head> 
    
    <body> 
    <?php 
        error_reporting(E_ALL); 
          include("config.php"); 
    
        session_start(); 
    
        if(!isset($_SESSION['UserID'])) { 
             echo "Sie sind nicht eingeloggt.<br><br>\n". 
                  "Bitte zuerst einloggen!<img src=\"icons/lock_open.png\">\n"; 
        } 
        else{ 
            // Avatar hochladen 
            if(isset($_POST['submit']) AND $_POST['submit'] == "Avatar hochladen") { 
                $errors = array(); 
                // Uploadfehler pr&uuml;fen 
                switch ($_FILES['pic']['error']){ 
                    case 1: $errors[] = "Bitte w&auml;hlen Sie eine Datei aus, die kleiner als 20 KB ist."; 
                                        break; 
                    case 2: $errors[] = "Bitte w&auml;hlen Sie eine Datei aus, die kleiner als 20 KB ist."; 
                                        break; 
                    case 3: $errors[] = "Die Datei wurde nur teilweise hochgeladen."; 
                                        break; 
                    case 4: $errors[] = "Es wurde keine Datei ausgew&auml;hlt."; 
                                        break; 
                    default : break; 
                } 
                // Pr&uuml;fen, ob eine Grafikdatei vorliegt 
                if(!@getimagesize($_FILES['pic']['tmp_name'])) 
                    $errors[] = "Deine Datei ist keine g&uuml;ltige Grafikdatei."; 
                else { 
                    // Mime-Typ pr&uuml;fen 
                    $erlaubte_typen = array('image/pjpeg', 
                                            'image/jpeg', 
                                            'image/gif', 
                                            'image/png' 
                                           ); 
                    if(!in_array($_FILES['pic']['type'], $erlaubte_typen)) 
                        $errors[] = "Der Mime-Typ deiner Datei ist verboten."; 
    
                    // Endung pr&uuml;fen 
                    $erlaubte_endungen = array('jpeg', 
                                               'jpg', 
                                               'gif', 
                                               'png' 
                                              ); 
                    // Endung ermitteln 
                    $endung = strtolower(substr($_FILES['pic']['name'], strrpos($_FILES['pic']['name'], '.')+1)); 
                        if(!in_array($endung, $erlaubte_endungen)) 
                            $errors[] = "Die Dateiendung muss .jpeg .jpg .gif oder .png lauten"; 
    
                    // Ausmaße pr&uuml;fen 
                    $size = getimagesize($_FILES['pic']['tmp_name']); 
                        if ($size[0] > 100 OR $size[1] > 100) 
                            $errors[] = "Die Datei darf maximal 100 Pixel breit und 100 Pixel hoch sein."; 
                } 
                // Dateigröße pr&uuml;fen 
                if($_FILES['pic']['size'] > 0.2*1024*1024) 
                    $errors[] = "Bitte w&auml;hle eine Datei aus, die kleiner als 20 KB ist."; 
    
                if(count($errors)){ 
                    echo "Dein Avatar konnte nicht gespeichert werden.<br>\n". 
                         "<br>\n"; 
                    foreach($errors as $error) 
                        echo $error."<br>\n"; 
                    echo "<br>\n". 
                         "Zur&uuml;ck zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n"; 
                } 
                else { 
                    // Bild auf dem Server speichern 
                    $uploaddir = 'avatare/'; 
                    // neuen Bildname erstellen 
                    $Name = "IMG_".substr(microtime(),-8).".".$endung; 
                    if (move_uploaded_file($_FILES['pic']['tmp_name'], $uploaddir.$Name)) { 
                        $sql = "UPDATE 
                                        User 
                                SET 
                                        Avatar = '".mysql_real_escape_string(trim($Name))."' 
                                WHERE 
                                        ID = ".$_SESSION['UserID']." 
                               "; 
                        mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); 
    
                        echo "Dein Avatar wurde erfolgreich gespeichert.<br>\n". 
                             "Zur&uuml;ck zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n"; 
                    } 
                    else { 
                        echo "Es trat ein Fehler auf, bitte versuche es sp&auml;ter erneut.<br>\n". 
                             "Zur&uuml;ck zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n"; 
                    } 
                } 
            } 
            // Avatar löschen 
            elseif(isset($_POST['submit']) AND $_POST['submit'] == 'Avatar löschen'){ 
                // Bildname des Avatars aus der Datenbank holen 
                $sql = "SELECT 
                            Avatar 
                        FROM 
                            User 
                        WHERE 
                            ID = '".$_SESSION['UserID']."' 
                       "; 
                $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); 
                $row = mysql_fetch_assoc($result); 
                // Datei löschen 
                unlink('avatare/'.$row['Avatar']); 
                // Bildname des Avatars als leeren String setzen 
                $sql = "UPDATE 
                            User 
                        SET 
                            Avatar = '' 
                        WHERE 
                            ID = '".$_SESSION['UserID']."' 
                       "; 
                mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); 
                echo "Dein Avatar wurde erfolgreich gel&ouml;scht.<br>\n". 
                     "Zur&uuml;ck zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n"; 
            } 
            // Daten ändern 
            elseif(isset($_POST['submit']) AND $_POST['submit']=='Daten ändern'){ 
                // Fehlerarray anlegen 
                $errors = array(); 
                // Pr&uuml;fen, ob alle Formularfelder vorhanden sind 
                if(!isset($_POST['Email'], 
                          $_POST['Show_Email'], 
                          $_POST['Homepage'])) 
                    // Ein Element im Fehlerarray hinzuf&uuml;gen 
                    $errors = "Bitte benutz das Formular aus deinem Profil"; 
                else{ 
                    $emails = array(); 
                    $sql = "SELECT 
                                   Email 
                            FROM 
                                   User 
                           "; 
                    $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); 
                    while($row = mysql_fetch_assoc($result)) 
                        $emails[] = $row['Email']; 
                    // momentane Email-Adresse ausfiltern 
                    $sql = "SELECT 
                                   Email 
                            FROM 
                                   User 
                            WHERE 
                                   ID = '".mysql_real_escape_string($_SESSION['UserID'])."' 
                           "; 
                    $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); 
                    $row = mysql_fetch_assoc($result); 
    
                    if(trim($_POST['Email'])=='') 
                        $errors[]= "Bitte gib deine Email-Adresse ein."; 
                    elseif(!preg_match('§^[\w\._-]+@[\w\._-]+\.[\w]{2,4}$§', trim($_POST['Email']))) 
                        $errors[]= "Deine Email Adresse hat eine falsche Syntax."; 
                    elseif(in_array(trim($_POST['Email']), $emails) AND trim($_POST['Email'])!= $row['Email']) 
                        $errors[]= "Diese Email-Adresse ist bereits vergeben."; 
                    } 
                    if(count($errors)){ 
                        echo "Deine Daten konnten nicht bearbeitet werden.<br>\n". 
                             "<br>\n"; 
                        foreach($errors as $error) 
                            echo $error."<br>\n"; 
                        echo "<br>\n". 
                             "Zur&uuml;ck zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n"; 
                    } 
                    else{ 
                    $sql = "UPDATE 
                                    User 
                            SET 
                                    Email =  '".mysql_real_escape_string(trim($_POST['Email']))."', 
                                    Show_Email = '".mysql_real_escape_string(trim($_POST['Show_Email']))."', 
    
                                    Homepage = '".mysql_real_escape_string(trim($_POST['Homepage']))."' 
    
                            WHERE 
                                    ID = '".mysql_real_escape_string($_SESSION['UserID'])."' 
                           ";    
                    mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
                    echo "Deine Daten wurden erfolgreich gespeichert.<br>\n". 
                         "Zur&uuml;ck zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n"; 
                } 
            } 
            // Passwort &auml;ndern 
            elseif(isset($_POST['submit']) AND $_POST['submit'] == 'Passwort &auml;ndern') { 
                $errors=array(); 
                // Altes Passwort zum Vergleich aus der Datenbank holen 
                $sql = "SELECT 
                            Passwort 
                        FROM 
                            User 
                        WHERE 
                            ID = '".$_SESSION['UserID']."' 
                       "; 
                $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); 
                $row = mysql_fetch_assoc($result); 
                if(!isset($_POST['Passwort'], 
                          $_POST['Passwortwiederholung'], 
                          $_POST['Altes_Passwort'])) 
                    $errors[]= "Bitte benutz das Formular aus deinem Profil."; 
                else { 
                    if(trim($_POST['Passwort'])=="") 
                        $errors[]= "Bitte gib dein Passwort ein."; 
                    elseif(strlen(trim($_POST['Passwort'])) < 6) 
                        $errors[]= "Dein Passwort muss mindestens 6 Zeichen lang sein."; 
                    if(trim($_POST['Passwortwiederholung'])=="") 
                        $errors[]= "Bitte wiederhole dein Passwort."; 
                    elseif(trim($_POST['Passwort']) != trim($_POST['Passwortwiederholung'])) 
                        $errors[]= "Deine Passwortwiederholung war nicht korrekt."; 
                    // Kontrolle des alten Passworts 
                    if(trim($row['Passwort']) != md5(trim($_POST['Altes_Passwort']))) 
                        $errors[]= "Dein altes Passwort ist nicht korrekt."; 
                } 
                if(count($errors)){ 
                    echo "Dein Passwort konnte nicht gespeichert werden.<br>\n". 
                         "<br>\n"; 
                     foreach($errors as $error) 
                         echo $error."<br>\n"; 
                     echo "<br>\n". 
                          "Zur&uuml;ck zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n"; 
                } 
                else{ 
                    $sql = "UPDATE 
                                    User 
                            SET 
                                    Passwort ='".md5(trim($_POST['Passwort']))."' 
                            WHERE 
                                    ID = '".$_SESSION['UserID']."' 
                           "; 
                    mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
                    echo "Dein Passwort wurde erfolgreich gespeichert.<br>\n". 
                         "Zur&uuml;ck zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n"; 
                } 
            } 
            else {    
                $sql = "SELECT 
                             Nickname, 
                             Email, 
                             Show_Email, 
                             Lieblingsfarbe, 
                             Homepage, 
                             Avatar 
                         FROM 
                             User 
                         WHERE 
                             ID = '".mysql_real_escape_string($_SESSION['UserID'])."' 
                        "; 
                $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); 
                $row = mysql_fetch_assoc($result); 
              echo "<h1>Daten &auml;ndern</h1>"; 
                echo "<form ". 
                     " name=\"Daten\" ". 
                     " action=\"".$_SERVER['PHP_SELF']."\" ". 
                     " method=\"post\" ". 
                     " accept-charset=\"ISO-8859-1\">\n"; 
                echo "<table width=\"300\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"3\"><tr><td><div style=\"text-align: right;\">Nickname:</div>\n</td><td><div style=\"text-align: left;\">"; 
                echo htmlentities($row['Nickname'], ENT_QUOTES)."</div></td></tr>\n"; 
                echo "<tr><td><div style=\"text-align: right;\">Email-Adresse:</div></td>\n"; 
                echo "<td><div style=\"text-align: left;\"><input type=\"text\" class=\"input\" name=\"Email\" maxlength=\"70\" value=\"".htmlentities($row['Email'], ENT_QUOTES)."\"></div></td></tr>\n"; 
                echo "<tr><td><div style=\"text-align: right;\">Email-Adresse anzeigen:</div></td><td><div style=\"text-align: left;\">\n"; 
                if($row['Show_Email']==1){ 
                    echo "<input type=\"radio\" name=\"Show_Email\" value=\"1\" checked> ja\n"; 
                    echo "<input type=\"radio\" name=\"Show_Email\" value=\"0\"> nein\n"; 
                } 
                else{ 
                    echo "<input type=\"radio\" name=\"Show_Email\" value=\"1\"> ja\n"; 
                    echo "<input type=\"radio\" name=\"Show_Email\" value=\"0\" checked> nein\n</div></td></tr>"; 
                } 
    
                echo "<tr><td><div style=\"text-align: right;\">Homepage:</div></td>\n"; 
                echo "<td><div style=\"text-align: left;\"><input type=\"text\" class=\"input\" name=\"Homepage\" maxlength=\"70\" value=\"".htmlentities($row['Homepage'], ENT_QUOTES)."\">\n</div></td>"; 
                echo "<tr><td><div style=\"text-align: right;\">Lieblingsfarbe:</div>\n</td><td><div style=\"text-align: left;\">"; 
                echo htmlentities($row['Lieblingsfarbe'], ENT_QUOTES)."</div></td></tr></table>\n";  
                echo "<input class=\"button\" type=\"submit\" name=\"submit\" value=\"Daten ändern\">\n"; 
                echo "</form><br><hr>\n"; 
    
                // Passwort 
                echo "<form ". 
                     " name=\"Passwort\" ". 
                     " action=\"".$_SERVER['PHP_SELF']."\" ". 
                     " method=\"post\" ". 
                     " accept-charset=\"ISO-8859-1\">\n"; 
                echo "<span style=\"font-weight:bold;\" ". 
                     " title=\"min.6\">\n". 
                     "Altes Passwort :\n". 
                     "</span>\n"; 
                echo "<input type=\"password\" name=\"Altes_Passwort\">\n"; 
                echo "<br>\n"; 
                echo "<span style=\"font-weight:bold;\" ". 
                     " title=\"min.6\">\n". 
                     "Neues Passwort :\n". 
                     "</span>\n"; 
                echo "<input type=\"password\" name=\"Passwort\">\n"; 
                echo "<br>\n"; 
                echo "<span style=\"font-weight:bold;\" ". 
                     " title=\"min.6\">\n". 
                     "Neues Passwort wiederholen:\n". 
                     "</span>\n"; 
                echo "<input type=\"password\" name=\"Passwortwiederholung\">\n"; 
                echo "<br>\n"; 
                echo "<input type=\"submit\" name=\"submit\" value=\"Passwort &auml;ndern\">\n"; 
                echo "</form>\n"; 
    
                // Avatar 
                echo "<form ". 
                     " name=\"Avatar\" ". 
                     " action=\"".$_SERVER['PHP_SELF']."\" ". 
                     " method=\"post\" ". 
                     " enctype=\"multipart/form-data\" ". 
                     " accept-charset=\"ISO-8859-1\">\n"; 
                echo "<span style=\"font-weight:bold;\" ". 
                     " title=\"max. 20kb\nmax 150x150 Pixel\n .jpg .gif oder .png\">\n". 
                     "Avatar :\n". 
                     "</span>\n"; 
                if($row['Avatar']=='') 
                    echo "Kein Avatar vorhanden.\n"; 
                else 
                    echo "<img src=\"avatare/".htmlentities($row['Avatar'], ENT_QUOTES)."\">\n"; 
                if($row['Avatar']=='') { 
                    echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".(0.02*1024*1024)."\">"; 
                    echo "<input name=\"pic\" type=\"file\">\n"; 
                    echo "<input type=\"submit\" name=\"submit\" value=\"Avatar hochladen\">\n"; 
                } 
                else 
                    echo "<input type=\"submit\" name=\"submit\" value=\"Avatar löschen\">\n"; 
                echo "</form>\n"; 
            } 
        } 
    ?> 
    </body> 
    </html>

    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von Emily1992 (15.08.2012 um 16:07 Uhr)

  2. #2
    Bandit
    Gast

    Standard AW: Skript für Userdaten ändern

    Ähm, ich würde sagen, du solltest mal in den HTML-Code, den deiner Browser bekommt, reinsehen, ich schätze mal, da hat sich eine Fehlermeldung eingeschlichen. Dein session_start() steht nach einem HTML-Code und das darf nicht sein.

  3. #3
    HTML Newbie
    Themenstarter
    Avatar von Emily1992
    Registriert seit
    29.07.2012
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Skript für Userdaten ändern

    Danke für deine Antwort, ich hab das geändert aber leider bleibt der Fehler

  4. #4
    Bandit
    Gast

    Standard AW: Skript für Userdaten ändern

    Dann hilft wohl nur:
    Richtig debuggen


    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.



    Und noch ein Hinweis: $_SERVER['PHP_SELF'] ist böse!! Füttere mal google mit $_SERVER['PHP_SELF'] xss

  5. #5
    Bandit
    Gast

    Standard AW: Skript für Userdaten ändern

    <edit>Sorry, sollte hier nicht rein, bitte löschen</edit>

Ähnliche Themen

  1. PHP-Script, das die Userdaten bei der Registrieriung in eine Datenbank speichert
    Von [C]arp[h]unter im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 11.03.2011, 16:37
  2. PHP-Skript zum ändern der Userdaten
    Von Unregistriert im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 27.09.2010, 23:06
  3. Userdaten ausgeben
    Von Guest im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 19.11.2006, 11:55
  4. Userdaten in mysql-db speichern!?
    Von derchris im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 31.10.2006, 16:50
  5. userdaten aus datenbank laden [DRINGEND]
    Von im Forum Webanwendungen - Webapplikationen
    Antworten: 1
    Letzter Beitrag: 14.06.2006, 18:15

Stichworte

Berechtigungen

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