Antworten auf deine Fragen:
Neues Thema erstellen

Probleme mit der Shoutbox

pYroman1ac

Noch nicht viel geschrieben

Hallo Leute!

Bei meinem Projekt hat sich mal wieder ein Problem aufgetan. Ich bin leider gar nicht versiert im PHP deswegen hab ich mir das Tutorial hier von Flegma geholt und ein bisschen angepasst.

Oder besser gesagt das einzige was ich nicht will ist die Fehlermeldung die ausgegeben wird wenn man vergisst den Namen bzw. den Text einzugeben.

Jetzt hab ich 2, na eigentlich 3 Probleme mit dem was ich da rumgemurkst hab.

1. Die erste Message schreibt er mir irgendwie eingerückt. Warum? Ich hab schon soviel rumgebastelt, ich komm nicht drauf....daraus erfolgt warscheinlich problem Nr.

2. er macht mir im Firefox unten einen Scrollbalken hin, im Internet Explorer siehts wieder ganz anders aus...da muss ich glaub ich noch ne Browser-Weiche oder so machen, Hauptsache es läuft mal im Firefox..

3. möcht ich gerne das er mir die neuesten Beiträge unten hinschreibt und man raufscrollen muss um ältere beiträge zu lesen.

Bitte helft mir, ich murks schon seit einer Woche rum :(

Vielen Dank schon mal im Vorraus!

Link zur HP:

Der Code:

Code:
<?php
$dbHost = "localhost";
$dbUser = "";
$dbPass = "";
$dbName = "";
$connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");
$selectDB = @mysql_select_db($dbName, $connect) or die("Konnte die Datenbank <b>$dbName</b> nicht auswählen!");

if($_POST['send']==1) {
    $_POST['absender']=trim($_POST['absender']);
    $_POST['msg']=trim($_POST['msg']);                    // um Leerstellen zu entfernen!
    $_POST['absender']=strip_tags($_POST['absender']);
    $_POST['msg']=strip_tags($_POST['msg']);                //evt. vorhandenen HTML-Code entfernen!
    $_POST['absender']=htmlentities($_POST['absender']);
    $_POST['msg']=htmlentities($_POST['msg']);            //Sonderzeichen mit htmlentities ersetzen!
    if(!$_POST['absender']){$fehler="Name?<br /><br
/>";}
    if(!$_POST['msg']){$fehler.="Text?<br /><br
/>";}

    if($fehler) {
        $meldung="<font color=red>".$fehler."</font>";
        unset($_POST['send']);
    } else {
        $sql="
            INSERT INTO
                shoutbox (msg, absender)
                VALUES
                    (
                    '".mysql_real_escape_string($_POST['msg'])."',
                    '".mysql_real_escape_string($_POST['absender'])."'
                    )
    ";
    mysql_query($sql);                                //SQL-String an die Datenbank schicken
    $meldung="OK!";
    }
}
?>
und

Code:
 <div id="sb">
                  <form id="shoutbox" name="shoutbox" method="post" action="home.php">
                <table width="150" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                <td colspan="2"><div align="center" class="sbrp">!SHOUTBOX!</div></td>
                </tr>
                
                <tr>
                <td height="146" colspan="2" align="left">
                <input type="hidden" name="send" id="send" value="1" />
                <textarea name="ausgabe"  cols="27" rows="15" readonly>
                <?php
                    $sql="SELECT * FROM shoutbox";
                    $result=mysql_query($sql);
                    for($i=0;$i<mysql_num_rows($result);$i++) {
                    $ergebnis[$i]=mysql_fetch_array($result);
                    }
                    for($i=0;$i<count($ergebnis);$i++) {
                    $ergebnis[$i]['absender']=html_entity_decode($ergebnis[$i]['absender']);
                    $ergebnis[$i]['msg']=html_entity_decode($ergebnis[$i]['msg']);
                    echo $ergebnis[$i]['absender']." ".$ergebnis[$i]['msg']." "."
                    ";
                    }
                ?>                
                </textarea>
                </td>
                </tr>
                <tr>
                <td width="36" class="sbrp">NAME</td>
                <td width="70"><input name="absender" type="text" id="absender" value="<?php
                echo $_POST['absender']; ?>"
                size="14" maxlength="255" /></td>
                </tr>
                <td><span class="sbrp">TEXT</span></strong></td>
                <td><input name="msg" type="msg" id="msg" value="<?php echo
                $_POST['msg']; ?>" size="14"
                maxlength="255" /></td>
                </tr>
                <td> </td>
                <td align="left"><input name="button" type="submit" class="sbrp" id="button"
                value="shout!" /></td>
                </tr>
                </table>
                </form>
        </div>
 

CIX88

Aktives Mitglied

AW: Probleme mit der Shoutbox

> Die erste Message schreibt er mir irgendwie eingerückt. Warum?
Logisch, wenn vor den echo() noch Leerzeichen kommen bzw. nach "readonly>" eine Zeilenumbruch kommt. Aber das ist Grundwissen HTML, nicht PHP.
Mal abgesehen, dass deine for-Schleifen etwas ungwöhnlich sind, würde ich das Einrücken an dieser Stelle vermeiden.

> 2. er macht mir im Firefox unten einen Scrollbalken hin
Textfelder kann man anpassen -> siehe SELF-HTML
Dann kann man auch bestimmen, wie der Inhalt dargestellt werden soll.
Aber, der IE hat teilweise andere Vorstellungen von Formatierungen :)

> möcht ich gerne das er mir die neuesten Beiträge unten hinschreibt
Dazu kann man das Prinzip "ORDER BY id ASC" benutzen.
id wäre zum Beispiel ein Feld mit einer eindeutigen Nummer, kann aber auch ein Timestamp sein. Geht naürlich erst, wenn das auch vorhanden ist.

> ich murks schon seit einer Woche rum
Besser als rumbasteln ist lesen und Grundwissen aneignen :)
 

Domi741

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

Hallo Leute!

........
Code:
........
                <textarea name="ausgabe"  cols="27" rows="15" readonly>
                <?php
                    $sql="SELECT * FROM shoutbox";
                    $result=mysql_query($sql);
                    for($i=0;$i<mysql_num_rows($result);$i++) {
                    $ergebnis[$i]=mysql_fetch_array($result);
                    }

                    for($i=0;$i<count($ergebnis);$i++) {
                    $ergebnis[$i]['absender']=html_entity_decode($ergebnis[$i]['absender']);
                    $ergebnis[$i]['msg']=html_entity_decode($ergebnis[$i]['msg']);
                    echo $ergebnis[$i]['absender']." ".$ergebnis[$i]['msg']." "."
                    ";
                    }
                ?>                
                </textarea>
......

Ob for schleife richtig oder falsch lassen wir nun mal aussen vor, denn aus meiner sicht ist die schleife ressourcen "fressend" (bei dieser einen nicht auffallend ;) "

beim durchlaufen der for schleife führt er jedesmal die funktion count aus, das ist ein bisschen uneffizient, bei dieser einen for schleife merkt man vllt perfomance technisch nicht viel bis gar nix, mach davon aber in deinem script mal ein paar mehr und das dingen läd ewig, besser wäre wenn du das array $ergebnis vor der 2ten for schleife in eine varibale countest ;) also z.B:

