php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.12.2011, 20:34  
Neuer Benutzer
 
Registriert seit: 10.02.2008
Beiträge: 28
schani
Standard Variable mit Sonderzeichen in DB schreiben

Hallo,

ich habe eine Variable die mit HTML Code gefüllt ist. Jetzt will ich diese in ein MySQL TEXT Feld schreiben. Ich habe aber Probleme mit den Sonderzeichen
PHP-Code:
$variable "<a href='test.php?art=1&test=rot'>TEST</a>"
Code:
... UPDATE newsletter_art SET formular = '".$variable ."' WHERE id =1;" ...
Der Inhalt der Variable kommt in der DB nicht an.

Wie kann ich das codieren und später wiederdecodieren damit alle Zeichen sauber abgedeckt sind.

Besten Dank für HIlfe

Christian

PS: $variable = "TEST"; wird gespeichert
schani ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.12.2011, 20:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

mysql_real_escape_string
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 12.12.2011, 00:36  
Erfahrener Benutzer
 
Benutzerbild von Aceh
 
Registriert seit: 01.03.2011
Beiträge: 120
PHP-Kenntnisse:
Anfänger
Aceh befindet sich auf einem aufstrebenden Ast
Aceh eine Nachricht über ICQ schicken
Standard

Klicke auf TEST....
PHP-Code:
<a href='test.php?art=1&test=rot'>TEST</a
...Parameter-wert (test=rot) wird übergeben...
PHP-Code:
$variable $_GET["test"]; 
...nun ist das abgespeichert.
Aceh ist offline   Mit Zitat antworten
Alt 12.12.2011, 12:31  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Es ist ohnehin keine gute Idee, kompletten HTML Code abzuspeichern. In eine Datenbank gehören nur Daten, die die Präsentation selbiger.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 11.01.2012, 14:59  
Neuer Benutzer
 
Registriert seit: 10.02.2008
Beiträge: 28
schani
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Es ist ohnehin keine gute Idee, kompletten HTML Code abzuspeichern. In eine Datenbank gehören nur Daten, die die Präsentation selbiger.
Ja da stimme ich zu. In diesem Fall ist es aber eine spezielle Ausnahme.

Aber, es gibt auch den Fall das man einen RichText Editor bzw. HTML editor in einem Projekt verwendet, der Umfangreiche HTML Funktionen bietet. Diese Inhalte aus dieser TEXTAREA müssen auch in der Datenbank gespeichert werden können.

Geändert von schani (11.01.2012 um 15:10 Uhr).
schani ist offline   Mit Zitat antworten
Alt 11.01.2012, 17:25  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das Problem liegt darin, dass du bei dem Attribut im Link das ' verwendest anstatt dem ".
Das verträgt sich nicht mit deinem Statement...
dreh die Sache um (echo '<a href=""</a>') und es sollte funktionieren
Solu ist offline   Mit Zitat antworten
Alt 18.01.2012, 10:56  
Neuer Benutzer
 
Registriert seit: 10.02.2008
Beiträge: 28
schani
Standard

Ich hab leider immer noch das Problem mit den Sonderzeichen.

Hier noch mal die Beschreibung. Ich habe ein Formularfeld in dem ich Sonderzeichen wie ' " `´ § $ % usw. eingeben muss. Leider bricht mir dann beim speichern MySQL mit Syntax Fehlermeldung ab. Wenn ich das Feld vorher mit mysql_real_escape_string umwandle wird es zwar fehlerfrei abgespeichert, aber vor jdem Sonderzeichen steht dann \ , also \' \" \` \´ \§ \$ \%. Das MySQL Feld ist ein normales Varchar(80).

Woran kann das liegen?

Danke für Hilfe

Christian

PS: Hier im Forum funktioniert es ja auch
schani ist offline   Mit Zitat antworten
Alt 18.01.2012, 11:00  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

das Problem ist dann deine Ausgabe - natürlich führt die Escaping-Funktion IN der Datenbank zu den backslashes - aber reguläres Auslesen sollte dir in jedem Falle den String OHNE diese Zeichen liefern

alle anderen Webprogrammierer benutzen doch auch Escaping und es funktioniert - also zeig bitte deinen Code, wenn es mit der Ausgabe bei dir nicht hinhaut - oder hast du etwa nur mit phpmyadmin hin geschaut ?
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 18.01.2012, 11:18  
Neuer Benutzer
 
Registriert seit: 10.02.2008
Beiträge: 28
schani
Standard

Wie benutzt man denn das Escaping? Ich mach doch nichts anderes als das ich ein Feld (TEXTAREA) in einen Select Befehl übergebe.
PHP-Code:
$input $_POST("inhalt");

$input mysql_real_escape_string($input);

$schreiben mysql_query("INSERT INTO tabelle SET inhalt = '".$input."' WHERE id=36;");
.... 
Wo anders lese ich das normal wieder aus:
PHP-Code:
$result mysql_query("SELECT * FROM tabelle");
while(
$feld mysql_fetch_array($result)){
print 
$feld->inhalt;
}; 
Und schon hab ich die \ vor den Sonderzeichen.

Christian
schani ist offline   Mit Zitat antworten
Alt 18.01.2012, 11:28  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von schani Beitrag anzeigen
Und schon hab ich die \ vor den Sonderzeichen.
Schon mal im Handbuch nachgeguckt, was mysql_real_escape_string() genau macht und warum es stripslashes() gibt?

Geändert von meikel (18.01.2012 um 12:02 Uhr). Grund: Dibbfälr gorrigierd.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variable später nicht mehr definiert? Rollschuh PHP Einsteiger 12 08.10.2011 18:20
PHP Text wird nicht ausgegeben / Notice: undefined variable MBaaboura PHP Einsteiger 26 26.09.2011 11:09
[Erledigt] Mehrere Querys hintereinander funktionieren nicht wernersbacher Datenbanken 3 14.03.2011 23:08
[Erledigt] Variable in foreach erweitern ohne zurücksetzen Polliny PHP Tipps 2010 2 23.06.2010 10:13
[Erledigt] sql - Variable ?? Exception PHP Tipps 2010 9 20.02.2010 04:03
[Erledigt] Sonderzeichen aus Variable filtern SGLog PHP Tipps 2009 7 21.09.2009 20:46
Problem Undefined variable: banbanban PHP Tipps 2009 5 04.03.2009 17:55
Variable per Session übergeben? Spricht etwas dagegen? Lapje PHP Tipps 2008 6 20.10.2008 21:49
Undefined variable Undefined property: block xxJJxx PHP Tipps 2008 16 05.08.2008 15:30
Variable auf sonderZeichen checken SaIG PHP Tipps 2007 12 12.05.2007 18:11
Die Sache mit den Sonderzeichen nach und vor Formularprüfung TailerD PHP Tipps 2006 12 02.06.2006 12:58
Variable durch 2. Variable bestimmen Quagga PHP Tipps 2005-2 11 26.10.2005 17:34
Variable in Objekt php1 HTML, Usability und Barrierefreiheit 2 25.06.2005 08:08
Variable in einer Variable Beatbox PHP Tipps 2005 7 15.01.2005 15:55
Warum wird Variable nicht übergeben??? Anuschka PHP Tipps 2005 2 06.01.2005 13:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
text und variabeln in db schreiben

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum