tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
426
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DEDEX7200Pro Tutorials.de Gastzugang
    Hallo,
    ich habe hier folgenden Chat programmiert, hab aber das Problem, dass das mit dem Login bzw. dem Regristrieren nicht so ganz hin haut. Ich wollte, dass die User sich regristrieren, dann einlogen und dann etwas schreiben. Dann soll der Benutzername angezeigt werden, der etwas geschrieben hat. Zusätzlich sollte man bei "An" eine Nachricht nur an einen bestimmten Nutzer schreiben können. Ich finde bloss leider den Fehler nicht Hier mein Script:

    index.php ////Formular zum Einlogen
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    Falls du noch keinen Account hast, klicke bitte <a href="eintrag.php">hier</a>.
    <form action="login.php" method="post">
    Dein Benutzername:<br>
    <input type="text" size="24" maxlength="50"
    name="user"><br><br>
    Dein Passwort:<br>
    <input type="password" size="24" maxlength="50"
    name="password"><br>
    <input type="submit" value="Login">
    </form>

    login.php ////frägt Benutzername ab
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    <?php
    session_start();
    ?>
    <?php
    include_once("chat_mysql.php");
     
    $user = $_POST["user"];
    $passwort = md5($_POST["password"]);
     
    $abfrage = "SELECT user, passwort FROM online WHERE user LIKE '$user' LIMIT 1";
    $ergebnis = mysql_query($abfrage);
    $row = mysql_fetch_object($ergebnis);
     
    if($row->passwort == $passwort)
        {
        $_SESSION["user"] = $user;
        echo "Login erfolgreich. <br> <a href=\"chat.php\">Gehe zum Chat</a>";
        }
    else
        {
        echo "Benutzername und/oder Passwort waren falsch. <a href=\"index.php\">Login</a>";
        }
    ?>

    eintrag.php ////Formular zum Benutzernameneintrag
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    <form action="eintragen.php" method="post">
    Dein Benutzername:<br>
    <input type="text" size="24" maxlength="50"
    name="user"><br><br>
    Dein Passwort:<br>
    <input type="password" size="24" maxlength="50"
    name="passwort"><br>
    Dein Passwort (wiederholen):<br>
    <input type="password" size="24" maxlength="50"
    name="passwort2"><br>
    <input type="submit" value="Abschicken">
    </form>

    eintragen.php ////trägt Benutzernamen ein
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    <?php
    include_once("chat_mysql.php");
     
    $user = $_POST["user"];
    $passwort = $_POST["passwort"];
    $passwort2 = $_POST["passwort2"];
     
    if($passwort != $passwort2 OR $user == "" OR $passwort == "")
        {
        echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintrag.php\">Zurück</a>";
        exit;
        }
    $passwort = md5($passwort);
     
    $result = mysql_query("SELECT id FROM online WHERE user LIKE '$user'");
    $menge = mysql_num_rows($result);
     
    if($menge == 0)
        {
        $eintrag = "INSERT INTO online (user, passwort) VALUES ('$user', '$passwort')";
        $eintragen = mysql_query($eintrag);
     
        if($eintragen == true)
            {
            echo "Benutzername <b>$user</b> wurde erstellt. <a href=\"index.php\">Login</a>";
            }
        else
            {
            echo "Fehler beim Speichern des Benutzernames. <a href=\"eintrag.php\">Zurück</a>";
            }
     
        }
    else
        {
        echo "Benutzername schon vorhanden. <a href=\"eintrag.php\">Zurück</a>";
        }
    ?>

    chat.php ////ruft den Chat auf
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    <?php
    session_start();
    ?>
    <?php
    if(!isset($_SESSION["user"]))
       {
       echo "Bitte erst <a href=\"index.php\">einloggen</a>";
       exit;
       }
     
    echo "<frameset rows=\"80%,20%\">";
    echo "<frame src=\"ausgabe_chat_texte.php?user=$_GET[user]\">";
    echo "<frame src=\"insert_chat_texte.php?user=$_GET[user]\">";
    echo "</frameset>";
    ?>

    insert_chat_texte.php
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    <?php
    include_once("chat_mysql.php");
    if($_POST[nachricht] == "")
      {
      include_once ("form_chat_texte.php");
      }
      else
      {
      $zeit = time();
      if($_POST[empfänger] == "")
        {
        $eintrag = "INSERT INTO chat (absender, nachricht, time)
                    VALUES ('$_GET[user]', '$_POST[nachricht]', '$zeit')";
        $eintragen = mysql_query($eintrag);
        }
        else
        {
        $eintrag = "INSERT INTO chat (absender, nachricht, time, empfänger, status)
                    VALUES ('$_GET[user]', '$_POST[nachricht]', '$zeit', '$_POST[empfänger]', '2')";
        $eintragen = mysql_query($eintrag);
        }
        include_once("form_chat_texte.php");
      }
    ?>

    form_chat_texte.php
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    <?php
    include_once ("chat_mysql.php");
     
    echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"chat_style.css\">";
    echo "<form action=\"insert_chat_texte.php?user=$_GET[user]\" method=\"post\">";
    echo "An: <input size=\"15\" name=\"empfänger\" type=\"text\"> ";
    echo "Nachricht: <input size=\"24\" name=\"nachricht\" type=\"text\"> ";
    echo "<input value=\"Absenden\" type=\"submit\"><br>";
    echo "</form>";
     
    echo "Online: ";
    $abfrage = "SELECT * FROM online";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
      {
      echo "$row->user, ";
      }
      
    ?>

    ausgabe_chat_texte.php
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
    <?php
      include_once("chat_mysql.php");
     
      $result = mysql_query("SELECT * FROM online WHERE user = '$_GET[user]'");
      $menge = mysql_num_rows($result);
      if($menge == 0)
        {
        $zeit = time();
        $eintrag = "INSERT INTO online (user, time)
                    VALUES ('$_GET[user]','$zeit')";
        $eintragen = mysql_query($eintrag);
      
        $eintrag = "INSERT INTO chat (absender, nachricht, time)
                      VALUES ('System', '$_GET[user] ist Online', '$zeit')";
        $eintragen = mysql_query($eintrag);
        echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"chat_style.css\">";
        echo "<meta http-equiv=\"refresh\" content=\"2;\">";
        echo "<div>";
        echo "Willkommen im Lands of War Chat.<br>";
        echo "Sie werden weitergeleitet ...<br>";
        echo "</div>";
        }
        else
        {
        $abfrage = "SELECT * FROM chat ORDER BY id DESC LIMIT 25";
        $ergebnis = mysql_query($abfrage);
        while($row = mysql_fetch_object($ergebnis))
          {
          if($row->status == "2" AND $row->empfänger == "$_GET[user]" OR $row->status == "2" AND $row->absender == "$_GET[user]")
            {
              echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"chat_style.css\">";
              echo "<meta http-equiv=\"refresh\" content=\"2;\">";
              echo "<div class=\"privat\">";
              echo "$row->absender --> $row->empfänger: $row->nachricht<br>";
              echo "</div>";
            }
            else
            {
            $zeit = $row->zeit;
            $absender = $row->absender;
            $nachricht = $row->nachricht;
            echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"chat_style.css\">";
            echo "<meta http-equiv=\"refresh\" content=\"2;\">";
            echo "<div>";
            echo "$absender: $nachricht<br>";
            echo "</div>";
            }
          }
        }
    ?>

    chat_style.css ////Ist für das Design zuständig
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    body
      {
      background-color: #000000;
      color: #FFFFFF;
      }
     
    div
      {
      font:15px verdana,sans-serif; 
      text-decoration:none;
      border:none; 
      }
      
    .privat
      {
      color: #FF6600;
      }
      
    a
      {
      text-decoration:none;
      color: #FF6600;
      text-align:center;
      border:none; 
      }

    chat_mysql.php ////hier gibt man die Datenbankdaten ein
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    <?php
    //Verbindung zur MySQL Datenbank
    $verbindung = mysql_connect ("localhost", "Datenbankbenutzer", "Passwort")
        or die ("Verbindung zum SERVER konnte nicht hergestellt werden.");
     
    mysql_select_db("Datenbankname")
        or die ("Verbindung zur DATENBANK konnte nicht hergestellt werden.");
    ?>

    Wäre es eigentlich ratsam ein "Passwort vergessen" hinzumachen und die E.Mailadresse einzuspeichern? Wie könnte ich dies machen? Smileys folgen noch Hab den Smiley-Script schon in meinem Gästebuch --> einfach kopieren. Zuerst möchte ich des mit dem Benutzer hinbekommen.
     

  2. #2
    iits2 iits2 ist offline Rookie
    Registriert seit
    Aug 2009
    Beiträge
    8
    Zitat Zitat von DEDEX7200Pro Beitrag anzeigen
    Ich finde bloss leider den Fehler nicht.
    was ist den der Fehler? Was funktioniert nicht?
     

  3. #3
    DEDEX7200Pro Tutorials.de Gastzugang
    ich kann keinen Benutzer in die Datenbank erstellen. Da kommt folgendes:

    "Fehler beim Speichern des Benutzernames. Zurück"

    Also keinerlei Fehlermeldung. (eintragen.php)

    Edit: Ich habe die Datenbank mal geleert und dann des ganze nochmals versucht

    Folgender Fehler: Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /users/climbonline/www/test_chat/eintragen.php on line 16
    Geändert von DEDEX7200Pro (17.12.09 um 13:29 Uhr)
     

  4. #4
    iits2 iits2 ist offline Rookie
    Registriert seit
    Aug 2009
    Beiträge
    8
    was steht in der DB?
    versuch mal die SQL Fehler anzuzeigen: http://www.php.net/manual/de/function.mysql-error.php
     

  5. #5
    DEDEX7200Pro Tutorials.de Gastzugang
    nachdem ich des gelöscht habe kommt, dass dort keine tabelle ist. Also ne komplett leere Datenbank. Des von dir macht dann keinen Sinn mi dem PHP-Code, oder?
     

  6. #6
    iits2 iits2 ist offline Rookie
    Registriert seit
    Aug 2009
    Beiträge
    8
    Es gibt keine Tabelle? Na dann ist klar dass du nichts reinschreiben kannst. Du kannst auch nichts in ein Regal legen, wenn du kein Regal hast.
     

  7. #7
    DEDEX7200Pro Tutorials.de Gastzugang
    das heisst ich muss die Tabelle "online" und "chat" manuell erstellen. Vielen Dank. Edit: Und wie muss des dann aussehen?

    Also ich meine, klar, beim Chat sieht die so aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    CREATE TABLE `online` (
      `id` int(8) NOT NULL default '0',
      `user` text NOT NULL,
      `time` varchar(25) NOT NULL default '',
      FULLTEXT KEY `aspizius` (`user`)
    ) TYPE=MyISAM;
     
    CREATE TABLE `chat` (
      `id` int(8) NOT NULL default '0',
      `absender` text NOT NULL,
      `time` varchar(25) NOT NULL default '',
      `nachricht` text NOT NULL,
      `status` char(1) NOT NULL default '',
      `empfänger` text NOT NULL
    ) TYPE=MyISAM;

    Aber wie bekomme ich des da noch mit dem Login rein?

    ist dies dann so korrekt?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    CREATE TABLE `online` (
    `id` int(8) NOT NULL default '0',
    `user` varchar (150) NOT NULL default '',
    `passwort` varchar (32) NOT NULL default '',
    `time` varchar(25) NOT NULL default '',
    FULLTEXT KEY `aspizius` (`user`)
    ) TYPE=MyISAM;
     
    CREATE TABLE `chat` (
    `id` int(8) NOT NULL default '0',
    `absender` text NOT NULL,
    `time` varchar(25) NOT NULL default '',
    `nachricht` text NOT NULL,
    `status` char(1) NOT NULL default '',
    `empfänger` text NOT NULL
    ) TYPE=MyISAM;
    Geändert von DEDEX7200Pro (17.12.09 um 14:28 Uhr)
     

  8. #8
    iits2 iits2 ist offline Rookie
    Registriert seit
    Aug 2009
    Beiträge
    8
    Jep, so ist das.
    Am besten machst du das mit phpmyadmin. Aber bevor du damit anfängst ließ dich in das Thema Datenbanken ein und mach dir Gedanken zur Datenbankstruktur, sonst machst du dir nacher noch mehr Probleme.

    Danke? Dann klick doch mal auf den Danke-Button
     

  9. #9
    DEDEX7200Pro Tutorials.de Gastzugang
    also das mit dem Login hat jetzt geklappt. Hab jetzt mal 3 Benutzer angemeldet und 3 Browser verwendet. Wenn jetzt aber Gustav an Peter schreibt kann das Walter mitlesen. Es steht zudem nicht vor dem Text, wer dies gesagt hat. Ich denke aber, dass ich des jetzt hinbekomme
     

Ähnliche Themen

  1. [JAVA] Register Programmierung Java Chat
    Von EuropaChat im Forum Stellenangebote (unentgeltlich)
    Antworten: 1
    Letzter Beitrag: 23.06.09, 19:15
  2. Loginproblem im IE
    Von h4dhunTer im Forum PHP
    Antworten: 5
    Letzter Beitrag: 10.03.07, 16:24
  3. Loginproblem :(
    Von mraim im Forum PHP
    Antworten: 2
    Letzter Beitrag: 21.10.04, 17:55
  4. Loginproblem
    Von StefanR im Forum PHP
    Antworten: 7
    Letzter Beitrag: 16.11.03, 23:48

Stichworte