Code:
........
                <textarea name="ausgabe"  cols="27" rows="15" readonly>
                <?php
                    $sql="SELECT * FROM shoutbox";
                    $result=mysql_query($sql);
                    for($i=0;$i<mysql_num_rows($result);$i++) {
                    $ergebnis[$i]=mysql_fetch_array($result);
                    }
                     
                    $ergebnis_count = count($ergebnis);

                    for($i=0;$i<count($ergebnis_count);$i++) {
                    $ergebnis[$i]['absender']=html_entity_decode($ergebnis[$i]['absender']);
                    $ergebnis[$i]['msg']=html_entity_decode($ergebnis[$i]['msg']);
                    echo $ergebnis[$i]['absender']." ".$ergebnis[$i]['msg']." "."
                    ";
                    }
                ?>                
                </textarea>
......
Lg Dominic
 

pYroman1ac

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

Hallo Leute!

Ich bins nochmal, vielen Dank für die Antworten!

Logisch, wenn vor den echo() noch Leerzeichen kommen bzw. nach "readonly>" eine Zeilenumbruch kommt. Aber das ist Grundwissen HTML, nicht PHP.
Mal abgesehen, dass deine for-Schleifen etwas ungwöhnlich sind, würde ich das Einrücken an dieser Stelle vermeiden.
ich komm einfach nicht drauf wo die Leerzeichen sind bzw. der Zeilenumbruch kommt. Einen Zeilenumbruch brauch ich ja zwischen den Nachrichten...

