blacks†one Geschrieben 8. Januar 2008 Teilen Geschrieben 8. Januar 2008 Hallo zusammen, möchte eine kompakte Shoutbox erstellen. Das ganze soll aus einem Feld bestehen, welches die messages anzeigt. Darunter Sollen 2 Felder für den nick und die eigene message. Am liebsten würde ich dies dann in meine Seite mit einem textarea- und 2 input-Feldern integrieren. Habe allerdings keinen blassen Schimmer von PHP muss ich ganz ehrlich gestehen. Kann mir jemand helfen? mfg blacks†one Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
THE_fan Geschrieben 8. Januar 2008 Teilen Geschrieben 8. Januar 2008 Hi, ich bin kein Profi in PHP, möchte dir deshalb auch keine Prädigt halten. Ich finde es nur immer schade, wenn Leute mit der "Macht mir jemand meine Hausaufgaben"-Tour kommen. Auch wenn das vll nicht so von dir gemeint ist, fände ich es besser, wenn du dich selbst reinarbeitest und uns Sachen zeigst, mit denen wir arbeiten können, die wir verbessern können um dir zu helfen. Ich würd mir wünschen, dass du uns deinen Code zeigst und wir dir dann dabei helfen LG Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
blacks†one Geschrieben 8. Januar 2008 Autor Teilen Geschrieben 8. Januar 2008 Ganz deiner Meinung. Nur habe ich das Problem, dass ich absolut nicht weiß, wie ich mit php an den value wert von html-input-Feldern gelange. Hier mal mein html Code, damit ihr versteht an welche Werte ich kommen möchte. <html> <body> <textarea rows="5" cols="20" readonly> </textarea> <br> <br> <input name=nick id=232 size=27 maxlength="22" value="test-x"> <br> <input name=message size=27 maxlength="200" value"huhu"> <br> <input type="submit" value="Senden"> </body> </html> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ZuVieL Geschrieben 8. Januar 2008 Teilen Geschrieben 8. Januar 2008 also ich verstehe da nur bahnhof, was willst du mit der readonly textarea? an die werte kommst du, in dem du sie per post übergibst, da fehlen dir noch die form tags... <form action="save_shoutbox_entry.php" method="post"> ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
blacks†one Geschrieben 8. Januar 2008 Autor Teilen Geschrieben 8. Januar 2008 okay, werd das mit dem form ma probieren. hoffe dann klappt es. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
THE_fan Geschrieben 8. Januar 2008 Teilen Geschrieben 8. Januar 2008 Ich weiß zwar nicht ob das ne Lösung ist: Ich würde die Einträge in eine Datenbank schreiben und diese dann auf einer anderen PHP-Seite in eine HTML-Tabelle schreiben. <table border="0" cellpadding="1" cellspacing="2" width="100%"> <?php $sql = ("SELECT * FROM tabelle"); $result = mysql_query($sql); while($row = mysql_fetch_array($result)); { ?> <tr> <td width="10%"><b><?php echo($row['nickname']); ?></b></td> <td width="90%"><b><?php echo($row['nachricht']); ?></b></td> </tr> <?php } ?> </table> [/PHP] Diese PHP-Datei würde ich, insofern möglich, in die Textarea includen. Vorher musst du natürlich mittels PHP die Dateien in eine Datenbank schreiben. [PHP] <?php if(isset($_POST['send'])){ mysql_query("INSERT INTO tabelle (nickname, nachricht) VALUES ('".$_POST['nickname'].", ".$_POST['nachricht']."')"); } ?> Ich hoffe mal, dass wenn du nun noch eine Datenbank hast und die Verbindung dazu aufbaust, das so funktioniert. Ich habe es nicht getestet, ist mir grad alles aus dem Hirn gesprungen :D Dann brauchst du in der PHP-Datei, in der die Einträge angezeigt werden sollen nurnoch einen Refresh, für die neuen Einträge. LG Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
blacks†one Geschrieben 8. Januar 2008 Autor Teilen Geschrieben 8. Januar 2008 Sry, aber ich möchte ohne eine Datenbank auskommen. Gibt es denn eine Alternative. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ZuVieL Geschrieben 8. Januar 2008 Teilen Geschrieben 8. Januar 2008 schau dir mal http://de3.php.net/manual/en/function.fopen.php und PHP: fwrite - Manual an Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
blacks†one Geschrieben 8. Januar 2008 Autor Teilen Geschrieben 8. Januar 2008 So, habe schonmal bisschen herrumprobiert. <html> <body> <textarea rows="5" cols="20" readonly> </textarea> <br> <br> <form action"work.php" method="post" target="_blank"> <input name="nick" size=27 maxlength="22" value="test-x"> <br> <input name="message" size=27 maxlength="200" value="huhu"> <br> <input type="submit" value="Senden"> </form> </body> </html> Hier kommt nun leider mein Problem. Ich komme überhaupt nicht mit der array() zurrecht. Kann mir das mal jemand bitte erläutern? <?php $new=array(nick, message) $input=$_POST $input_ok=array(); $fp = fopen("test.txt", "w+"); fwrite($fp, $input); fclose($fp); ?> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mascha Geschrieben 9. Januar 2008 Teilen Geschrieben 9. Januar 2008 Bevor du irgendwas mit Variablen machst, die vom Benutzer eingegeben worden sind, solltest du diese ueberpruefen: FAQ der Newsgroups de.comp.lang.php.* - 12.1. Wie unterscheide ich böse Variablen von guten? und FAQ der Newsgroups de.comp.lang.php.* - 12.11. Prüfe importierte Parameter. Traue niemandem sollten weiterhelfen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
blacks†one Geschrieben 9. Januar 2008 Autor Teilen Geschrieben 9. Januar 2008 Danke an alle, aber habs in meiner täglichen Nachtschicht gelöst bekommen. Bin jetzt schon n richtiger Noob-Profi was PHP angeht^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ZuVieL Geschrieben 9. Januar 2008 Teilen Geschrieben 9. Januar 2008 dann zeig mal, so hilft es auch anderen evtl Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
blacks†one Geschrieben 9. Januar 2008 Autor Teilen Geschrieben 9. Januar 2008 Hier meine zwei php files: <html> <head> </head> <body> <table width=200> <tr> <iframe src="jj.php" width="200"> </iframe> </tr> </table> <br> <br> <form action"<?php print $_SERVER['PHP_SELF']; ?>" method="post"> <input name=nick size=20 maxlength="22" value="name" style="background-color: #333333; color: #33bb33;"> <br> <input name=message size=20 maxlength="200" value="message" style="background-color: #333333; color: #33bb33;"> <br> <input type="submit" value="Senden"> <!--20--> </form> <?php $_POST['message'] = $message; $_POST['nick'] = $nick; if($nick=="") { $X=5; } if($message=="") { $X=5; } if($nick=="name") { $X=5; } if($message=="message") { $X=5; } if($X != 5) { $fp = fopen("traffic/mes1.msg", "w+"); fseek($fp, 0); fwrite ($fp, "<font size=2 face=arial><b>".$nick."</b>:<br>".$message."</font>"); fclose($fp); } ?> </body> </html> [/PHP] [PHP]<html> <head> <!-- AUTOMATISCHES AKTUALISIEREN --> <meta http-equiv="refresh" content="20; URL="jj.php"> <!----------------------------------------------------------> </head> <body style="scrollbar-base-color: #335533"> <?php //---------------------------------------------------MSG EINLESEN $fp = fopen("traffic/mes1.msg", "r"); fseek($fp, 0); $newmsg = fread($fp, 250); fclose($fp); //--------------------------------------------------- //---------------------------------------------------DOPPELEINTRAG $sec1 = fopen("traffic/sec.txt", "r"); fseek($sec1, 0); $sec3 = fread($sec1, 250); fclose($sec1); //--------------------------------------------------- //---------------------------------------------------MSG ABSPEICHERN $sec2 = fopen("traffic/sec.txt", "w+"); fseek($sec2, 0); fwrite($sec2, $newmsg); fclose($sec2); //--------------------------------------------------- //---------------------------------------------------DOPPELEINTRAG AUSBLENDEN if($newmsg == $sec3) { $fp2 = fopen("traffic/x.cht", "r"); fseek($fp2, 0); $chat = fread($fp2, 500); fclose($fp2); echo $chat; $fp2 = fopen("traffic/x.cht", "w+"); fseek($fp2, 0); fwrite($fp2, $chat); fclose($fp2); $DOUBLE=5; } //--------------------------------------------------- //---------------------------------------------------NEUE MSG EINBINDEN if($DOUBLE != 5) { $fp2 = fopen("traffic/x.cht", "r"); fseek($fp2, 0); $chat = fread($fp2, 500); fclose($fp2); $new = $newmsg."<br>".$chat; echo $new; $fp2 = fopen("traffic/x.cht", "w+"); fseek($fp2, 0); fwrite($fp2, $new); fclose($fp2); } //--------------------------------------------------- ?> </body> </html> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 10. Januar 2008 Teilen Geschrieben 10. Januar 2008 $_POST['message'] = $message; $_POST['nick'] = $nick; und das funktioniert? edit. ja, vermutlich mit REGISTER_GLOBALS. dieser und der rest vom code ist allerdings von diversen serverseitigen einstellungen abhängig, u.u nicht portabel, recht unsauber und fehleranfällig. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
blacks†one Geschrieben 11. Januar 2008 Autor Teilen Geschrieben 11. Januar 2008 Mag sein. Habe das ganze noch einmal überarbeitet da mir diverse Dinge nicht gefallen haben. Habe das ganze auch mal einmal als einen simplen Chat erstellt. Könnt ihn ja mal unter Chat ausprobieren. Ich muss schon sagen, bin schon ein bisschen stolz dafür, dass ich Anfang der Woche null Ahnung von PHP hatte. PS: Zum Chat: Smilies: :ö sad Games: game001 Um Bilder einfügen einfach vor die Grafikadresse ein hängen. Bsp. http://forum.fachinformatiker.de/images/smilies/knuddel.gif _____________________________________________________________ Verbesserungsvorschläge nehme ich gerne an. Außerdem würde ich gerne herausfinden ob es eine Möglichkeit gibt, wenn ein Client eine Message schreibt, bei allen anderen Clienten die Seite zu aktualisieren. Oder kann man dies über eine andere Methode vll erreichen? Hoffe ihr habt mir ein paar hilfreiche Ideen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
blacks†one Geschrieben 12. Januar 2008 Autor Teilen Geschrieben 12. Januar 2008 Gibt es denn vll einen PHP-Befehl mit dem man bei jedem Clienten eine Aktualisierung ausführen kann? mfg Blacks†one Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
THE_fan Geschrieben 15. Januar 2008 Teilen Geschrieben 15. Januar 2008 <script language="javascript"> <!-- function auto_refresh() { location.href="Datei.php"; } setTimeout(auto_refresh,5000); //--> </script> Nicht getestet, sollte aber funktionieren. Nur mal zur Info: PHP wird auf dem Server ausgeführt, d.h. dass du dort keinen Refresh starten kannst. Das muss der Browser bzw. der Client übernehmen. Deswegen wird das mit JavaScript gelöst. LG Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
blacks†one Geschrieben 15. Januar 2008 Autor Teilen Geschrieben 15. Januar 2008 So weit war ich ja auch schon. Dennoch Danke. Allerdings habe ich es so bereits schon. Das ist was das Design angeht allerdings nicht wirklich gut. Es entsteht dadurch nämlich ein 5sec flackern. Ich suche eher etwas, dass wenn jemand den Button zum senden seiner Message betätigt, eine Aktualisierung auslöst. Und dies dann bei jedem Clienten. Da muss es doch irgendeine Möglichkeit geben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sepuko Geschrieben 21. Januar 2008 Teilen Geschrieben 21. Januar 2008 Es gäbe schon eine Möglichkeit. Du baust dir eine Funktion, die zyklisch überprüft, ob es neue Einträge in der Shoutbox gibt. Die Überprüfung geht allerdings nicht mit Javascript alleine, dazu brauchst du schon Ajax. Das ist aber ganz einfach. Wikipedia sollte Klarheit schaffen. Ajax (Programmierung) - Wikipedia Meine Idee ist folgende. Mit dieser Funktion überprüfst du, ob es neue Einträge gibt. Gibs es neue Einträge, lädst du die Seite im ersten Schritt neu. Wenn du dich besser mit Ajax auskennst, kannst du mal darüber nachdenken, ob du die Daten nicht im Hintergrund lädst und dann in die Seite einfügst ohne die Seite neu zu laden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
blacks†one Geschrieben 22. Januar 2008 Autor Teilen Geschrieben 22. Januar 2008 Danke, dass mit Ajax scheint mir die einzigste Lösung zu sein. Wollte aber am liebsten bei PHP bleiben aber scheint wohl eher nicht zu gehen. Werd mir das dann mal heute beibringen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.