PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Dateipfad bei Upload in Datenbank abspeichern (http://www.selfphp.de/forum/showthread.php?t=25985)

ThisIsBeat 06.04.2017 22:05:53

Dateipfad bei Upload in Datenbank abspeichern
 
Hallo,

da dies mein erster Beitrag in diesem Forum ist entschuldige ich mich schon mal vorab falls es zu kleineren Fehlern kommt was Regeln angeht :)

Hier erstmal mein Code:
PHP-Code:

<?php
session_start
();
if(!isset(
$_SESSION['userid'])) {
    die(
'Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}
$userid $_SESSION['userid'];

$upload_folder 'upload3/'//Das Upload-Verzeichnis
$filename "bild_user".$userid.$Kategorie;
$extension strtolower(pathinfo($_FILES['datei']['name'], PATHINFO_EXTENSION));
 
//Überprüfung der Dateiendung
$allowed_extensions = array('png''jpg''jpeg''gif',);
if(!
in_array($extension$allowed_extensions)) {
    die(
"Ungültige Dateiendung. Nur png, jpg, jpeg und gif-Dateien sind erlaubt");
}
 
//Überprüfung der Dateigröße
$max_size 4000*1024//4000 MB
if($_FILES['datei']['size'] > $max_size) {
    die(
"Bitte keine Dateien größer 4mb hochladen");
}

//Überprüfung dass das Bild keine Fehler enthält
if(function_exists('exif_imagetype')) { //Die exif_imagetype-Funktion erfordert die exif-Erweiterung auf dem Server
    
$allowed_types = array(IMAGETYPE_PNGIMAGETYPE_JPEGIMAGETYPE_GIF,);
    
$detected_type exif_imagetype($_FILES['datei']['tmp_name']);
    if(!
in_array($detected_type$allowed_types)) {
        die(
"Nur der Upload von Bilddateien ist gestattet");
    }
}

//Pfad zum Upload
$new_path $upload_folder.$filename.'.'.$extension;
//Neuer Dateiname falls die Datei bereits existiert
if(file_exists($new_path)) { //Falls Datei existiert, hänge eine Zahl an den Dateinamen
    
$Anzahl 1;
    do {
        
$new_path $upload_folder.$filename.$Anzahl.'.'.$extension;
        
$Anzahl++;
    } while(
file_exists($new_path)); 
}

//Alles okay, verschiebe Datei an neuen Pfad
move_uploaded_file($_FILES['datei']['tmp_name'], $new_path);
echo 
'Bild erfolgreich hochgeladen, zur&uumlck zur <a href="loogin.php">Startseite</a>';
?>

So und nun zu meinem Problem :) Was ihr hier seht ist ein Script das ich selbst geschrieben habe und mit dem es möglich ist Bilder hochzuladen und auf meiner Website anzeigen zu lassen. Das ganze funktioniert auch wirklich wunderbar und die Bilder werden wie gewollt in einem Ordner gespeichert. Soweit so gut.

Nun habe ich mir gedacht das es durchaus von Vorteil sein kann/könnte wenn der Dateipfad des Bildes zusätzlich in der Datenbank abgespeichert werden würde, damit ich bzw. die Datenbank auch weiß welches Bild zu welchem User gehört.

Und genau an dieser Stelle habe ich Probleme. Jetzt mal ganz plump gefragt: Wie kann ich den Dateipfad aus dem Script (also $new_path) in meine Datenbank abspeichern ?

Mit diesem Code habe ich mein Glück versucht doch es hat nicht funktioniert :/
PHP-Code:

$pdo = new PDO('mysql:host=localhost;dbname=Datenbank_NEU''root''hase123');
$statement $pdo->prepare("INSERT INTO adressen (pfad) VALUES ('$new_path')");
$statement->execute(); 

PS: Die Spalte in die der Dateipfad($new_path) gespeichert werden soll heißt "pfad".

Hat jemand ne Idee und kann mir weiterhelfen ? :)

chorn 07.04.2017 08:47:16

AW: Dateipfad bei Upload in Datenbank abspeichern
 
Frag erstmal ob du Fehler bekommst

PHP-Code:

var_dump($statement->errorInfo()); 


sysop 07.04.2017 09:45:01

AW: Dateipfad bei Upload in Datenbank abspeichern
 
Entschuldige, verstehe ich das richtig?

Du schaffst es die Variable mit dem Dateinamen zu übergeben und zu speichern?
Du schaffst es nicht, das selbe mit dem Pfad zu machen?

ThisIsBeat 07.04.2017 16:26:22

AW: Dateipfad bei Upload in Datenbank abspeichern
 
habe ich bereits gemacht doch leider werden keine Fehler angezeigt ;/

ThisIsBeat 07.04.2017 16:31:53

AW: Dateipfad bei Upload in Datenbank abspeichern
 
Zitat:

Zitat von sysop (Beitrag 149067)
Entschuldige, verstehe ich das richtig?

Du schaffst es die Variable mit dem Dateinamen zu übergeben und zu speichern?
Du schaffst es nicht, das selbe mit dem Pfad zu machen?


Im Prinzip ja. Ich schaffe es nicht den Dateipfad in die Datenbank einzutragen und ich weiß absolut nicht wieso das nicht funktioniert :/

ThisIsBeat 07.04.2017 17:24:31

AW: Dateipfad bei Upload in Datenbank abspeichern
 
Ich bin gerade dabei meinen Fehler zu finden und fange dabei beim einfachsten an. Ich habe versucht eine einfache Variable in meine Datenbank Eintagen zu lassen mit folgendem Code:
PHP-Code:

<?php
$Pfad 
"hallo";
echo 
$Pfad;
$pdo = new PDO('mysql:host=localhost;dbname=Datenbank_NEU''root''lehar456');
$statement $pdo->prepare("INSERT INTO adressen (pfad) VALUES ('$Pfad')");
$statement->execute();
?>

die Variable $Pfad soll in die Datenbank eingetragen werden aber wird sie nicht. Ist irgendwas an der Schreibweise falsch oder wieso funktioniert selbst sowas einfaches nicht ?

chorn 10.04.2017 08:56:43

AW: Dateipfad bei Upload in Datenbank abspeichern
 
PHP-Code:

var_dump($statement->errorInfo()); 


ThisIsBeat 12.04.2017 18:14:38

AW: Dateipfad bei Upload in Datenbank abspeichern
 
Zitat:

Zitat von chorn (Beitrag 149072)
PHP-Code:

var_dump($statement->errorInfo()); 


Also ich habe folgenden Fehler bekommen:

array(3) { [0]=> string(5) "HY000" [1]=> int(1364) [2]=> string(47) "Field 'geschlecht' doesn't have a default value" }

Jetzt ist die Sache aber das dass Feld Geschlecht bereits während der Registrierung belegt wird. In der Datenbank existiert auch zu jedem User ein Eintrag in der Spalte "Geschlecht". Deswegen verstehe ich den Fehler nicht ganz...

chorn 13.04.2017 08:34:47

AW: Dateipfad bei Upload in Datenbank abspeichern
 
dein letztes Statement ist doch ein Insert. Der Datensatz hat also noch kein Geschlecht.


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:44:41 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.