Leerzeichen sind ja Anführungsstriche (") und <br> is der Zeilenumbruch oder?

Kann mir mal jemand "highlighten" wo ich denn hinkucken muss...ich habs noch immer nicht hinbekommen und bin schon am verzweifeln. :'(

Danke!
 

pYroman1ac

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

Hallo dirtyharry!

Das wäre toll...es soll nur ganz was einfaches sein im prinzip...funktionieren muss sie un ich muss sie in mein design einpassen können :)
 

Domi741

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

Hallo dirtyharry!

Das wäre toll...es soll nur ganz was einfaches sein im prinzip...funktionieren muss sie un ich muss sie in mein design einpassen können :)


Wenns danach geht kann ich dir auch eine AJAX-Shoutbox anbieten. Die Läd sich je nach Einstellung alle paar Sekunden neu Ohne seiten reload. Allerdings habe ich noch keine Smileys eingebaut wirklich eine "nackte" einfach shoutbox mit kleinem Adminbereich. Die ist allerdings kostenpflichtig. Wird dich also wahrscheinlich abschrecken.

Lg Dominic
 

pYroman1ac

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

Danke für das Angebot Domi aber das ist mein (Abend-)Maturaprojekt, ich weiss noch nicht mal ob ich die Homepage wirklich ins Netz stelle, da is noch viel zu tun wenn ja (für die Matura reichts wenn das Ding in einem Browser richtig angezeigt wird) und deswegen möchte ich hierfür kein Geld ausgeben.

Ich werd mich heute nachmittag nochmal drüberstürzen, vielleicht bekomm ichs ja endlich hin *g*

Über Ideen, Tips oder Kritik freu ich mich natürlich nach wie vor ;)
 

netbandit

Aktives Mitglied

AW: Probleme mit der Shoutbox

wozu 2 for-schleifen?
PHP:
<textarea name="ausgabe"  cols="27" rows="15" readonly><?php
$sql="SELECT * FROM shoutbox";
$result=mysql_query($sql);
$max=mysql_num_rows($result);
if($max>=1){
   for($i=0;$i<$max;$i++){
       $ergebnis[$i]=mysql_fetch_array($result);
       echo html_entity_decode($ergebnis[$i]['absender'])." ".html_entity_decode($ergebnis[$i]['msg']) . "\n";
   }
}
?></textarea>
 

pYroman1ac

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

Hallo nochmal Leute!

Vielen Dank für die Antworten! Ich hab es jetzt bis auf eine Sache so hinbekommen wie ich es mir vorgestellt hab! :)

Die eine Sache wäre:

Ich hätte gerne das er mir den Namen Fett und in der Farbe #990000 (dunkelrot) schreibt.

Ist das möglich? Wenn ja wie funktioniert das?

Danke schon mal für eure Bemühungen, allein hätt ich das nicht hinbekommen! :)

Edit: PS: auf der HP is es noch die alte Version, offline funktioniert sie aber so wie ich will *g*
 

pYroman1ac

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

So ich nochmal!

