Ergebnis 1 bis 6 von 6
  1. #1
    Bugbear Wurm
    Registriert seit
    30.09.2007
    Beiträge
    260

    Standard Benutzer Bearbeiten

    Hi,

    Also ich spiel gerade einwenig mit PHP rum und habe nun ein kleines Problem, ich möchte gerne in einem Passwort geschützten Bereich einen Link machen - Benutzer Bearbeiten- Soweit so gut habe ich gemacht und habe es auch schon zusammen geschnippselt

    PHP-Code:
    <?php
    }elseif($_POST['password'] != $_POST['password2']) {
        echo 
    '<form action="bearbeiten.php" method="post">';
        echo 
    '<p align="center">Die Passw&ouml;rter stimmen nicht &uuml;berein!<br><br>';
        echo 
    '<input type="submit" name="zurueck" value="Zur&uuml;ck"></p>';
        echo 
    '</form>';
    }else{
            
    $pass md5($_POST['password']);
            
    $email $_POST['email'];
            if(
    $insert = @mysql_query("UPDATE '".$_SESSION['user']."' SET('$pass','$email')")) {
                echo 
    '<p align="center">Benutzer wurde bearbeitet!<br><br><a href="index.php">Zur Admin-Seite</a></p>';
            }else{
                echo 
    '<p align="center">Beim Bearbeiten des neuen Benutzers trat leider ein Fehler auf!<br><br><a href="index.php?page=bearbeiten">Zur&uuml;ck</a></p>';
            }
        }
        function 
    check_emailsyntax($email) {
        if (
    eregi("^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,4}\$",$email)==1) {
            return 
    true;
        }else{
            echo 
    '<p align="center">Bitte geben sie eine Korreckte E-Mail Adresse an</p>';
        }
    }  
    ?>
    nur das Problem ist egal was ich mache er gibt immer den fehler aus
    Code:
    Beim Bearbeiten des neuen Benutzers trat leider ein Fehler auf!
    meine frage was habe ich da falsch gemacht??


    >>>AB DI 23.02.2010 in London bis 05.03.2010<<<

    [b] PHP - Hilfe
    [b] HTML - Hilfe
    [b] MySQL - Hilfe
    [b] Delphi - Hilfe
    [b] Java - Hilfe (Anfänger)

    ~~~~my BM Profil~~~~

    (0|3|0)

  2. #2
    'Alter Hase' Avatar von X21
    Registriert seit
    29.09.2007
    Beiträge
    219

    Standard

    Hau mich wenn ich falsch liege (bin müde) , aber solltest du nicht erstmal die Verbindung zur Datenbank herstellen?

  3. #3
    Bugbear Wurm
    Registriert seit
    30.09.2007
    Beiträge
    260

    Standard

    verbindung wurde weiter oben schon erstellt ist nicht der ganze code sondern nur der bereich der dafür normal zuständig ist in der MYSQL Datenbank den eintrag zu ändern

    mfg


    >>>AB DI 23.02.2010 in London bis 05.03.2010<<<

    [b] PHP - Hilfe
    [b] HTML - Hilfe
    [b] MySQL - Hilfe
    [b] Delphi - Hilfe
    [b] Java - Hilfe (Anfänger)

    ~~~~my BM Profil~~~~

    (0|3|0)

  4. #4
    bomdidengdidengdigigi Avatar von hersch24
    Registriert seit
    09.12.2006
    Beiträge
    985

    Standard

    ganzen source posten
    hallo

  5. #5
    Bugbear Wurm
    Registriert seit
    30.09.2007
    Beiträge
    260

    Standard

    [PHP]
    PHP-Code:
    <?php
    session_start
    ();
    if(!
    session_is_registered('user') || $_SESSION['user'] == "") {
        
    header("location:index.php");
        die;
    }
    require(
    "connect.inc.php");
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
        <title>Neuen Benutzer anlegen</title>
    <link rel="stylesheet" type="text/css" href="style.css"></head>
    <body>
    <?php if(!isset($_POST['submit'])) { ?>
    <form action="<?php $PHP_SELF ?>" method="post">
    <table width="400" bgcolor="#ffffff" border="0" cellpadding="5" cellspacing="1" align="center">
        <tr>
            <td bgcolor="#ffffff" align="center" colspan="2"><strong>Benutzer Bearbeiten </strong></td>
        </tr>
        <tr>
            <td width="170" bgcolor="#ffffff">Benutzername</td>
            <td width="230" bgcolor="#ffffff"><?php echo "<b><em>".$_SESSION['user']."</em></b>"?></td>
        </tr>
        <tr>
            <td width="170" bgcolor="#ffffff">Passwort</td>
            <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
        </tr>
        <tr>
            <td width="170" bgcolor="#ffffff">Passwort wiederholen</td>
            <td width="230" bgcolor="#ffffff"><input type="password" name="password2" size="20" class="input"></td>
        </tr>
        <tr>
          <td bgcolor="#ffffff">E-Mail</td>
          <td bgcolor="#ffffff"><input type="text" name="email" size="20" class="input"></td>
        </tr>
        <tr>
            <td bgcolor="#ffffff" align="center" colspan="2">
            <input type="submit" name="submit" value="Benutzer bearbeiten" class="button">        </td>
        </tr>
    </table>
    </form>
    <?php
    }elseif($_POST['password'] != $_POST['password2']) {
        echo 
    '<form action="bearbeiten.php" method="post">';
        echo 
    '<p align="center">Die Passw&ouml;rter stimmen nicht &uuml;berein!<br><br>';
        echo 
    '<input type="submit" name="zurueck" value="Zur&uuml;ck"></p>';
        echo 
    '</form>';
    }else{
            
    $pass md5($_POST['password']);
            
    $email $_POST['email'];
            if(
    $insert = @mysql_query("UPDATE '".$_SESSION['user']."' SET('$pass','$email')")) {
                echo 
    '<p align="center">Benutzer wurde bearbeitet!<br><br><a href="index.php">Zur Admin-Seite</a></p>';
            }else{
                echo 
    '<p align="center">Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br><br><a href="index.php?page=bearbeiten">Zur&uuml;ck</a></p>';
            }
        }
        function 
    check_emailsyntax($email) {
        if (
    eregi("^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,4}\$",$email)==1) {
            return 
    true;
        }else{
            echo 
    '<p align="center">Bitte geben sie eine Korreckte E-Mail Adresse an</p>';
        }

    ?>
    </body>
    </html>
    das ist der ganze code

    mfg


    >>>AB DI 23.02.2010 in London bis 05.03.2010<<<

    [b] PHP - Hilfe
    [b] HTML - Hilfe
    [b] MySQL - Hilfe
    [b] Delphi - Hilfe
    [b] Java - Hilfe (Anfänger)

    ~~~~my BM Profil~~~~

    (0|3|0)

  6. #6
    Fortgeschrittener
    Registriert seit
    01.03.2008
    Beiträge
    35

    Standard

    Von wegen ganzer Code wo ist den die eingebundene Datei?
    Aber so geht es auch. Dein Fehler ist der query.
    Aber ich hab alles mal ein bisschen kommentiert.

    PHP-Code:
    <?php

        
    // Ich sag es jedem der diese scheiß session Funktion von php bnnutz 
        // baut euch eure eigene Funktion wenn ihr schon die Datenbank nutz.
        
    session_start();
        
        if( !
    session_is_registered('user') || $_SESSION['user'] == ""
        {
            
    header("location:index.php");
            die;
        }
        
    // reuire_once oder willst du die Datei öfter einbinden?
        
    require("connect.inc.php");  
        
    ?>

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
        
            <head>
                <!-- Ich denk es geht um das Bearbeiten von einem vorhandenen User --> 
                <title>Neuen Benutzer anlegen</title>
                <!--
                Du benutzt für alle inputs und submits eine eigene Klasse
                ich frag die warum so viel mühe schreib lieber für Ausnahmenen eine klasse, 
                die du in den Tags angeben kannst anstatt über alle die Klasse anzugeben. 
                // Wird auf alle inputs angewendet
                input { background:#d5d5d5; }
                // Wird auf alle input mit der Klasse input angewendet
                .input { background:#000000; }
                -->        
                <link rel="stylesheet" type="text/css" href="style.css">
                <!-- Meta Zeichenkodierung fehlt -->
            </head>
            
            <body>
                <!-- Man kann auch hier den Code einrücken -->
                <?php if( !isset( $_POST['submit'] ) ) { ?>
                  
                    <form action=" <?php $PHP_SELF ?> " method="post">
                    <!-- Wenn du schon eine CSS Datei angibts dann nutz sie auch und setze nicht noch im HTML Code Attribute.
                         cellpadding="5" cellspacing="1" ist veraltet nutz dafür lieber die css eigenschaften -->
                    <table width="400" bgcolor="#ffffff" border="0" cellpadding="5" cellspacing="1" align="center">
                    <!-- Wo ist den tbody ? leider ist dieser Tag pflicht, weil sonst nur unötige Fehler durch den IE entstehen!
                         Dort sieht die Verarbeitung so aus: table -> thead/tbody/tfooter -> tr -> td     -->
                        <tr>
                            <td bgcolor="#ffffff" align="center" colspan="2"><strong>Benutzer Bearbeiten </strong></td>
                        </tr>
                        <tr>
                            <td width="170" bgcolor="#ffffff">Benutzername</td>
                            <!-- Wemm du schon php und html auf so eine schlechte Art und Weise trennst, 
                                 dann mach es bitte einheitlich und misch nicht noch in einen php tag html -->
                            <td width="230" bgcolor="#ffffff"><b><em><?php echo $_SESSION['user']; ?> </em></b> </td>
                        </tr>
                        <tr>
                            <td width="170" bgcolor="#ffffff">Passwort</td>
                            <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
                        </tr>
                        <tr>
                            <td width="170" bgcolor="#ffffff">Passwort wiederholen</td>
                            <td width="230" bgcolor="#ffffff"><input type="password" name="password2" size="20" class="input"></td>
                        </tr>
                        <tr>
                          <!-- Die eMail soll jedes mal neu angegeben werden?
                               Lade sie lieber aus der Datenbank so brauch man sie nur noch abändern, wenn man es möchte -->
                          <td bgcolor="#ffffff">E-Mail</td>
                          <td bgcolor="#ffffff"><input type="text" name="email" size="20" class="input"></td>
                        </tr>
                        <tr>
                            <td bgcolor="#ffffff" align="center" colspan="2">
                            <input type="submit" name="submit" value="Benutzer bearbeiten" class="button">        </td>
                        </tr>
                     <!-- eof tbody -->   
                    </table>
                    </form>
                <?php
                
    } else if( $_POST['password'] != $_POST['password2'] ) {
                    
                    
    // Viel zu umständlich JS ist heut zu Tage pflicht oder ein simpler link zurück
                    
    echo '<p align="center">Die Passw&ouml;rter stimmen nicht &uuml;berein!<br><br>';
                    echo 
    '<input type="submit" value="Zur&uuml;ck" onclick="javascript:history.back();" />';

                } else {
                   
                    
    // Ah so unübersichtlich , lieber so wie ich es jetzt gemacht habe!
                    // ' wird nur bei Werten benutzen ` das ist das was du meintest
                    // Wo ist den die WHERE abfrage? und wo gibst du den den tabellen refernez an?
                    
    $result mysql_query"UPDATE `users` 
                                            SET `password` = '"
    md5$_POST['password'] ) ."' , 
                                            `email` = '"
    $_POST['email'] ."' 
                                            WHERE `user` = '"
    $_SESSION['user'] ."' ");
                                             
                    
    // Warum seit ihr alle zu faul euch den Fehler anzeigen zu lassen?
                    
    if ( mysql_errno() ) {
                        echo 
    mysql_error();  
                        die(); 
                    }
                    
                    
    // Update auswerten                
                    
    if( $result 
                        echo 
    '<p align="center">Benutzer wurde bearbeitet!<br><br><a href="index.php">Zur Admin-Seite</a></p>';
                    else
                        
    // Und nun? jetzt sind alle Information weg die man eben mühevoll eingegeben hat?  
                        
    echo '<p align="center">Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br><br><a href="index.php?page=bearbeiten">Zur&uuml;ck</a></p>';
                    
                }
                    
                    
                function 
    check_emailsyntax$email 
                {
                    if ( 
    eregi"^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,4}\$" $email ) == 
                        return 
    true;
                    else
                        echo 
    '<p align="center">Bitte geben sie eine Korreckte E-Mail Adresse an</p>';
                    
    // Funktionen sollten immer mit einem return abschließen auch wenn nichts übergeben wird.
                    
    return;
                } 
                
    ?>
            </body>
        </html>
        <!--
        Letztendlich kann ich nur sagen mir gefällt dieses Misch-Masch von Php und Html kein Stück, 
        jedoch für kleinerer Projekte durchaus annehmbar. Mein Rat schau dir lieber Template Kassen an und 
        wenn es nur eine simple replace Funktion für Platzhalter hat ist es schon tausend mal besser als so ein "Dreck".
        Aber wie gesagt für den Anfang durch aus annehmbar. 
        -->
    Ich hab dir noch eine mysql Klasse dran gehängt kannst dir anschauen und damit üben.
    PHP-Code:
    <?php
       
        
    /**
        * @name sql
        * @desc connect to the database
        * @access public
        */
        
    class MySql
        
    {
            

            
    /**
            * @name host
            * @desc get the host addr
            * @access private
            * @var string
            */        
            
    private  $host;               
            
            
            
    /**
            * @name host
            * @desc get the user name
            * @access private
            * @var string
            */        
            
    private  $user;
            
            
            
    /**
            * @name passwort
            * @desc get the passwort
            * @access private
            * @var string
            */        
            
    private  $password;
            
            
            
    /**
            * @name db
            * @desc get the db name
            * @access private
            * @var string
            */        
            
    private  $db
            
            public  
    $praefix;
                                   
            
    /* IDs */
            
    public $link_id  0;
            public 
    $query_id "";
           
              
            
    /**
            * @name __construct
            * @desc 
            * @param string
            * @param string
            * @param string
            * @param string
            * @access public
            * @return bool 
            */
            
    public function __construct$host $user $password $db $praefix )
            {
                try
                {    
                    
    $this -> host $host;
                    
    $this -> user $user;
                    
    $this -> password $password;
                    
    $this -> db $db;
                    
    $this -> praefix $praefix;  
                    
    $this -> connect();
                } catch ( 
    Exception $e ) {
                    echo 
    $e -> getMessage();
                    die();
                } 
                return 
    true;
            }

            
            
    /**
            * @name __destruct
            * @desc destroy everyything
            * @access public
            */
            
    public function __destruct()
            {
                
    mysql_close$this -> link_id );
            }

            
            
    /**
            * @name connect
            * @desc connect to the database
            * @access private 
            * @return bool
            */
            
    private function connect()
            {                                                                                         
                
    $this -> link_id mysql_connect$this -> host$this -> user$this -> password);   
                if ( !
    $this -> link_id ) throw new Exception'Link-ID == false, connect failed' ); 
                if ( !empty( 
    $this -> db ) ) mysql_select_db($this -> db$this -> link_id);
                else throw new 
    Exception'Database was not defined' ); 
                return 
    true;
            }


            
    /**
            * @name query
            * @desc send a query to the database
            * @param string       
            * @param int          [optional]
            * @param int          [optional] 
            * @access public
            * @return string       
            */
            
    public function query$query_string $limit=$offset=)        
            {
                try
                {
                    if(
    $limit!=0$query_string.=" LIMIT $offset$limit";          
                    
    $this -> query_id mysql_query$query_string,$this -> link_id );   
                    if ( !
    $this -> query_id ) throw new Exception$query_string );    
                } catch ( 
    Exception $e ) {    
                    echo 
    '
                    <style lang="text/css">
                    <!--
                    table { margin:30px auto; border:1px solid #666; }
                    thead { background-color:#d4d4d4; }
                    td    { padding:10px; }
                    -->
                    </style>
                   
                   
                    <table rules="all">
                    <thead> 
                        <tr><td colspan="2"> <b> Database error</b></td></tr> 
                    </thead> 
                    <tbody>
                        <tr><td> <b> query:</b></td><td> ' 
    $e -> getMessage() . '</td></tr>
                        <tr><td> <b> mysql error:</b></td><td> ' 
    mysql_error().'</td></tr>
                        <tr><td> <b> location:</b></td><td> ' 
    $e -> getFile().'</td></tr>    
                        <tr><td> <b> mysql error number:</b></td><td> ' 
    mysql_errno().'</td></tr>
                        <tr><td> <b> php version:</b></td><td> ' 
    phpversion().'</td></tr>
                        <tr><td> <b> Date:</b></td><td> ' 
    date('d.m.Y @ H:i').'</td></tr>
                        <tr><td> <b> Script:</b></td><td> ' 
    getenv('REQUEST_URI').'</td></tr>
                        <tr><td> <b> Referer:</b></td><td> ' 
    getenv('HTTP_REFERER').'</td></tr>
                    </tbody>
                    </table>'
    ;
                    die();
                } 
                return 
    $this -> query_id;
            }

        
            
    /**
            * @name fetch_array 
            * @desc fetch a result row as an associative array, a numeric array, or both
            * @param int
            * @access public 
            * @return array
            */
            
    public function fetch_array$result )
            { 
                return 
    mysql_fetch_array$result );
            }


            
    /**
            * @name num_rows 
            * @desc get number of rows in result
            * @param int
            * @access public 
            * @return int
            */        
            
    function num_rows$query_id = -
            {
                if ( 
    $query_id != -$this -> query_id $query_id;
                return 
    mysql_num_rows$this -> query_id );
            }


            
    /**
            * @name affected_rows 
            * @desc get number of affected rows in previous MySQL operation
            * @access public 
            * @return int
            */         
            
    function affected_rows() 
            {
                return 
    mysql_affected_rows$this -> link_id );
            }

          
            
    /**
            * @name num_rows 
            * @desc get the ID generated from the previous INSERT operation
            * @access public 
            * @return int
            */         
            
    function insert_id() 
            {
                return 
    mysql_insert_id$this -> link_id );
            }    

    ?>
    PS: Mich würde interessieren ob du es hinbekommen hast.
    Geändert von Cout (19.01.2009 um 15:49 Uhr)
    Bluber Blub

Stichworte

Berechtigungen

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