php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-04-2013, 11:45
senger1985
 Registrierter Benutzer
Links : Onlinestatus : senger1985 ist offline
Registriert seit: Feb 2013
Beiträge: 85
senger1985 befindet sich auf einem aufstrebenden Ast
Angry Smilie-"Problem"

Hallo

ich habe ein Chat-Script, welches auch gut funktioniert!
Nur jetzt möchte ich auch Smilies einfügen, was aber leider nicht funktioniert.

Folgender Aufbau:

<form id="chatfenster" method="post">
<div id="stream"></div>
<div id="userliste">
<h1>User</h1>
<div id="userstream">
// hier wird die Liste der User gezeigt

</div>
</div>
//Zeichenkette wird in das Eingabefeld eingefügt
<img src="biggrin.gif" onclick="insertSmiley(':-D')" />
<img src="smile.gif" onclick="insertSmiley(':-)')" />
<img src="bigeek.gif" onclick="insertSmiley(':-o')" />
<img src="mad.gif" onclick="insertSmiley(':-(')" />
<img src="wink.gif" onclick="insertSmiley(';-)')" />

<table>
<tr>
<td>
<textarea maxlength="500" id="message"></textarea>
<div id="areacount">Du hast noch 500 Zeichen</div>
</td>
<td>
<input type="hidden" value="<?php echo $_POST["name"]; ?>" id="chat_name" />
<input type="hidden" value="<?php echo $eintrag->insert_id; ?>" id="chat_id" />
<?php
$sql = 'SELECT id FROM chat_message ORDER BY id DESC LIMIT 50';
$ergebnis = $db->query( $sql );

$startat = 0;

while($msg = $ergebnis->fetch_object())
{
$startat = $msg->id;
}
?>
<input type="hidden" value="<?php echo $startat; ?>" id="chat_last_entry" />
<?php

$datum = date("d.m.Y - H:i:s", $timestamp);
$farbe = "rgb(255,0,0)";
$message = $name . " ist dem Chat beigetreten.";
$sql = 'INSERT INTO `chat_message` (`name`, `message`, `farbe`, `datum`) VALUES (?,?,?,?)';
$eintrag2 = $db->prepare( $sql );
$eintrag2->bind_param('ssss', $name, $message, $farbe, $datum);
$eintrag2->execute();
?>
<input id="submit" type="submit" value="Senden" />
</td>
</tr>
</table>
</form>

Wie bringe ich jetzt das Formular dazu, den String als "img" ausgibt?
Mit Zitat antworten
  #2 (permalink)  
Alt 16-04-2013, 12:48
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Wenn Du Code veröffentlichst, warum dann unformatiert?
Das Formular vom Forum bietet doch alle Möglichkeiten.

Und zu dem von Dir veröffentlichten Code, verstehe zum Beispiel nicht, warum Du $sql usw. mit im Formular unterbringst, muss das sein? Dann benutzt Du den Eventhandler onclick um Funktionen aufzurufen, doch was soll der aushandeln, wenn keine Funktion zu sehen ist?
Mit Zitat antworten
  #3 (permalink)  
Alt 16-04-2013, 13:03
senger1985
 Registrierter Benutzer
Links : Onlinestatus : senger1985 ist offline
Registriert seit: Feb 2013
Beiträge: 85
senger1985 befindet sich auf einem aufstrebenden Ast
Standard

Sorry,
die Funktion steht weiter oben im HTML-Teil! Das funktioniert ja, also er setzt die Satzzeichen ins input.

Nur möchte ich als, dass :-) zu img im Chat ausgegeben wird.

