Ankündigung

Einklappen
Keine Ankündigung bisher.

File Upload in die Datenbank zum eingeloggten User

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • File Upload in die Datenbank zum eingeloggten User

    Hallo,

    ich habe ein kleines Problem! Mein Upload in die Datenbank funktioniert, allerdings wird er nicht zum richtigen User hinzugefügt. Was muss ich zum Quelltext hinzufügen, damit dem User, der sich in der SESSION befindet das File zugeordnet wird?


    Hier ist mein PHP Skript:




    PHP-Code:
    <?php

    session_start
    ();

    error_reporting( ~E_NOTICE ); // avoid notice
    require_once 'Dbconfig.php';

    if(isset(
    $_POST['btnsave']))
    {

    $imgFile $_FILES['user_image']['name'];
    $tmp_dir $_FILES['user_image']['tmp_name'];
    $imgSize $_FILES['user_image']['size'];


    if(empty(
    $imgFile)){
    $errMSG "Please Select Image File.";
    }
    else
    {
    $upload_dir 'user_images/'// upload directory

    $imgExt strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension

    // valid image extensions
    $valid_extensions = array('jpeg''jpg''png''gif'); // valid extensions

    // rename uploading image
    $userpic rand(1000,1000000).".".$imgExt;

    // allow valid image file formats
    if(in_array($imgExt$valid_extensions)){
    // Check file size '5MB'
    if($imgSize 5000000) {
    move_uploaded_file($tmp_dir,$upload_dir.$userpic);
    }
    else{
    $errMSG "Sorry, your file is too large.";
    }
    }
    else{
    $errMSG "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    }
    }


    // if no error occured, continue ....
    if(!isset($errMSG))
    {

    $stmt $link->prepare('INSERT INTO users(userPic) VALUES(:upic)');
    $stmt->bindParam(':upic',$userpic);

    if(
    $stmt->execute())
    {
    $successMSG "new record succesfully inserted ...";
    header("refresh:5;index.php"); // redirects image view page after 5 seconds.
    }
    else
    {
    $errMSG "error while inserting....";
    }
    }
    }
    ?>

    <form method="post" enctype="multipart/form-data" class="form-horizontal">

    <table class="table table-bordered table-responsive">


    <tr>
    <td><label class="control-label">Profile Img.</label></td>
    <td><input class="input-group" type="file" name="user_image" accept="image/*" /></td>
    </tr>

    <tr>
    <td colspan="2"><button type="submit" name="btnsave" class="btn btn-default">
    <span class="glyphicon glyphicon-save"></span> &nbsp; save
    </button>
    </td>
    </tr>

    </table>

    </form>

  • #2
    Was muss ich zum Quelltext hinzufügen, damit dem User, der sich in der SESSION befindet das File zugeordnet wird?
    Nach Usern unterscheiden?!
    Was soll denn hier für eine Zuordnung Deiner Meinung nach passieren:
    PHP-Code:
    $stmt $link->prepare('INSERT INTO users(userPic) VALUES(:upic)');
    $stmt->bindParam(':upic',$userpic); 
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Hat deine Tabelle users denn auch eine spalte id, dann wäre das dein Kriterium, welches du im WHERE einbauen musst. Einen Index solltest du auch haben und einen Primary Key.

      Kommentar


      • #4
        [QUOTE=Arne Drews;n1520907]Nach Usern unterscheiden?!
        Was soll denn hier für eine Zuordnung Deiner Meinung nach passieren:


        Hier soll der User die Möglichkeit haben ein Foto hinzuzufügen und dieses soll dann in Datenbank unter seiner ID gespeichert werden. Ich habe auch schon folgenden Code probiert, allerdings klappt er nicht:

        $stmt = $link->prepare('INSERT INTO users WHERE id= '.mysqli_real_escape_string($link, $_SESSION['id'])." LIMIT 1"'(userPic) VALUES(:upic)');
        $stmt->bindParam(':upic',$userpic);



        Kommentar


        • #5
          und ja eine ID ist in meiner Tabelle users vorhanden

          Kommentar


          • #6
            PHP-Code:
            $stmt $link->prepare('INSERT INTO users WHERE id= '.mysqli_real_escape_string($link$_SESSION['id'])." LIMIT 1"'(userPic) VALUES(:upic)');
            $stmt->bindParam(':upic',$userpic); 
            Bitte nutze Die Code Tags wenn du Code hier einfügen möchtest, Die Schalter dafür findest du auch im erweiterten Editor wenn du auf das Grosse A klickst.

            Dein SQL Statement ist falsch.
            Schaue im Handbuch nach wie das auszusehen hat oder in einem der vielen Tutorials im Netz.
            Wenn du schon mit prepared statements arbeitest warum dann noch mysqli_real_escape_string verwenden?
            Siehe auch im PHP Handbuch dazu, wie man das mit dem einbinden unter PDO macht.

            Schalte auch immer dein error reporting ein und lasse dir SQL Fehler ausgeben.

            Kommentar

            Lädt...
            X