Wie kann man einzelne HTML-Tags erlauben (htmlspecialchars)?

2 Antworten

Mit htmlspecialchars() dürfte das nicht möglich sein, denn das "guckt" nicht nach HTJML Tags, sondern ersetzt jedes Zeichen einzeln. 

Mit strip_tags() ist das aber kein Problem, da kannst du als zweiten Parameter die erlaubten Tags angeben: http://php.net/strip_tags

Danke schön.

Allerdings werden die Tags immernoch als Klartext ausgegeben. Muss ich den htmlspecialchars()-String entfernen und dafür den mysqli_real_escape_string einsetzen?

0
@Savix

Den String musst du dann nicht mehr mit htmlspecialchars() bearbeiten, es sei denn du willst, dass der Code genau so angezeigt und nicht "ausgeführt" wird, strip_tags() entfernt alle Tags außer der erlaubten.

Für HTML musst du da auch nichts extra escapen, das ist eher dazu gedacht, SQL Injections zu verhindern, ich würde da allerdings gleich Prepared Statements verwenden, dann muss man nicht jeden String, der aus einer Usereingabe kommt, manuell escapen (eins von beidem sollte man aber auf jeden Fall benutzen).

1

Filtere den String mit einem eigenen regulären Ausdruck.

Bestimmte zeichenkette aus string entfernen. PHP, MySQL

Hallo, ich lade mir via php Eine Zeichenkette (genauer gesagt html code) aus meiner sql datenbank und bevor ich den in einem wysiwyg editor ausgebe, möchte ich eine zeichenkette entfernen. wie kann ich das machen? muss ich da preg_replace verwenden, oder gibts da bessere möglichkeiten?

...zur Frage

Alkoholbrennen für Eigenbedarf in der Schweiz

Hallo Alle,

Ich werde einfach nicht schlau draus... in der Schweizer Alkoholverordnung

http://www.admin.ch/ch/d/sr/c680_11.html

steht einfach nichts hilfreiches zu diesem Thema drinnen...

Meine Fragen sind nun: Darf ich jetzt als einzelne private Person schnaps Brennen? Und wenn wie viel? Muss ich diesen Alkohol anmelden/versteuern?

Ist es so wie in Deutschland das bis 0.5 Liter erlaubt ist?

Danke für eure Hilfe....

liebe Grüsse lina

...zur Frage

Ungewollter Zeilenumbruch entfernen, wie?

Hallo zusammen, In meiner Webseite kommt ein Ungewollter Zeilenumbruch.

So sollte es aussehen:

http://zeldafreak.de/

Und so sieht es aus:

index2.php (da nur ein Link erlaubt ist hier nur die endung)

Ich wollte den Text statt direkt auszugeben via der Datenbank ausgeben. Bei der ersten Seite hab ich es normal über HTML ausgegeben und bei der 2. über PHP aber nach eine Abfrage von der Datenbank. Ich hab kein extra Zeilenumbruch eingefügt und es ist auch keiner in der Datenbank.

Orginal Code:

  • Animal Crossing getestet

Der andere Code:

  • <?php
  • // Datenbank Login
  • /Weiterer Teil der DB Abfrage
  • $trim = $zeile1['post_title'];
  • trim($trim);
  • echo $trim;
  • mysqlifreeresult( $db_erg ); ?>

Wie ihr seht hab ich es mal mit trim versucht aber das bleibt immer noch so... Hoffe ihr könnt mir helfen

...zur Frage

gute ausreden , um später nach hause zu kommen?

hey leute , meine eltern erlauben mir fast nichts , habt ihr ne idee , was für ne ausrede ich bringen kann , damit meine mutter mir erlaubt weningstens ne stunde länger zu bleiben?

...zur Frage

MySQL Datenbank mit Java verbinden?

Hallo, Ich möchte eine MySQL Datenbank in einem Java Programm darstellen. Dazu hab ich von http://www2.math.uni-wuppertal.de/~schaefer/jv/haupt/node112.html ein Beispiel kopiert allerdings funktioniert es nicht.

Ich habe die Datenbank in MySQL erstellt und im Programm die richtigen hostname, username usw. angegeben. Nur bei dem Treiber bin ich mir nicht sicher ob ich den richtigen Namen reingeschrieben habe.

Java Programm:

package simplequery;

import java.sql.*; 

// Notice, do not import org.gjt.mm.mysql.* 
// or you will have problems! 

public class SimpleQuery { 
     
    public static void main(String[] args) { 
 
        // Diese Eintraege werden zum 
        // Verbindungsaufbau benoetigt. 
        final String hostname = "localserver"; 
        final String port = "3306"; 
        final String dbname = "projekt"; 
        final String user = "root"; 
        final String password = "asdf1234"; 
    
        Connection conn = null; 
    
        try { 
            System.out.println("* Treiber laden"); 
            Class.forName("com.mysql.jdbc.Driver").newInstance(); 
            //Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
        } 
        catch (Exception e) { 
            System.err.println("Unable to load driver."); 
            e.printStackTrace();
        } 
        try { 
            System.out.println("* Verbindung aufbauen"); 
            String url = "jdbc:mysql://"+hostname+":"+port+"/"+dbname;
            conn = DriverManager.getConnection(url, user, password); 
        
            System.out.println("* Datenbank-Verbindung beenden"); 
            conn.close(); 
        } 
        catch (SQLException sqle) { 
            System.out.println("SQLException: " + sqle.getMessage()); 
            System.out.println("SQLState: " + sqle.getSQLState()); 
            System.out.println("VendorError: " + sqle.getErrorCode()); 
            sqle.printStackTrace(); 
        } 
        
     } // ende: public static void main() 
    
} // ende: public class SimpleQuery 

Dabei kommt jedoch immer folgende Fehlermeldung:

* Treiber laden
* Verbindung aufbauen
SQLException: Communications link failure

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

SQLState: 08S01
VendorError: 0

(Ich kann leider nicht die ganze Fehlermeldung hier reinkopieren, weil es zu viele Zeichen sind)

Kann mir jemand erklären was ich hier falsch mache?

...zur Frage

HTML Bildgröße in Prozent der Bildgröße - nicht prozent der Bildschirmgröße!

Hallo Leute!

Ich mache zur Zeit mein Abschlussprojekt. Momentan hänge ich dran, aus einer Datenbank Bilddaten auszulesen (In der Datenbank steht der Bildname, der Aufnahmeort, der Pfad zum Bild auf dem Server, der Preis und die Anzahl der Downloads) und ich möchte das Bild dann ausgeben, wenn es in den Suchergebnissen ist. dazu verwende ich momentan folgenden code:

<img src=\"$path\" height=\"20%\" width=\"20%\" alt=\"$fetch_data->Bildname\">

das steht im PHP-Script, daher die \" statt den normalen Anführungszeichen, in $Path steht der Pfad zum bild und in $fetch_data->Bildname steht der Bildname. Mein Problem ist jetzt, dass ich die Bilder nicht in Originalgröße ausgeben möchte, sondern sie sollen 20% der Ursprünglichen größe haben. mit dieser Schreibweise haben die Bilder jedoch 20% der Bildschirmgröße. Gibt es eine möglichkeit, mein vorhaben umzusetzen, ohne, dass ich eine feste Pixelzahl angebe? Das geht nämlich nicht, weil auch Bilder im Hochformat drin sind.

Danke im Voraus!

lg

...zur Frage

Was möchtest Du wissen?