Geändert von senger1985 (16-04-2013 um 13:06 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 16-04-2013, 16:31
senger1985
 Registrierter Benutzer
Links : Onlinestatus : senger1985 ist offline
Registriert seit: Feb 2013
Beiträge: 85
senger1985 befindet sich auf einem aufstrebenden Ast
Standard

Hab jetzt folgendes gemacht:

$search = array(
' ',
' )',
' )',
' ',
' '
);
$replace = array(

' <img border="0" src="wink.gif" /> ',
' <img border="0" src="wink.gif" /> ',
' <img border="0" src="wink.gif" /> ',
' <img border="0" src="wink.gif" /> ',
' <img border="0" src="wink.gif" /> '
);

$text = str_replace($search, $replace, $msg->message);

echo $text;

JS im head
function auswerten(smiley)
{
var temp;

temp=document.chatfenster.stream.value;
document.chatfenster.stream.value=temp+smiley;
}


Leider ohne Erfolg!

Geändert von senger1985 (16-04-2013 um 16:37 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 16-04-2013, 17:01
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

nutze bitte die forum funktionen um code anzuzeigen .. dann sehen wir ein wenig mehr ;-)
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #6 (permalink)  
Alt 17-04-2013, 00:37
senger1985
 Registrierter Benutzer
Links : Onlinestatus : senger1985 ist offline
Registriert seit: Feb 2013
Beiträge: 85
senger1985 befindet sich auf einem aufstrebenden Ast
Standard

Tut mir leid!
Hab diese Funktion völlig übersehen!

Jetzt bin ich mittlerweile soweit, dass er ":-)" als "smile.gif" in die DB speichert!

Wie schaffe ich es jetzt, das "smile.gif" in einem IMG-Tag kommt und der restliche String als Text ausgegeben wird?

PHP-Code:
$search ":-)";
       
$replace "smile.gif";
       
$message str_replace($search,$replace,$message
Ausgabe in der PHP ist bis dato:
PHP-Code:
<?php echo htmlentities($msg->message); ?>
Gibt dann aber "smile.gif" aus!

Wie gesagt, es soll das Smiley und der Text der nicht umgewandelt wird ausgegeben werden!

Tut mir leid, wenn ich so sehr "nerve"
Mit Zitat antworten
  #7 (permalink)  
Alt 17-04-2013, 05:23
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von senger1985 Beitrag anzeigen
Ausgabe in der PHP ist bis dato:
PHP-Code:
<?php echo htmlentities($msg->message); ?>
Wenn Du htmlentities() auf die Ausgabe anwendest, dann wird doch htmlentities dafür sorgen, dass <img border="0" src="wink.gif" /> auch mit Html-Entities ausgegeben wird. Du musst str_replace nach htmlentities() anwenden.

PHP-Code:
$search  ":-)";
$replace "<img src=\"wink.gif\" alt=\"lächeln\" border=\"0\" />";
$message htmlentities($msg->message);
$message str_replace($search,$replace,$message;    

echo 
$message
Zitat:
Zitat von senger1985 Beitrag anzeigen
Tut mir leid, wenn ich so sehr "nerve"
Du nervst nicht, es sieht nur übersichtlicher aus. So allgemein und nicht auf das Problem bezogen, zwischen einleitenden und schließenden Form-Tag solltest Du nur das unterbringen, was für die Ausgabe des Formulars von Belang ist.

Geändert von Melewo (17-04-2013 um 06:25 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 17-04-2013, 10:04
senger1985
 Registrierter Benutzer
Links : Onlinestatus : senger1985 ist offline
Registriert seit: Feb 2013
Beiträge: 85
senger1985 befindet sich auf einem aufstrebenden Ast
Standard

Hallo Melewo,

vielen dank für deine Hilfe, nur leider geht es nicht!

Ich stelle nochmal ein paar Codes.

In message.php wo die daten in die DB gespeichert werden, stehen jetzt folgende Vars;
PHP-Code:
$name $_POST["name"];
    
$message $_POST["message"];
    
$search ":-)";
    
$replace "<img src=\"smile.gif\" alt=\"l&auml;cheln\" border=\"0\" />" ;
    
$message htmlentities($msg->message);
    
$message str_replace($search,$replace,$message);
    
$farbe $_POST["farbe"]; 
Und in der loadchat.php werden die ganzen Einträge ausgegeben:
PHP-Code:
<b><?php echo htmlentities($msg->name); ?></b>&nbsp;(<?php echo $msg->datum?>):&nbsp;<i><?php echo htmlentities($msg->message); ?></i>
Nur wird jetzt leider nichts mehr angezeigt!
Mit Zitat antworten
  #9 (permalink)  
Alt 17-04-2013, 10:50
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Ich denke so bei mir, Du hast da einen kleinen Denkfehler in der Reihenfolge. Ich benutze zwar keine Smileys (oder wie die Dinger sich nennen), doch zum Teil noch BBCode. Ich gehe mal davon aus (möglich das ich falsch liege), dass ":-)" diese Zeichen aus dem gleichen Grund verwendet werden, wie BBCode und dieser Grund besteht halt darin, eben kein HTML in einer Datenbank zu speichern. Denn wer das Speichern von HTML möchte, der könnte ja gleich die Image-Tags mit den URIs speichern, statt ":-)" zu verwenden.

Somit speicherst Du in der Datenbank

PHP-Code:
:-), [i]kursiv[/i], [b]fett[/b], [link]URL[/link
und wandelst dann erst im letzten Schritt vor Ausgabe die erlaubten Eingaben gegen ihre HTML-Entsprechungen um, wodurch eine gewisse zusätzliche Sicherheit vor Verseuchungen der Datenbank gegeben ist.

Es gibt da wohl einige Grundformen, die auch ohne Image angezeigt werden und somit recht universell sein sollten, doch wenn Du da Smileys als Images speichern und laden möchtest und dann noch versuchst die Ausgabe mit htmlentities abzusichern, dann ginge es nicht ohne BBC ab.

PHP-Code:
// speichern mit:
$replace "[img]wink.gif[/img]";

// ausgeben mit:
$message htmlentities($msg->message);
$message preg_replace("/[img\](.+?)[\/img\]/","<img src=\"$1\" alt=\"Smiley\" border=\"0\" />",$message;    

echo 
$message
Tust Du es nicht, so wandelt htmlentities (auch htmlspecialchars) "<" in "&lt;" um und Du hast den Salat. Ob so oder so, umgewandelt wird vor Ausgabe und nicht vor Speicherung. Und statt [img]wink.gif[/img] wird sich wohl gleich ":-)" speichern und vor Ausgabe wie im ersten Beispiel umwandeln lassen. Nehme ich zumindest an, habe es mit ":-)" noch nicht getestet, würde es an Deiner Stelle aber. Wobei ich aber auch schon gesehen habe, dass es bei Punkt, Komma, Strich im Satzgefüge zu Verwechselungen kam, was mehr für die Variante mit [img] bild.gif[/img] sprechen würde.

Geändert von Melewo (17-04-2013 um 12:54 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 17-04-2013, 14:23
senger1985
 Registrierter Benutzer
Links : Onlinestatus : senger1985 ist offline
Registriert seit: Feb 2013
Beiträge: 85
senger1985 befindet sich auf einem aufstrebenden Ast
Standard

/*closed & solved*/
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
number_format($row[0],"","",".") geht nicht mehr? Truncate PHP Developer Forum 6 30-09-2012 13:20
5x Praktikum: "Marketing" oder "Webdesign" o. "Kommunikation" ... transparent Jobgesuche 4 18-06-2007 17:02
Soap "Could not connect to host" "HTTP" Fehler. Funktioniert auf localhost aber Tormentor PHP Developer Forum 1 29-09-2006 15:26
Mysql einrtag bei <input type="submit" name="Submit" value="Posten" Mathes HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 1 05-07-2006 16:05
"Focus": Absatz von PC-Spiel "Counter-Strike" seit Erfurt gestiegen Aroree News / Kostenloses 0 09-06-2002 13:05

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:27 Uhr.