tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
464
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    deadline deadline ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Ort
    Regensburg [Bayern @ Mars]
    Beiträge
    167
    hi,
    ich bin gerade dabei, ein forumscript zu coden. Nun, das ist nicht weiter schlimm. Die Datenbank und Tabellen werden erfolgreich erstellt...
    Nun möchte ich einen User "Admin" eintragen. Ein paar if strukturen verhindern dass der User doppelt eingetragen wird, oder dass die Daten verändert werden.
    Aber das funktioniert nicht. Wenn die Daten vorhanden sind, sollte es eigentlich nicht mehr eingetragen werden. Stattdessen habe ich 20 User namens Admin in der Datenbank. Da ich schon sehr müde war als ich das gecodet habe kann es sein dass ich völligen Mist gebaut habe. Auch nach 5 maligem durchsuchen und neucoden kam ich immer noch nicht drauf was da falsch ist.
    Ich hoffe ihr könnt mir helfen, denn viele Augen sehen bekanntlich mehr als zwei.

    Hier der PHP code:
    PHP-Code:
    <?
    require($_SERVER['DOCUMENT_ROOT']."/i-page/settings/settings.inc.php");
    require(
    $_SERVER['DOCUMENT_ROOT']."/i-page/settings/functions.inc.php");
    //passwort generieren
    $pwd pwd_create();
     
    $connect mysql_connect("localhost");
     
    $string "select * from ".$prfix."i_page_user".$suffix." where `username` = `Admin`";
    $ergebnis mysql_db_query($dbname$string$connect);
    if(
    $ergebnis == true) {
        
    $user_exists true;
        
    $message5 "User Admin ist schon vorhanden und wurde <u>nicht</u> eingetragen";
    }
    else {
         
    $insert "INSERT INTO ".$prfix."i_page_user".$suffix."(username, passwort, locked, rechte)
        values ('Admin', 
    $pwd, 'false', 1)";
        
    $result mysql_db_query($dbname$insert$connect);
        if(
    $result) {
            
    $user_exists true;
            
    $message5 "User Admin war nicht vorhanden und wurde eingetragen";
        }
            else{
                
    $user_exists false;
                
    $message5 "User Admin war nicht vorhanden und wurde nicht eingetragen";
        }
    }
    echo 
    "$message5";
    ?>
    Noch ein Hinweis am schluss:
    Alle Variablen enthalten die richtigen Werte.

    Ich danke allen, die sich zumindest den Text durchgelesen haben =)
    und mir helfen wollen.
    mfg
    Chris
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Code :
    1
    
    `username` = `Admin`
    ....besser so:
    Code :
    1
    
    `username` = 'Admin'
    ...und dann nicht nachschauen, ob die Abfrage erfolgreich(true) ist, sondern ob sie ein Ergebnis geliefert hat(mysql_num_rows())
     

  3. #3
    Y05h1 Y05h1 ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    87
    $connect = mysql_connect("localhost");
    du musst doch auch noch das pw und den benutzernamen angeben oder?
     

  4. #4
    deadline deadline ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Ort
    Regensburg [Bayern @ Mars]
    Beiträge
    167
    ich hab meinen Home PC zu einem Server umgewandelt und ich connecte über localhost ohne passwort und so, da ich es net anders eingestellt habe...
    die verbindung klappt, sonst hätte ich ja nicht 20 gleiche einträge in der Datenbank
    Danke für den Tipp mit dem num_rows...
    ich werds mal ausprobieren
     

  5. #5
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    PHP-Code:
    <?php

        
    require $_SERVER['DOCUMENT_ROOT'].'/i-page/settings/settings.inc.php';
        require 
    $_SERVER['DOCUMENT_ROOT'].'/i-page/settings/functions.inc.php';

        
    $connect mysql_connect('localhost');

        
    $query "
            SELECT
                    1
              FROM
                    `"
    .$prfix."i_page_user".$suffix."`
              WHERE
                    `username` = 'Admin'
            "
    ;
        if( 
    mysql_num_rows(mysql_db_query($dbname$query$connect)) > ) {
            
    $user_exists true;
            
    $message5 'User Admin ist schon vorhanden und wurde <em>nicht</em> eingetragen';
        } else {
            
    $query "
                INSERT INTO
                        `"
    .$prfix."i_page_user".$suffix."` 
                  SET
                        `username` = 'Admin',
                        `passwort` = '"
    .pwd_create()."',
                        `locked`   = 'false',
                        `rechte`   = 1
                "
    ;
            if( !
    $result mysql_db_query($dbname$query$connect) ) {
                
    $user_exists true;
                
    $message5 'User Admin war nicht vorhanden und wurde eingetragen';
            } else {
                
    $user_exists false;
                
    $message5 'User Admin war nicht vorhanden und wurde nicht eingetragen';
            }
        }
        echo 
    $message5;

    ?>
    du musst doch auch noch das pw und den benutzernamen angeben oder?
    Nein, selbst die Angabe des Servers ist optional (siehe mysql_connect()-Funktion).
     

  6. #6
    deadline deadline ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Ort
    Regensburg [Bayern @ Mars]
    Beiträge
    167
    Ihr seid echt klasse... =)
    habs jetzt so gelöst, vielleicht kann jemand anders damit was anfangen:

    PHP-Code:
    $string "select * from ".$prfix."i_page_user".$suffix." where `username` = 'Admin'";
    $ergebnis mysql_db_query($dbname$string$connect);
    $zahl mysql_num_rows($ergebnis);
    if(
    $zahl 1) {
           
    $insert "INSERT INTO ".$prfix."i_page_user".$suffix."(username, passwort, locked, rechte)
           values ('Admin', 
    $pwd, 'false', 1)";
           
    $result mysql_db_query($dbname$insert$connect);
           if(
    $result) {
               
    $message5 "User Admin war nicht Vorhanden und wurde eingetragen";
               
    $user_exists true;
           }
           else {
               
    $user_exists false;
               
    $message5 "User Admin war nicht vorhanden und wurde <u>nicht</u> eingetragen";
           }
    }
    else {
        
    $message5 "User Admin war schon Vorhanden und wurde <u>nicht</u> eingetragen";
    }
    echo 
    $message5
    und es funktioniert einwandfrei
    Danke an alle die mir geholfen haben
    mfg
    chris
     

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 15.07.10, 15:35
  2. Antworten: 6
    Letzter Beitrag: 31.08.08, 17:21
  3. [MYSQL] ausgelesene Daten in andere DB eintragen
    Von Pretorian im Forum Relationale Datenbanksysteme
    Antworten: 17
    Letzter Beitrag: 25.07.08, 19:09
  4. Daten zeitversetzt in MySQL eintragen
    Von Memfis im Forum PHP
    Antworten: 11
    Letzter Beitrag: 02.08.04, 12:02
  5. Daten werden nicht eintragen mysql
    Von Wolf of Doom im Forum PHP
    Antworten: 3
    Letzter Beitrag: 25.03.04, 00:22