tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
241
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Divo1984 Divo1984 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    128
    Ich bin grad echt am verzeifeln. Ich habe folgendes Script

    PHP-Code:
    <?php
    class kunde
    {
        public 
    $kndNr=0;
        public 
    $dbh;
        
        public function 
    __construct(&$dbh)
        {
            if(
    is_object($dbh) && ($dbh instanceof PDO))
                
    $this->dbh=$dbh;
            else
                
    $this->kndNr=time();
            if(isset(
    $_SESSION['kunde']))
            {
                
    $this->kndNr=$_SESSION['kunde'];
            }
        }
        public function 
    __destruct()
        {
            
    #print "Im Deskrutor";
            
    $_SESSION['kunde'] = $this->kndNr;
        }    
        
        public function 
    getKundenNummer()
        {
            return 
    $this->kndNr=$_SESSION['kunde'];
        }
        public function 
    setKundenNummer($kennung$passwort)
        {
            
    $this->kndNr=0;
            
            if(!empty(
    $kennung) && !empty($passwort))
            {
                try 
                {
                    
    $sql="SELECT k_kundennummer
                            FROM ws_kunden
                           WHERE k_kennung=:kennung
                             AND k_passwort=:passwort"
    ;
                    
    $result=$this->dbh->prepare($sql);
                    
    $result->bindParam(':kennung'$kennungPDO::PARAM_STR20);
                    
    $result->bindParam(':passwort'$passwortPDO::PARAM_STR32);
                    
    $result->execute();
                    
                    
    $tmp=$result->fetchAll();
                    if(isset(
    $tmp[0]['k_kundennummer']) && !empty($tmp[0]['k_kundennummer']))
                    {
                        
    $this->kndNr=(integer)$tmp[0]['k_kundennummer'];
                    }
                    
    $_SESSION['kunde']=$this->kndNr;
                    return 
    $this->kndNr;
                } 
                catch (
    Exception $e
                {
                    echo 
    $e->getMessage();
                }
            }
        }
        public function 
    setKundenDaten($daten)
        {
            if(!
    is_array($daten)) return false;
            try 
            {
                
    $sql="INSERT INTO ws_kunden (k_name, k_vorname, k_plz, k_ort, k_strasse, k_email, k_passwort, k_kennung)
                                       VALUES(:name,:vorname,:plz,:ort,:strasse,:email,:passwort,:kennung)"
    ;
                
    $result=$this->dbh->prepare($sql);
                
    $result->bindParam(':name'$daten['name'], PDO::PARAM_STR,30);
                
    $result->bindParam(':vorname'$daten['vorname'], PDO::PARAM_STR,30);
                
    $result->bindParam(':plz'$daten['plz'], PDO::PARAM_STR,6);
                
    $result->bindParam(':ort'$daten['ort'], PDO::PARAM_STR,20);
                
    $result->bindParam(':strasse'$daten['strasse'], PDO::PARAM_STR,30);
                
    $result->bindParam(':email'$daten['email'], PDO::PARAM_STR,30);
                
    $result->bindParam(':passwort'$daten['passwort'], PDO::PARAM_STR,32);
                
    $result->bindParam(':kennung'$daten['kennung'], PDO::PARAM_STR,20);
                
    $result->execute();
                if(
    $result->rowCount()==1)
                {
                    print
    "Datensatz wurde eingetragen";
                    return 
    true;
                }
                else
                    return 
    false;
            }
            catch (
    PDOException $e)
            {
                echo 
    $e->getMessage();
            }
        }

    }
    ?>
    Leider liefert mir dieses, nur den Wert 0 in die Variable kndNr

    WEnn ich oben bei der Definition, den Wert 0 weglassen, setzt er gar nichts

    Kann mir jemand helfen?
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Wenn du was machst liefert es den Wert 0?
    Das ist eine Klasse, die liefert ganz viel versch. Sachen. Dein $this->kndNr wird in dieser eher undurchsichtigen (Code-Komentare währen hilfreich) Klasse mehrfach überschrieben. Also, zeig mal wie du die Klasse instanzierst und was du ausserhalb der Klasse machst um das 0 zu kriegen.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Divo1984 Divo1984 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    128
    Hallo Yaslaw,

    schonmal vielen Dank für dein Posting

    WEnn ich mich anmelde - setzt die Klasse den Wert 0 in die kndNr, das soll aber aus der Datenbank geholt werden - siehe setKundenNummer

    Ich gebe die Daten ein und eigentlich sollte dann der Wert 1 aus der DB geholt werden - denn das ist meine Kundennummer...

    PHP-Code:
    if(isset($_POST['send']))
    {
        
    $art->setKundenNummer($_REQUEST['kennung'], $_REQUEST['passwort']);

    Das wird aufegerufen, wenn die Eingabe vollzogen wurde!
    Angehängte Dateien Angehängte Dateien
    Geändert von Divo1984 (30.01.12 um 14:25 Uhr)
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    if(!empty($kennung) && !empty($passwort))
    Hast du diese 2 Werte mal mit var_dump() geprüft?

    if(isset($tmp[0]['k_kundennummer']) && !empty($tmp[0]['k_kundennummer']))
    Hast du diese 2 Werte mal mit var_dump() geprüft?

    Eines von beiden gibt nicht das zurück was du willst. Ergo nimmt er das 0 das du am Anfang der Methode gesetzt hast

    PS: Ich öffne hier auf der Arbeit keine fremden Zip-Dateien.....
    Divo1984 bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Divo1984 Divo1984 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    128
    Danke Yaslaw, durch dich habe ich den Fehler gefunden! Der lag daran, dass ich das Passwort falsch übergeben habe! Jetzt klappt es einwandfrei!
     

  6. #6
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Diesen Fall solltest du im Code abfangen und eine Meldung ausgeben, damit der USer weiss dass das PW falsch war.

    [PHP] Debuggen mit var_dump()
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 29.11.10, 14:10
  2. Antworten: 9
    Letzter Beitrag: 08.09.10, 19:54
  3. Setup und Bereistellung setzt Abhängigkeiten falsch
    Von Cheesygecko im Forum .NET Café
    Antworten: 2
    Letzter Beitrag: 20.05.10, 09:08
  4. suche jemanden, der mit in e. tcl Script 2 Variablen global setzt
    Von Tinobee im Forum Stellenangebote (unentgeltlich)
    Antworten: 0
    Letzter Beitrag: 06.02.08, 14:48
  5. if für Wert WAHR und FALSCH
    Von platzwart im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 27.07.07, 14:12