Leider wieder ein Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Leider wieder ein Problem

    Hallo Leute,

    so nun habe ich das mit den Sessions einigermassen kapiert
    und es klappt auch so weit, jedoch habe ich nun noch ein kleine
    Problem.

    Mein Script :
    PHP-Code:
    // Session festlegen ( wird aus dem Usernamen generiert )
    $session md5($plz);

    // Zufallspasswort festlegen
    $ret '';
    $chars    'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $char_num strlen($chars)-1;
    $rand rand($_min,$_max);
    for (
    $i=0$i<$rand; ++$i) {
    $passwort $chars[rand(0,$char_num)];

    // Userdaten werden in die Datenbank geschrieben
    $sql ="INSERT INTO user (Id, Username, Kennwort, Firma, Vorname, Nachname, Strasse, Plz, Ort, Email, Status) values ('', '$username', '$passwort', '$firma', '$vorname','$nachname','$strasse','$plz','$ort','$email')";
    mysql_query($sql$db) or die(mysql_error());
    mysql_affected_rows() ."";

    // Anmeldemail wird an den User geschickt
    $text.= "Sie wurden für den Mitgliederbereich bei ".$title." angemeldet.";
    $text.= "Ihre Zugangsdaten lauten<br>";
    $text.= "Username : ".$username."<br>";
    $text.= "Passwort : ".$passwort."<br><br>";
    $text.= "Einloggen können Sie sich auf <a href=".$url.">".$url."</a><br><br>";
    $text.= "Ihr $title Team";

    $empfaenger "$email";
    $betreff "Ihre Anmeldung bei $title";
    $headers "Content-Type: text/html\n";
    $headers .= "Content-Transfer-Encoding: 8bit\n";
    $headers .= "From: $title\n";
    $headers .= "Reply-To: $admin_mail\n";

    mail($empfaenger$betreff$text$headers);

    echo 
    "<br>";
    echo 
    "<center>Wir haben Ihnen ein Mail geschickt mit einem Link um Ihren Zugang freizuschalten.<br>Rufen Sie bitte Ihre eMails ab und klicken Sie auf den Link.<ul>";
    echo 
    "</ul></center>";

    Jedoch bekomme ich eine leere Ausgabe und wenn ich eine Variabel wie
    z.B. echo $nachname rein packe wird dieser auch korrekt angezeigt.

    An was kann das liegen ?

    Danke und Gruss Ela

  • #2
    so hallo,

    also der erste hinweis wäre ma .. die for schleife bei der berechnung des passworts :

    PHP-Code:
    for ($i=0$i<$rand; ++$i) {
    $passwort $chars[rand(0,$char_num)]; 
    sollte doch eher
    PHP-Code:
    for ($i=0$i<$rand; ++$i
    $passwort $chars[rand(0,$char_num)]; 
    so aussehen. wichtig ist die fehlende offene geschweifte klammer nach dem for-ausdruck. dann kannst du dir imo auch die geschweifte klammer ganz am schluss des snippets sparen.

    das is auf jeden fall was das mir aufgefallen is, vielleicht hilfts weiter.

    moritz

    Kommentar


    • #3
      Danke Deine Idee habe ich umgesetzt, bekomme aber nun folgende Fehlermeldung : Column count doesn't match value count at row 1

      Gruss und Danke Ela

      Kommentar


      • #4
        So habe den Code nun wie folgt geändert :
        PHP-Code:
         $ret '';
         
        $chars    'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
         
        $char_num strlen($chars)-1;
         
        $rand rand(6,10);
         for (
        $i=0$i<$rand; ++$i)
         
        $ret.= $chars[rand(0,$char_num)];

        // Userdaten werden in die Datenbank geschrieben
         
        $sql ="INSERT INTO user (Id, Username, Kennwort, Firma, Vorname, Nachname, Strasse, Plz, Ort, Email, Status) values ('', '$username', '$ret', '$firma', '$vorname','$nachname','$strasse','$plz','$ort','$email')";
         
        mysql_query($sql$db) or die(mysql_error());
         
        mysql_affected_rows() .""
        Das mit dem zusenden der Zugangsdaten per eMail hat nun geklappt, daher habe ich hier auf eine wiederholung des Codes verzichtet.

        Auch wird das Passwort richtig generiert und es klappt auch alles, wenn ich das schreiben in die DB ausklammere, wenn ich diese jedoch drin lasse erhalte ich wieder -> Column count doesn't match value count at row 1 .

        Kann dieses vielleicht an der autm. Zuweisung der Id liegen ?

        Gruss und Danke Ela

        Kommentar


        • #5
          Hatt sich erledigt hat geklappt, trotzdem Danke !

          Kann ich eigentlich mit einem Satz alle Angaben des Formulars mit denen in der DB vergleichen und bei Übereinstimmung einer Angabe diese Ausgeben lassen, damit keine doppelten Angaben gemacht werden ?!

          Gruss und Danke Ela

          Kommentar


          • #6
            Column count doesn't match value count at row 1 .

            Bedeutet, dass du zuwenig werte in die DB einspielst, d.h. nicht alle Felder sind gefüllt!

            EDIT: Verdammt, war zu langsam.... naja, wie meinst du deinen Post? Versteh ich nicht ganz... :/
            Zuletzt geändert von Shurakai; 23.05.2004, 21:57.
            Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
            var_dump(), print_r(), debug_backtrace und echo.
            Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
            Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
            Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

            Kommentar


            • #7
              Ja genau daran lag es auch :-)

              Das mit dem Vergleich hat sich auch gerade erledigt,
              da ich mal denke, dass es mehrere mit dem gleichen
              Nachnamen gibt.

              Trotzdem Super Danke

              Ela

              Kommentar

              Lädt...
              X