• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP Chat mit direkt channels und Öffentlichen Channel

BWDS

Neues Mitglied
Hallo ich versuche wegen Corona ein 'Portal' zu programmieren. Der Chat sollte Direktchat's zu jedem Account haben sowie ein Öffentlichen Channel wo jeder mit jedem schreiben kann, mit Namen , Datum und Uhrzeit. Mir fehlt das nötige wissen wie man so etwas programmiert oder der Ansatz für so etwas.

*WICHTIG* der Chat sollte so sein, das nur der Admin Räume erstellen kann. Der Chat muss nicht echt Zeit sein*

Ich hoffe ihr könnt mi weiter helfen.
LG
 

m.scatello

Senior HTML'ler
Wenn du jetzt auch noch eine Frage hättest ... :frown:

Es gibt fertige und auch kostenlose Chat-Systeme, warum also selber machen? Zumal, wenn man nicht das nötige Wissen hat.
 

BWDS

Neues Mitglied
Könntest du mir eins vorschlagen das meine ansprüche erfüllt? Den nach 3 std googlen fand ich nichts was meinen ansprüche erfüllt.
lg
 

m.scatello

Senior HTML'ler
Ich kann dir da leider keinen Tipp geben, da ich bisher noch keinen Chat benötigte. Ob es überhaupt einen Chat gibt, der zu 100% deine Wünsche erfüllt, ist sowieso die Frage. Du wirst vermutlich Kompromisse eingehen müssen.
 

basti1012

Senior HTML'ler
Sollte reichen zum Anfang.
Du könntest ja allgemein mal im Netz rumsurfen und wenn dir irgendwo ein Chat gefällt fragst du nach wo er weg ist.
Kaum einer programmiert sich ein Chat selber, deswegen sollten die meisten auch frei verfügbar sein.
 

BWDS

Neues Mitglied
Hallo,
danke für eure Antworten. Ich hab mich jetzt für ein Datenbanksysthem entschieden. Das Problem: Der Privat Chat hat seine eigene Datenbank (pn). Jeder der Privat schreibt muss auch einen Empfänger angeben. Mit 'SELECT * FROM pn WERE fuer=' . $_SESSION['username'] , werden die Nachichten gefiltert. Doch hiebei entsteht ein fehler. Wenn ich den Empfänger manuell hinter SELECT schreibe, wird mir die Nachicht angezeigt, wenn ich das mit der Variablen $_SESSION['username'] schreibe, gibt es einen Fehler. Die $_SESSION['username'] gibt aber den gleichen Namen aus, wie in der Nachicht steht. Hier ist der Code:
PHP:
<?php
              $user = $_SESSION['username'];
              echo $user;
              require 'connection.php';
              require 'mysql.php';
              $conn = Connect();
                        $sql2 = 'SELECT * FROM pn WHERE fuer =' . $user;
                        $result2 = mysqli_query($conn, $sql2);

                if (mysqli_num_rows($result2) > 0){


                          ?>

                          <table class="table table-striped">
                            <thead class="thead-dark">
                              <tr>
                                <th>  </th>
                                <th>  </th>
                                <th> von </th>
                                <th> für </th>
                                <th>  </th>
                              </tr>
                            </thead>

                            <?PHP
                              //OUTPUT DATA OF EACH ROW
                              while($row = mysqli_fetch_assoc($result2)){
                            ?>

                          <tbody>
                            <tr>
                              <td> <span class="glyphicon glyphicon-menu-right"></span> </td>

                              <td> <hr> <?php echo $row["nachicht"]; ?> <hr> </td>
                              <td> <hr> <?php echo $row["von"]; ?> <hr> </td>
                              <td> <hr> <?php echo $row["fuer"]; ?> <hr> </td>
                              <td> <hr> <?php echo $row["zeit"]; ?> <hr> </td>




                            </tr>
                          </tbody>

                          <?php }
                        }else{

                          echo "Keine Mitteiungen vorhanden.";
                        }
                           ?>
                          </table>
Fehlercode:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\chat\cpchat.php on line 64

Ich hoffe ihr könnt mir helfen.
lg
 

Sempervivum

Senior HTML'ler
Die Fehlermeldung beschreibt den Fehler ganz gut: Du rufst mysqli_num_rows mit dem Parameter $result2 auf. $result2 ist jedoch kein resultset sondern ein boolean, d. h. normaler Weise false, weil das mysqli_query zuvor fehl geschlagen ist. Um herauszufinden warum kann es dir helfen, die SQL-Fehler ausgeben zu lassen, siehe hier:
 

m.scatello

Senior HTML'ler
PHP:
$sql2 = "SELECT * FROM pn WHERE fuer ='$user'";
Und "Select *" ist bäh, führe die Spalten auf, die du haben willst.
 
Werbung:
Oben