php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 12-11-2015, 18:21
Truncate
 Registrierter Benutzer
Links : Onlinestatus : Truncate ist offline
Registriert seit: Nov 2005
Beiträge: 423
Truncate kann nur auf Besserung hoffen
Standard DB speichert keine Anführungszeichen

Hallo,

ich speicher/lade meine Daten ganz normal mittels mysql_query(), bei der Speicherung zusätzlich noch mysql_real_escape_string().

Sofern ein User nun irgendeinen Text eingibt und in diesem Anführungszeichen vorhanden sind, speichert es in der Datenbank den jeweiligen String nur bis zum Anführungszeichen.

Muss ich jetzt ernsthaft noch alle Strings VOR der Speicherung mittels addslashes() und beim Laden mit stripslashes() bearbeiten?

Danke!
Mit Zitat antworten
  #2 (permalink)  
Alt 12-11-2015, 18:42
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Truncate Beitrag anzeigen
Muss ich jetzt ernsthaft […]
… das Problem nachvollziehbar beschreiben?

Ja, musst du. Mit den bisher vorliegenden Informationen kann dir nämlich niemand sagen, was du falsch gemacht hast.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 12-11-2015, 18:46
Truncate
 Registrierter Benutzer
Links : Onlinestatus : Truncate ist offline
Registriert seit: Nov 2005
Beiträge: 423
Truncate kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von wahsaga Beitrag anzeigen
… das Problem nachvollziehbar beschreiben?

Ja, musst du. Mit den bisher vorliegenden Informationen kann dir nämlich niemand sagen, was du falsch gemacht hast.
Naja was soll ich da noch groß dazu schreiben?

Ich speichere Formulardaten unverändert mittels mysql_query() und mysql_real_escape_string() in die DB.
Mit Zitat antworten
  #4 (permalink)  
Alt 12-11-2015, 19:03
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Und was soll ich dazu jetzt noch groß dazu schreiben?

Wenn du nicht gewillt bist, mehr Details rauszurücken – dann kann der Thread auch auf den Müll wandern.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 12-11-2015, 19:17
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.788
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Davon abgesehen, dass die mysql_* Funktionen veraltet sind und nicht mehr verwendet werden sollten, ist das Mindesteste, das du posten kannst, ein kurzer Testcode, bei dem das Verhalten nachvollziehbar auftritt. Da eine Datenbank involviert ist, solltest du auch eine Testdatenbank als SQL-Code posten. Alles andere führt nur zu Kaffeesudlesen.

Du solltest nach 394 Beiträgen langsam mitgekriegt haben, wie ein Programmierforum funktionert.
Mit Zitat antworten
  #6 (permalink)  
Alt 12-11-2015, 19:23
Truncate
 Registrierter Benutzer
Links : Onlinestatus : Truncate ist offline
Registriert seit: Nov 2005
Beiträge: 423
Truncate kann nur auf Besserung hoffen
Standard

Gut, also die Daten kommen unverarbeitet aus einem Formular und werden so gespeichert:

Code:
mysql_query("INSERT INTO tabelle (mitarbeiter) VALUES ('".mysql_real_escape_string($_POST['mitarbeiter'])."')");
Wenn jetzt jemand als Mitarbeiter Alex "Spitzname" Konopka eingibt, dann landet in der Datenbank lediglich Alex.

Magic Quotes sind natürlich aus...
Mit Zitat antworten
  #7 (permalink)  
Alt 12-11-2015, 19:42
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.788
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Das ist kein vollständiger Testcode.

So sieht Testcode aus:
PHP-Code:
$link mysql_connect('localhost''root''');
mysql_set_charset('utf8'$link);
mysql_select_db('test'$link);

