Upload ja, aber keine Eintragung in DB

Gesperrt
rok°!
Beiträge: 47
Registriert: Do 17. Nov 2005, 18:17
Kontaktdaten:

Upload ja, aber keine Eintragung in DB

Beitrag von rok°! » Di 6. Nov 2007, 09:03

Hallo!
Der Upload einer Datei wird im BE nicht registriert. D.h. die Datei ist nach dem Upload im richtigen Verzeichnis (per FTP nachgesehen), wird aber im Dateimanager nicht angezeigt. In con_upl steht auch nichts weiter.

Wo kann ich mit suchen beginnen?
Dateiberechtigungen auf den speziellen Pfaden scheinen ja imho zu stimmen...

Contenido 4.6.8, Serer: IIS6 mit PHP5.1.6

Was ich noch weiß (evtl. helfen die Informationen):
Das System scheint vom Kunden vor kurzem umgezogen worden zu sein. Allerdings wurde die Konfig. manuell angepasst. Demzufolge wohl nicht richtig ;)
Alle anderen Funktionen scheinen aber tadellos zu laufen.

wosch

Re: Upload ja, aber keine Eintragung in DB

Beitrag von wosch » Di 6. Nov 2007, 12:42

rok°! hat geschrieben:Wo kann ich mit suchen beginnen?
Dateiberechtigungen auf den speziellen Pfaden scheinen ja imho zu stimmen...
Mir ist sowas ähnliches auch mal passiert.
Da habe ich per FTP nachgeholfen, und die Server-Konfiguration hat bei FPT einen anderen Nutzer gesetzt.
Mit chown einfach die Berichtgungen neu setzen lassen (hat der Provider gemacht) und dann lief es.
Kontrollier mal Rechte und Berechtigungen. Eventuell hlft es dir.

rok°!
Beiträge: 47
Registriert: Do 17. Nov 2005, 18:17
Kontaktdaten:

Beitrag von rok°! » Di 6. Nov 2007, 13:06

Wie kontrolliere ich die auf ner Win Maschine? Geht doch sicherlich nur lokal.

Und wenn die Datei per Upload in dem korrekten Ordner liegt, dann hat das doch nichts mit den Berechtigungen zu tun. Oder? Sie muss dann lediglich nur noch in die DB geschrieben werden...

wosch

Beitrag von wosch » Di 6. Nov 2007, 13:16

rok°! hat geschrieben:Wie kontrolliere ich die auf ner Win Maschine? ...
Das hatte ich übersehen das es ein Windows-Server ist.
Meines Wissens gibt es da diese Berechtigungen nicht. Da muß ich passen.

rok°!
Beiträge: 47
Registriert: Do 17. Nov 2005, 18:17
Kontaktdaten:

Beitrag von rok°! » Di 6. Nov 2007, 13:20

Kein Problem. Aber mal rein hypotetisch: Was kann denn nach dem Upload noch alles schiefgehen, dass der Eintrag in der DB nicht korrekt durchgeführt wird?
Kann man irgendwo mal ein debugging aktivieren, o.ä.?

wosch

Beitrag von wosch » Di 6. Nov 2007, 13:25

rok°! hat geschrieben:Was kann denn nach dem Upload noch alles schiefgehen,
Ist es nur das eine Bild?
Nur in dem Verzeichnis?
Gehen andere Bilder, in anderen Verzeichnissen?

Bild zu groß, Bild-Datei beim Transfer beschädigt, nicht alle Contenido-Dateien auf dem Server, ...
Errorlog?

rok°!
Beiträge: 47
Registriert: Do 17. Nov 2005, 18:17
Kontaktdaten:

Beitrag von rok°! » Di 6. Nov 2007, 13:32

Es handelt sich grundsätzlich um den Uplaod im Dateimanager.
Getestet wurde mit verschiedenen Größen. Und wie erwähnt: die Bilder liegen im gewünschten Verzeichnis. Nur der Eintrag in der DB fehlt und somit zeigt der Dateimanager die Datei nicht an!