Kann mir bitte jemand erklären wo hier der Fehler liegt? Er will mir den Absender einfach nicht in fett anzeigen :(

Code:
echo [COLOR=#000000][COLOR=#dd0000]"<b>".[/COLOR][/COLOR]$ergebnis[$i]['absender'].[COLOR=Red]"</b>" [/COLOR]": ".$ergebnis[$i]['msg']." "."
<strong> hab ich auch probiert...geht auch nicht :-/

ausserdem wird beim aktualisieren der seite immer wieder ein neuer Datensatz geschrieben, kann man das irgendwie umgehen?
 
Zuletzt bearbeitet:

Domi741

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

So ich nochmal!

Kann mir bitte jemand erklären wo hier der Fehler liegt? Er will mir den Absender einfach nicht in fett anzeigen :(

Code:
echo [COLOR=#000000][COLOR=#dd0000]"<b>".[/COLOR][/COLOR]$ergebnis[$i]['absender'].[COLOR=Red]"</b>" [/COLOR]": ".$ergebnis[$i]['msg']." "."
<strong> hab ich auch probiert...geht auch nicht :-/


Du gibst die Nachrichten in einer Textarea aus, da kannst du den Text nicht formatieren....
 

netbandit

Aktives Mitglied

AW: Probleme mit der Shoutbox

ausserdem wird beim aktualisieren der seite immer wieder ein neuer Datensatz geschrieben, kann man das irgendwie umgehen?

Indem Du zum Beispiel nach erfolgreichem Eintrag einfach per header auf die selbe Datei weiterleitest ohne irgendwelche Parameter zu übergeben
PHP:
header ('Location: http://www.deinedomain.de/shotbox.php');

€: Und zum anderen Problem; pack die Daten in eine div-box, die kannste auch so designen, dass sie aussieht wie eine textarea. Dann kannst du auch bunt, fett usw. machen
 
Zuletzt bearbeitet:

pYroman1ac

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

SUPER! Danke netbandit es funktioniert mit dem "header"-befehl! was so eine kleine Befehlszeile alles machen kann *g*

wenn ich das mit einer div-Box mache dann ist ja alles rot und fett z.Bsp. oder?

ich möchte ja nur das der Absender rot und fett dargestellt wird...

Tut mir leid das ich so viele blöde Fragen stelle, aber ich bin ziemlich neu auf dem Gebiet und versuche mich gerade einzuarbeiten, sehe aber momentan den Wald vor lauter Bäumen nicht *g*
 

Domi741

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

SUPER! Danke netbandit es funktioniert mit dem "header"-befehl! was so eine kleine Befehlszeile alles machen kann *g*

wenn ich das mit einer div-Box mache dann ist ja alles rot und fett z.Bsp. oder?

ich möchte ja nur das der Absender rot und fett dargestellt wird...

Tut mir leid das ich so viele blöde Fragen stelle, aber ich bin ziemlich neu auf dem Gebiet und versuche mich gerade einzuarbeiten, sehe aber momentan den Wald vor lauter Bäumen nicht *g*


Nimms mir nicht übel wenn ich frage aber kannst du überhaupt richtig vernünftig HTML? Wenn nicht würd ich an deiner Stelle damit erstmal anfangen...
 

pYroman1ac

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

Naja...was heisst vernünftig...die Grundlagen versteh ich soweit...und ich weiss auch das die shoutbox mit dem tabellendesign nicht die optimalste lösung ist...

nur fehlt mir die Zeit da die HP mein (Abend-)Maturaprojekt ist und die erstmal nur auf einem Browser laufen muss...

Es wird von allem n bissl gefordert (Flash, PHP, HTML, CSS, Javascript) und daher können die Lehrer nicht allzu sehr ins Detail gehen...

Ich hab das als Herausforderung gesehen und versucht etwas "anspruchsvolleres" zusammenzubasteln.

Wie es mit HTML bzw. CSS geht den Text zu formatieren weiss ich, ich würde gerne wissen wo ich diese HTML Zeichen im PHP setzten muss. Ich habs gegoogelt und bin auch fündig geworden, nur leider funktioniert das bei mir nicht so wie bei dem Fragesteller aus dem anderen Forum. Deswegen frag ich, ich würde gerne wissen warum das so ist, keine fix fertige Lösung...sonst hätt ich auch eine fertige Shoutbox mit 100en Smilies nehmen können. Das wollt ich aber nicht, ich wollt sie selber machen um zu lernen...

Ich weiss auch nicht was du unter vernünftig HTML verstehst, wenn du damit meinst wie ich die ganze Seite letztendlich für den IE mit den ganzen Hacks etc. optimiere weiss ich noch nicht genau, reingelesen in das Thema habe ich mich schon.
 

Domi741

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

Ok frage beantwortet =)
Mehr wollte ich net wissen ;)


du ersetzt einfach die <textarea> tags durch <div> tags ;) und den formatierst du dann mit CSS.

Lg Dominic
 

pYroman1ac

Noch nicht viel geschrieben

AW: Probleme mit der Shoutbox

Ok, alles klar, also textarea is unflexibel, nicht verwenden <--in Gehirn gespeichert *g*

dürte ich hinbekommen, aber jetzt schau ich mal das ich die HP für die Matura fertigbekomme, dann wird weiter daran rumgetüftelt.

Bevor ich die meinem Freund übergeben kann (dem das pub gehört) ist sowieso noch viel zu tun bzw. n kompletter Neuanfang vonnöten.

Vielen Dank für die Antworten, Problem(e) gelöst! :)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.455
Mitglieder
67.558
Neuestes Mitglied
StarsMan
Oben