mysql_query('DROP TABLE IF EXISTS `test`'$link);
mysql_query('
    CREATE TABLE `test` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `mitarbeiter` varchar(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
'
$link);

$value 'Alex "Spitzname" Konopka';

mysql_query("
    INSERT INTO test (mitarbeiter)
    VALUES ('" 
mysql_real_escape_string($value$link) . "')
"
$link); 
Und wenn wir jetzt in die Datenbank schauen, sehen wir folgendes:
Code:
mysql> SELECT * FROM test;
+----+--------------------------+
| id | mitarbeiter              |
+----+--------------------------+
|  1 | Alex "Spitzname" Konopka |
+----+--------------------------+
1 row in set (0.00 sec)
Also entweder enthält $_POST['mitarbeiter'] nicht das, das du denkst, das es enthält, oder du verheimlichst relevanten Code.

Geändert von h3ll (12-11-2015 um 19:44 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 12-11-2015, 20:04
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Truncate Beitrag anzeigen
dann landet in der Datenbank lediglich Alex.
Und das hast du mit phpMyAdmin oder einem anderen DB-Frontend überprüft?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 12-11-2015, 20:18
Truncate
 Registrierter Benutzer
Links : Onlinestatus : Truncate ist offline
Registriert seit: Nov 2005
Beiträge: 423
Truncate kann nur auf Besserung hoffen
Standard

Also in der DB wird es richtig gespeichert, ABER wenn man es wieder in einem Inputfeld ausgibt wird es verstümmelt:

Code:
<input name=mitarbeiter value="Alex "Spitzname" Konopka">
Wie handhabt man sowas? value=' ... ' benutzen? Aber dann spackt er ja sicherlich auch wieder rum wenn jemand irgendwo ' eingibt.
Mit Zitat antworten
  #10 (permalink)  
Alt 12-11-2015, 20:24
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.788
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Also ein ganz anderes Problem, das überhaupt nichts mit der Datenbank zu tun hat. Und das erwähnst du erst im 9. Post vom Thread...

Du beachtest den Kontextwechsel zu HTML nicht. Werte, die du in HTML-Code einfügst, müssen immer mit htmlspecialchars() maskiert werden.
Mit Zitat antworten
  #11 (permalink)  
Alt 12-11-2015, 20:24
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Truncate Beitrag anzeigen
Also in der DB wird es richtig gespeichert, ABER wenn man es wieder in einem Inputfeld ausgibt wird es verstümmelt:

Code:
<input name=mitarbeiter value="Alex "Spitzname" Konopka">
Siehst du, hat also absolut nichts mit dem Einfügen in die Datenbank zu tun.

Zitat:
Wie handhabt man sowas?
https://wiki.selfhtml.org/wiki/Progr...Kontextwechsel
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
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
Speichert falschen Wert ab phphilfe Archiv / Trash 2 06-06-2015 18:42
MySQL findet keine Datensätze, wenn id in Anführungszeichen steht ApoY2k SQL / Datenbanken 10 07-08-2011 19:41
Skript speichert keine Daten ab - wo ist der Fehler? Razen PHP Developer Forum 3 04-01-2010 12:22
IE6 speichert keine Sessions auf localhost. antman PHP Developer Forum 39 27-08-2004 13:30
Der Explorer speichert alles...!! cugar PHP Developer Forum 2 30-12-2003 11:39

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

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

PHP Newsletter Script SuperWebMailer ansehen PHP Newsletter Script SuperWebMailer

Die webbasierte PHP Newsletter Software SuperWebMailer ist die optimale Lösung zur Durchführung eines erfolgreichen E-Mail-Marketings. Zur Nutzung des PHP Script-Pakets ist eine eigene Webpräsenz/Server mit PHP 5 oder neuer, MySQL 4 oder neuer und die

29.04.2021 mirko_swm | Kategorie: PHP/ Mail
OXID eShop

Mit OXID eshop bieten wir Ihnen eine modulare und skalierbare Internet Shopping Software mit einem hervorragenden Preis-/Leistungsverhältnis.

29.04.2021 eric.jankowfsky@ | Kategorie: PHP/ Shops
PHP-Login

Die Aufgabenstellung bestand darin, ein einfaches Login-Script zu erstellen, dass schnell und universell auf jeder Webseiten eingebaut werden kann. Der Schwerpunkt lag dabei auf der Entwicklung eines universell einsetzbarem Modul für den Login und zur

05.04.2021 Wallhalla | Kategorie: PHP/ Kundenverwaltung
 Alle PHP Scripte anzeigen

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