Theoretisch dürfte ja nix kaputt gehen, wenn ich mal von 4.6.8 auf die aktuelle 4.6.23 upgrade, oder? (Backup versteht sich...)

rok°!
Beiträge: 47
Registriert: Do 17. Nov 2005, 18:17
Kontaktdaten:

Beitrag von rok°! » Di 6. Nov 2007, 17:19

Hab noch etwas geforscht. Die error.log hatte noch einen Schreibschutz. Jetzt bekomme ich auch wieder Fehlermeldungen!
[06-Nov-2007 17:14:39] /contenido/main.php?area=upl&frame=4&path=bilder/&appendparameters=&contenido=8c799535eb487e1ce51ae409ca067324 MySQL error 1364: Field 'filename' doesn't have a default value
INSERT INTO con_upl (idupl) VALUES (175)
[06-Nov-2007 17:14:51] /contenido/main.php MySQL error 1364: Field 'filename' doesn't have a default value
INSERT INTO con_upl (idupl) VALUES (176)
[06-Nov-2007 17:14:51] /contenido/main.php MySQL error 1364: Field 'filename' doesn't have a default value
INSERT INTO con_upl (idupl) VALUES (177)
Leider habe ich keinen blassen Schimmer, was da gemeckert wird.

So sieht der Dump von con_upl aus:

Code: Alles auswählen

CREATE TABLE `con_upl` (
  `idupl` int(10) NOT NULL default '0',
  `idclient` int(10) NOT NULL default '0',
  `filename` varchar(255) NOT NULL,
  `dirname` varchar(255) NOT NULL,
  `filetype` varchar(255) NOT NULL,
  `size` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `status` int(11) NOT NULL default '0',
  `author` varchar(32) NOT NULL,
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `lastmodified` datetime NOT NULL default '0000-00-00 00:00:00',
  `modifiedby` varchar(32) NOT NULL,
  PRIMARY KEY  (`idupl`),
  KEY `idclient` (`idclient`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Ist da was falsch dran?

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Di 6. Nov 2007, 17:26

von mir aus gesehen schon. wenn ein feld NOT NULL ist, wird normalerweise ein default-wert angegeben. contenido speichert offenbar zunächst einen leer-eintrag, um diesen dann zu aktualisieren. und das ist nicht möglich, wenn das feld filename NOT NULL deklariert ist, aber keinen default-wert aufweist.

es gibt zwei lösungen (gilt nur für das feld filename):

(1) default-wert hinzufügen
(2) oder von NOT NULL auf NULL stellen.

NOT NULL = Null-Einträge sind nicht zulässig, NULL = Null-Einträge sind zulässig.

ich hoffe, das hilft dir weiter.

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

rok°!
Beiträge: 47
Registriert: Do 17. Nov 2005, 18:17
Kontaktdaten:

Beitrag von rok°! » Di 6. Nov 2007, 17:57

Liegt eventuell daran, dass der Dump mit ner 2.6er phpMyAdmin Version gemacht wurde. Eventuell exportiert die etwas fehlerhaft.

Allerdings glaub ich den Fehler gefunden zu haben. Wenn ihn der Provider beseitigt hat, gebe ich nochmal Bescheid. Und zwar läuft der MySQL Server mit sql_mode Anweisungen...
So kann man das testen:

Code: Alles auswählen

SHOW VARIABLES LIKE 'sql_mode';
Gemäß Archiv wird empfohlen die Einstellungen zu deaktivieren. Ich will hoffen, dass er das macht :)

rok°!
Beiträge: 47
Registriert: Do 17. Nov 2005, 18:17
Kontaktdaten:

Beitrag von rok°! » Mi 7. Nov 2007, 09:27

OK, lag tatsächlich an dem gesetzten sql_mode.
Hat jemand eine Ahnung, wie man diesen für einen User ändert (statt global)? Ich mein, Contenido könnte das ja an sich auch, mit

Code: Alles auswählen

SET sql_mode = '';
vor jeder Transaktion machen. Macht es das vielleicht auch schon, und ich weiß nur nicht, wo ich da ein Häkchen setzen soll?

Gesperrt