DB Eintragen !

Dieses Thema im Forum "Webentwicklung" wurde erstellt von KAROTTE, 12. Juli 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 12. Juli 2006
    Hi also ich brauch folgendes :

    Registrier.php Wo man Nickname,passwort, email und icq eingeben muss !

    Diese einträge werden dann in die DB übertragen ohne md5 verschlüsselung !!!

    und jetzt das problem ich weiß nicht wie der registrier.php code sein soll.

    Diesen befehl habe ich schon in der DB ausgeführt :

    Code:
    CREATE TABLE usereintrag (
     ID TINYINT AUTO_INCREMENT PRIMARY KEY,
     Name VARCHAR(20),
     Password CHAR(32),
     Email VARCHAR(60),
     icq VARCHAR(12)
    );
    
    10er wäre wirklich bei jeder Antwort drin


    //EDIT

    Hab was bei google gefunden !
    Code:
    <?php
    session_start();
    
    require("connect.inc.php");
    ?>
    <?php if(!isset($_POST['submit'])) { ?>
    <form action="<?php $PHP_SELF ?>" method="post">
    <table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
     <tr>
     <td bgcolor="#e7e7e7" align="center" colspan="2">
     <b>Neuen Benutzer anlegen</b>
     </td>
     </tr>
     <tr>
     <td width="170" bgcolor="#e7e7e7">Benutzername</td>
     <td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"<?php if($_POST['username'] != "") { echo ' value="'.$_POST['username'].'"'; } ?> size="20"></td>
     </tr>
     <tr>
     <td width="170" bgcolor="#e7e7e7">Passwort</td>
     <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
     </tr>
     <tr>
     <td width="170" bgcolor="#e7e7e7">Passwort wiederholen</td>
     <td width="230" bgcolor="#ffffff"><input type="password" name="password2" size="20" class="input"></td>
     </tr>
     <tr>
     <td bgcolor="#e7e7e7" align="center" colspan="2">
     <input type="submit" name="submit" value="Benutzer anlegen" class="button">
     </td>
     </tr>
    </table>
    </form>
    <?php
    }elseif(!isset($_POST['username']) || $_POST['username'] == ""){
     echo '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br><a href="neu.php">Zur&uuml;ck</a></p>';
    }elseif(!isset($_POST['password']) || $_POST['password'] == "") {
     echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br><a href="neu.php">Zur&uuml;ck</a></p>';
    }elseif($_POST['password'] != $_POST['password2']) {
     echo '<form action="neu.php" method="post">';
     echo '<p align="center">Die Passw&ouml;rter stimmen nicht &uuml;berein!<br><br>';
     echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
     echo '<input type="submit" name="zurueck" value="Zur&uuml;ck"></p>';
     echo '</form>';
    }else{
     $query = @mysql_query("SELECT user FROM users WHERE user = '".$_POST['username']."'");
     $result = @mysql_fetch_array($query);
     if($_POST['username'] == $result['user']) {
     echo '<p align="center">Sorry, dieser Benutzername ist leider schon vergeben!<br><br><a href="neu.php">Zur&uuml;ck</a></p>';
     die;
     }else{
     $username = $_POST['username'];
     $pass = md5($_POST['password']);
     if($insert = @mysql_query("INSERT INTO users VALUES('','$username','$pass')")) {
     echo '<p align="center">Der neue Benutzer wurde erfolgreich angelegt!<br><br><a href="sichere_seite.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="neu.php">Zur&uuml;ck</a></p>';
     }
     }
    }
    ?> 
    

    Mir kommen gleich neue fragen auf wie muss die connect.inc.php aussehen etwa so :

    Code:
    <?php
    $DB_USER="USERNAME";
    $DB_PASS="DBPASSWORT"; 
    $DB_HOST="localhost"; 
    $DB_NAME="DBNAME";
    ?>
    
    und

    wie muss der Befehl aussehen den ich in der DB ausführen muss ?
     
  2. 12. Juli 2006
    vorschlag:
    (nicht getestet)

    PHP:
    <? include( 'dbconnect.php' ); ?>
    <? 
    if( $_POST [ 'submit' ]){
        
    $msg  "" ;
        
    $result  getdata ( "SELECT * FROM `usereintrag`" );
        while(
    $row = mysql_fetch_array ( $result )) {
            if(
    $row [ 'Name' ] ==  $_POST [ 'Name' ]) {
                
    $msg  .=  'Benutzername schon vorhanden<br>' ;
            }
        }
        if(
    $_POST [ 'PW' ] !=  $_POST [ 'PW2' ]){ $msg  .=  'Passwörter stimmen nicht überein<br>' ;
        if(
    $msg == "" ){
            
    $result  GetData ( "INSERT INTO `usereintrag` (`Name`, `Password`, `Email`, `icq`) VALUES (' $_POST [ Name ] ', ' $_POST [ PW ] ', ' $_POST [ Email ] ', ' $_POST [ icq ] ')" );
        }
    ?>
    <? 
    if( $msg != "" ) {
        echo(
    '<span style="color:#FF0000;">' . $msg . '</span><br>' );
    }
    ?>
    <form action="<?= @ $PHP_SELF ; ?>" method="post" enctype="multipart/form-data">
    Nick:<br /><input type="text" size="20" name="Name" value="<?= @ $_POST [ 'Name' ]; ?>" />
    Passwort:<br /><input type="password" size="20" name="PW" />
    Passwort wiederholen:<br /><input type="password" size="20" name="PW2" />
    Email:<br /><input type="text" size="20" name="Email" value="<?= @ $_POST [ 'Email' ]; ?>" />
    ICQ:<br /><input type="text" size="20" name="icq" value="<?= @ $_POST [ 'icq' ]; ?>" />
    <input type="submit" value="registrieren" name="submit" />
    </form>
    in die datei dbconnect muss folgendes: (nur noch HOST, USER, PASSWORT und DATENBANK entsprechend ändern)
    PHP:
    <?
      function 
    GetData ( $sql ) {
        
    $msgQuery      "query failed" ;                 
        
    $msgConnect    "cannot connect to server" ;
        
    $msgDatabase   "cannot find database" ;

        
    $link  mysql_connect ( "HOST" "USER" "PASSWORT" ) or die( $msgConnect );
        
    mysql_select_db ( "DATENBANK" ) or die ( $msgDatabase );

        
    $result  mysql_query ( $sql $link ) or die ( $msgQuery );
        return 
    $result ;
      }
    ?>
    sollte funktionieren, habs aber wie gesagt nicht getestet...

    wenn fehlermeldungen gibt, bitte diese posten... danke
     
  3. 12. Juli 2006
    Ja ein fehler kommt und zwar dieser hier :

    Code:
    Parse error: syntax error, unexpected $end in /usr/export/www/hosting/hanswurscht/index.php/scripthous/neu.php on line 25
    
    10er haste !
     
  4. 12. Juli 2006
    hrmpf... klammer vergessen

    füg ma zwischen zeile 13 und zeile 14 eine geschlossene geschweifte klammer ein ('}')
     
  5. 12. Juli 2006
    und mache bitte KEINE short-open tags...

    (<? zu <?php machen... bitte bitte bitte: denn <? ist nicht auf jedem server erlaubt und du kannst irgendwann bei einem umzug probleme bekommen und wunderst dich, wieso es nicht mehr klappt!)
     
  6. 12. Juli 2006
    versuche mal damit
    Mysql-Tabelle
    Code:
    CREATE TABLE user (
     ID TINYINT AUTO_INCREMENT PRIMARY KEY,
     username VARCHAR(20),
     password CHAR(32),
     email VARCHAR(60),
     icq VARCHAR(12)
    );
    und hier php
    PHP:
    <? php
    $db
    [ 'host' ] =  "localhost" // oder IP
    $db [ 'user' ] =  "funland" // User
    $db [ 'pass' ] =  "passwort" // Passwort
    $db [ 'base' ] =  "meinedb" // Datenbank Name
    @ mysql_connect ( $db [ 'host' ],  $db [ 'user' ],  $db [ 'pass' ])
        OR die(
    "Keine Verbindung zur Datenbank. Fehlermeldung:" . mysql_error ());
    mysql_select_db ( $db [ 'base' ])
        OR die(
    "Datenbank konnte nicht benutz werden, Fehlermeldung: " . mysql_error ());

    if(isset(
    $_POST [ 'submit' ])) {
        
    $error  "" ;
        
    $name  $_POST [ 'username' ];
        
    $pass_1  $_POST [ 'password' ];
        
    $pass_2  $_POST [ 'password2' ];
        if(empty(
    $name ))  $error  .=  "<li>Sie haben keinen Namen angegeben.</li>" ;
        if(!empty(
    $name )) {
            
    $show  mysql_num_rows ( mysql_query ( "SELECT username FROM user WHERE username = '" . mysql_real_escape_string ( $name ). "'" ));
            if(
    $show  >=  1 ) {
                
    $error  .=  "<li>Sorry, dieser Benutzername ist leider schon vergeben!</li>" ;
            }
        }
        if(empty(
    $pass_1 ))  $error  .=  "<li>Sie haben kein Passwort angegeben.</li>" ;
        if(!empty(
    $pass_1 ) AND empty( $pass_2 ))  $error  .=  "<li>Passwortwiederholung wird benötigt.</li>" ;
        if(!empty(
    $pass_1 ) AND !empty( $pass_2 ) AND  $pass_1  !=  $pass_2 $error  .=  "<li>Passwörter stimmen nicht überein.</li>" ;
        if(empty(
    $error )) {
            
    mysql_query ( "INSERT INTO user(username,password) VALUES('" . mysql_real_escape_string ( $name ). "','" . mysql_real_escape_string ( $pass_1 ). "')" );
            echo 
    "Der neue Benutzer wurde erfolgreich angelegt!" ;
        } else {
            echo 
    "Folgende Fehler sind aufgetretten:<br />
                <ul>"
    . $error . "</ul>
                "
    ;
        }
    } else {
        echo 
    '
            <form action="<?php $PHP_SELF ?>" method="post">
            <table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
                <tr>
                    <td bgcolor="#e7e7e7" align="center" colspan="2">
                    <b>Neuen Benutzer anlegen</b></td>
                </tr>
                <tr>
                    <td width="170" bgcolor="#e7e7e7">Benutzername</td>
                    <td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"<?php if($_POST['
    username '] != "") { echo '  value = "'. $_POST [ 'username'].'"'; } ?> size="20"></td>
                </tr>
                <tr>
                    <td width="170" bgcolor="#e7e7e7">Passwort</td>
                    <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
                </tr>
                <tr>
                    <td width="170" bgcolor="#e7e7e7">Passwort wiederholen</td>
                    <td width="230" bgcolor="#ffffff"><input type="password" name="password2" size="20" class="input"></td>
                </tr>
                <tr>
                    <td bgcolor="#e7e7e7" align="center" colspan="2">
                    <input type="submit" name="submit" value="Benutzer anlegen" class="button"></td>
                </tr>
            </table>
            </form>
        '
    ;
    }
    ?>
     
  7. 12. Juli 2006
    ich mach immer short-tags und hatte bisher auf keinem Server Probleme
    Mein größtes Problem war der Umzug auf einen PHP5-Server, weil da ein fertiges Skript nicht mehr funktionierte (meine eigenen aber schon ^^)
     
  8. 12. Juli 2006
    gut... auf meinem server hättest du probs! hab das ausgeschlaten!
    iss kein guter programmierstil! bist du zu faul oder was?!
     
  9. 12. Juli 2006
    wieso kein guter Programmierstil?
    Es entstehen dadurch weder Sicherheitslücken noch unerwartete Fehler (außer, jemand is so nett, und schaltet es aus ^^)

    Zu faul bin ich auch nicht, habs mir nur angewöhnt
    genauso, wie ich mir angewöhnt habe, in c++ immer geschweifte klammern zu machen, auch wenn die schleife nur eine codezeile enthält (und somit keine klammer notwendig ist)

    Aber ich werd deinen Tipp trotzdem berücksichtigen, da ich plane, auf meiner Seite eigene Skripts zur Verfügung zu stellen. Auf meinem Space mach ich es jedenfalls nicht ^^
    Außer, du nennst mir einen guten Grund, der mich überzeugt (bis auf die etwaigen Server-Inkompatibilitäten)
     
  10. 12. Juli 2006
    Mhhh kA was jetzt los ist tut mir echt leid würde das gern selbst beheben das Prob. aber kanns nicht !

    Hier die Fehlermeldung :

    Code:
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /usr/export/www/hosting/hanswurscht/index.php/scripthous/neu.php on line 44
    
     
  11. 12. Juli 2006
    änder mal zeile 44

    Code:
    <td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"<?php if($_POST['username'] != "") { echo ' value="'.$_POST['username'].'"'; } ?> size="20"></td>
    wie folgt um:
    Code:
    <td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"';if($_POST['username'] != "") { echo ' value="'.$_POST['username'].'"';}echo ' size="20"></td>
    ich hoffe mal, dass ich nix übersehen habe...
     
  12. 12. Juli 2006
    Weil

    in einem echo ' ... ';
    Befehl wieder PHP inkl if() geöffnet wird! ^^


    (
    echo '[...]
    <td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"<?php if($_POST['username'] != "") { echo ' value="'.$_POST['username'].'"

    [...]';
     
  13. 12. Juli 2006
    hast du meine variante probiert ? sollte eigentlich gehen
     
  14. 12. Juli 2006
    deine Variante war es ja, die diesen Fehler verursacht hat
     
  15. 12. Juli 2006
    Komm immer noch ein fehler aber ein andern :

    Code:
    Parse error: syntax error, unexpected $end in /usr/export/www/hosting/hanswurscht/index.php/scripthous/neu.php on line 62
    

    Das Script sieht jetzt so aus .

    Code:
    <?php
    $db['host'] = "localhost"; // oder IP
    $db['user'] = "hanswurscht"; // User
    $db['pass'] = "GIBTSNICHTZUSEHEN"; // Passwort
    $db['base'] = "hanswurscht"; // Datenbank Name
    @mysql_connect($db['host'], $db['user'], $db['pass'])
     OR die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
    mysql_select_db($db['base'])
     OR die("Datenbank konnte nicht benutz werden, Fehlermeldung: ".mysql_error());
    
    if(isset($_POST['submit'])) {
     $error = "";
     $name = $_POST['username'];
     $pass_1 = $_POST['password'];
     $pass_2 = $_POST['password2'];
     if(empty($name)) $error .= "<li>Sie haben keinen Namen angegeben.</li>";
     if(!empty($name)) {
     $show = mysql_num_rows(mysql_query("SELECT username FROM user WHERE username = '".mysql_real_escape_string($name)."'"));
     if($show >= 1) {
     $error .= "<li>Sorry, dieser Benutzername ist leider schon vergeben!</li>";
     }
     }
     if(empty($pass_1)) $error .= "<li>Sie haben kein Passwort angegeben.</li>";
     if(!empty($pass_1) AND empty($pass_2)) $error .= "<li>Passwortwiederholung wird benötigt.</li>";
     if(!empty($pass_1) AND !empty($pass_2) AND $pass_1 != $pass_2) $error .= "<li>Passwörter stimmen nicht überein.</li>";
     if(empty($error)) {
     mysql_query("INSERT INTO user(username,password) VALUES('".mysql_real_escape_string($name)."','".mysql_real_escape_string($pass_1)."')");
     echo "Der neue Benutzer wurde erfolgreich angelegt!";
     } else {
     echo "Folgende Fehler sind aufgetretten:<br />
     <ul>".$error."</ul>
     ";
     }
    } else {
     echo '
     <form action="<?php $PHP_SELF ?>" method="post">
     <table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
     <tr>
     <td bgcolor="#e7e7e7" align="center" colspan="2">
     <b>Neuen Benutzer anlegen</b></td>
     </tr>
     <tr>
     <td width="170" bgcolor="#e7e7e7">Benutzername</td>
     <td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"';if($_POST['username'] != "") { echo ' valuealue="'.$_POST['username'].'"'; } ?> size="20"></td>
     </tr>
     <tr>
     <td width="170" bgcolor="#e7e7e7">Passwort</td>
     <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
     </tr>
     <tr>
     <td width="170" bgcolor="#e7e7e7">Passwort wiederholen</td>
     <td width="230" bgcolor="#ffffff"><input type="password" name="password2" size="20" class="input"></td>
     </tr>
     <tr>
     <td bgcolor="#e7e7e7" align="center" colspan="2">
     <input type="submit" name="submit" value="Benutzer anlegen" class="button"></td>
     </tr>
     </table>
     </form>
     ';
    }
    ?>
    
     
  16. 12. Juli 2006
    änder die zeile 44 nochmal so um, wie ich es oben gepostet hab...
     
  17. 12. Juli 2006
    Alles klar ich kann jetzt schon alles in die Felder eingebn nur wird kein Eintrag in die Datenbank vorgenommen !

    Woran kann das liegen ?
     
  18. 12. Juli 2006
    wird dieser Text ausgegeben, wenn du auf submit klickst?

    Code:
    Der neue Benutzer wurde erfolgreich angelegt!
     
  19. 12. Juli 2006
    Code:
    Error 404 Diese Seite kann nicht gefunden werden
    Das kommt
     
  20. 12. Juli 2006
    das muss jetzt aber funktionieren, habe vergessen aus deinen html-code die php angaben rauszunehmen.
    PHP:
    <? php
    $db
    [ 'host' ] =  "localhost" // oder IP
    $db [ 'user' ] =  "hanswurscht" // User
    $db [ 'pass' ] =  "GIBTSNICHTZUSEHEN" // Passwort
    $db [ 'base' ] =  "hanswurscht" // Datenbank Name
    @ mysql_connect ( $db [ 'host' ],  $db [ 'user' ],  $db [ 'pass' ])
        OR die(
    "Keine Verbindung zur Datenbank. Fehlermeldung:" . mysql_error ());
    mysql_select_db ( $db [ 'base' ])
        OR die(
    "Datenbank konnte nicht benutz werden, Fehlermeldung: " . mysql_error ());

    if(isset(
    $_POST [ 'submit' ])) {
        
    $error  "" ;
        
    $name  $_POST [ 'username' ];
        
    $pass_1  $_POST [ 'password' ];
        
    $pass_2  $_POST [ 'password2' ];
        if(empty(
    $name ))  $error  .=  "<li>Sie haben keinen Namen angegeben.</li>" ;
        if(!empty(
    $name )) {
            
    $show  mysql_num_rows ( mysql_query ( "SELECT username FROM user WHERE username = '" . mysql_real_escape_string ( $name ). "'" ));
            if(
    $show  >=  1 ) {
                
    $error  .=  "<li>Sorry, dieser Benutzername ist leider schon vergeben!</li>" ;
            }
        }
        if(empty(
    $pass_1 ))  $error  .=  "<li>Sie haben kein Passwort angegeben.</li>" ;
        if(!empty(
    $pass_1 ) AND empty( $pass_2 ))  $error  .=  "<li>Passwortwiederholung wird benötigt.</li>" ;
        if(!empty(
    $pass_1 ) AND !empty( $pass_2 ) AND  $pass_1  !=  $pass_2 $error  .=  "<li>Passwörter stimmen nicht überein.</li>" ;
        if(empty(
    $error )) {
            
    mysql_query ( "INSERT INTO user(username,password) VALUES('" . mysql_real_escape_string ( $name ). "','" . mysql_real_escape_string ( $pass_1 ). "')" );
            echo 
    "Der neue Benutzer wurde erfolgreich angelegt!" ;
        } else {
            echo 
    "Folgende Fehler sind aufgetretten:<br />
                <ul>"
    . $error . "</ul>
                "
    ;
        }
    } else {
        echo 
    '
            <form action="'
    . $_SERVER [ 'PHP_SELF' ]. '" method="post">
            <table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
                <tr>
                    <td bgcolor="#e7e7e7" align="center" colspan="2">
                    <b>Neuen Benutzer anlegen</b></td>
                </tr>
                <tr>
                    <td width="170" bgcolor="#e7e7e7">Benutzername</td>
                    <td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input" size="20"></td>
                </tr>
                <tr>
                    <td width="170" bgcolor="#e7e7e7">Passwort</td>
                    <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
                </tr>
                <tr>
                    <td width="170" bgcolor="#e7e7e7">Passwort wiederholen</td>
                    <td width="230" bgcolor="#ffffff"><input type="password" name="password2" size="20" class="input"></td>
                </tr>
                <tr>
                    <td bgcolor="#e7e7e7" align="center" colspan="2">
                    <input type="submit" name="submit" value="Benutzer anlegen" class="button"></td>
                </tr>
            </table>
            </form>
        '
    ;
    }
    ?>
     
  21. 12. Juli 2006
    Jaa Danke hat geklappt 10er sind alle draus DANKE
     
  22. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.