Zum Inhalt springen

Shoutbox mit NUR 3 Feldern mit PHP erstellen


blacks†one

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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: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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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);



?>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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:

:P

:)

:D

sad

Games:

game001

Um Bilder einfügen einfach vor die Grafikadresse ein %7Boption%7D hängen.

Bsp. %7Boption%7Dhttp://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.

Link zu diesem Kommentar
Auf anderen Seiten teilen


<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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...