Eintragen in MYSQL funktioniert nicht mehr

nchristoph

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgendes Problem:

Das eintragen von gewissen werten funktioniert von jetzt auf gleich nicht mehr.

Ich habe gerade einige Masslisten eingetragen, die Datei wird auf den Server hochgeladen und auch ins richtige Verzeichnis kopiert der Pfad wird allerdings nicht in die Datenbank eingetragen, obwohl alle Werte stimmen (mit print_r und echo ausgegeben).

Hier mal meine Upload.php:

PHP:
<?php
ob_start();
$holzart = $_POST['holzart'];
$starke = $_POST['starke'];
$klasse = $_POST['klasse'];
$trocken = $_POST['trockenheit'];
$partie = $_POST['partienummer'];
$liste = $_FILES['massliste'];

$holzart2 = utf8_decode($holzart);
$holzart1 = htmlentities($holzart,ENT_QUOTES,'UTF-8');
$starke1 = htmlentities($starke,ENT_QUOTES,'UTF-8');
$klasse1 = htmlentities($klasse,ENT_QUOTES,'UTF-8');
$trocken1 = htmlentities($trocken,ENT_QUOTES,'UTF-8');
$partie1 = htmlentities($partie,ENT_QUOTES,'UTF-8');


$pfad = ("./Masslisten/".$holzart2."/".$klasse."/".$trocken."/".$starke."/");
$pfad1 = ($pfad.$partie.".pdf");
echo($pfad1);

if (isset($_FILES['massliste']) and ! $_FILES['massliste']['error']) {
	if(!is_dir($pfad)){
	mkdir($pfad,0,0777);
	}
    // Alternativ:            and   $_FILES['probe']['size']
   move_uploaded_file($_FILES['massliste']['tmp_name'], $pfad1);

}

print_r($_FILES);



$DbCon->DoSQL("INSERT INTO suchmaschine (Holzart, Klasse, Trockenheit, Partie, Starke, Pfad ,Datum)
VALUES 
	('".mysql_real_escape_string($holzart1)."',
	'".mysql_real_escape_string($klasse1)."',
	'".mysql_real_escape_string($trocken1)."',
	'".mysql_real_escape_string($partie1)."',
	'".mysql_real_escape_string($starke)."',
	'".mysql_real_escape_string(htmlentities($pfad1,ENT_QUOTES,'UTF-8'))."',
	NOW())");


echo "1 Eintrag hinzugefügt";
header("Location:index.php?p=add");


ob_end_flush();
?>

Wie gesagt: Vor Mittag hat es noch funktioniert, gerade von der Mittagspause zurückgekommen und funktioniert nicht mehr, zumindest nicht so wie es soll.

Kann mir wer helfen?
 
Gibt es bei deiner SQL-Klasse auch eine Fehlerausgabe? WEnn ja diese ausgeben lassen.

Hat es einen bestimmten Grund warum alle Varaiblen maskierst ausser "$starke" wenn du sie in die DB schreibst?
 
Meistens fällt einem irgendwann ein das man ja doch was am Code geändert hat. Also nochmal genau überlegen!

Wenn 100% nichts am Code geändert wurde, kann es sein das der übergebene Pfad sich irgendwie geänder hat?
Vielleicht kommt jetzt ein bestimmter Buchstabe (Ä, Ö, Ü, ...) darin vor oder ien bestimmtes ungültiges Zeichen?
 
$starke habe ich übersehen, Danke für den Hinweis.

Ich habe zu 100000000000000000% nichts am Code geändert, ich habe sogar noch ein Backup aufgespielt von in der Früh, auch keine Änderung.

Umlaute werden in die HTML Zeichen umgewandelt.

Es ist, als ob MYSQL irgendwie Blockieren würde.

Es werden alle Daten eingetragen, egal was ich im Formular eingebe, bis auf den Pfad, der sich nicht geändert hat.

Ich werde mal den Server durchstarten, vielleicht hat sich der irgendwo verlaufen und macht nen lockdown.
 
Zuletzt bearbeitet:
Kurze Frage, wieso wendest du auf deine Variablen zweimal mysql_real_escape_string an? Überprüfst du überhaupt, ob deine Variablen gesetzt sind (isset())?
 
Na dann hättest du dem Server halt auch was zum Mittagessen bringen müssen. Nicht nur immer selber den Bauch vollschlagen :D
 
LOL der war gut.

Leider hat er schon wieder denselben Vogel.

Er speichert keine Pfade mit Umlauten in der DB, die Datei liegt aber im richtigen Ordner.

Entweder habe ich bis jetzt Glück gehabt, das ich keine Holzarten mit Umlauten hatte und ich hab irgendwo nen Programmierfehler (glaub ich eher) ODER der Server will mir veräppeln.

Das Script ist bis auf die Änderung mit $starke das gleiche, wie ich es im Einsatz habe.

Kann mir wer helfen? Was für Infos braucht ihr?

Durchstarten vom Server hat diesesmal keine veränderung gebracht.
 
Zuletzt bearbeitet:
Zurück