• 19-04-2021, 15:09:40
    #1
    Selam, aşağıda belirttiğim gibi bir upload kodum var. Bu kod resim yüklendikten sonra yüklenen resmin adını (trim ve str_replace olarak boşlukları siliyorum, silinmiş halini alması gerekli) sql de resimler isimli tabloma yazdırılmasını istiyorum. Resimler tablosundaki sütunlar şu şekilde : id , resim , aktif , tarih (resim linkini almasını istiyorum yani resimin adının yanına resim hangi format olarak kayıt edilmişse onu yazıcak örneğin : https://ornek.com/uploads/resim.png tarzında resim sütununa kayıt etsin istiyorum) aktif sütununu falan boşverin default olarak ayarlayacağım sql den. tek upload ve sql işlemleri bu dosyada gerçekleşeceğinden config dosyasıyla falan uğraşmadım bunun yerine direk pdo mantığı sql e aşağıdaki kod üzerinde bağlansın işlemi yapsın ardından die çeksin. Kendim çok uğraştım ama sürekli bir hata aldım. Bu konuda kodumu düzenleyip yardımcı olabilir misiniz rica etsem?

    Şimdiden teşekkür ederim. Kod aşağıdadır,

    upload.php
    <?php
    $target_dir = "../uploads/";
    $target_file = $target_dir . trim(basename(str_replace(" ", "",$_FILES["fileToUpload"]["name"])));
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
    
    if(isset($_POST["submit"])) {
      $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
      if($check !== false) {
        echo "Dosya Resim - " . $check["mime"] . ".";
        $uploadOk = 1;
      } else {
        echo "Dosya bir resim değil, bu sebepten yükleme engellendi. ";
        $uploadOk = 0;
      }
    }
    
    if (file_exists($target_file)) {
      echo "Üzgünüm, Bu dosya zaten mevcut.";
      $uploadOk = 0;
    }
    
    if ($_FILES["fileToUpload"]["size"] > 50000000000000) {
      echo "Üzgünüm, Dosyanız Çok Büyük";
      $uploadOk = 0;
    }
    
    
    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
    && $imageFileType != "gif" ) {
      echo "Üzgünüm, yalnızca JPG, JPEG, PNG & GIF dosya uzantıları kabul edilir. ";
      $uploadOk = 0;
    }
    
    if ($uploadOk == 0) {
      echo "Hata, Dosyalarınız Yüklenemedi";
    
    } else {
      if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "Dosya adı :  ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " Yüklendi. ";
      } else {
        echo "HATA !, bir sorun gerçekleşti. ";
      }
    }
    ?>
  • 19-04-2021, 15:19:27
    #2
    <?php
    ini_set('error_reporting', E_ALL);
    date_default_timezone_set('Europe/Istanbul');
    $dbhost = 'localhost';
    $dbname = 'dbname';
    $dbuser = 'dbuser';
    $dbpass = 'dbpass]';
    define("BASE_URL", "http://localhost/");
    try {
        $pdo = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch( PDOException $ex ) {
        echo "Connection error :" . $ex->getMessage();
    }
    
    if(isset($_POST['form1'])) {
        $valid = 1;
        if(empty($_POST['photo_caption'])) {
            $valid = 0;
            $error_message .= "Photo Caption Name can not be empty<br>";
        }
        $path = $_FILES['photo']['name'];
        $path_tmp = $_FILES['photo']['tmp_name'];
        if($path == '') {
            $valid = 0;
            $error_message .= "You must have to select a photo<br>";
        } else {
            $ext = pathinfo( $path, PATHINFO_EXTENSION );
            $file_name = basename( $path, '.' . $ext );
            if( $ext!='jpg' && $ext!='png' && $ext!='jpeg' && $ext!='gif' ) {
                $valid = 0;
                $error_message .= 'You must have to upload jpg, jpeg, gif or png file<br>';
            }
        }
        if(empty($_POST['p_category_id'])) {
            $valid = 0;
            $error_message .= "You must have to select a photo category<br>";
        }
        if($valid == 1) {
            // getting auto increment id for photo renaming
            $statement = $pdo->prepare("SHOW TABLE STATUS LIKE 'tbl_photo'");
            $statement->execute();
            $result = $statement->fetchAll();
            foreach($result as $row) {
                $ai_id=$row[10];
            }
            // uploading the photo into the main location and giving it a final name
            $final_name = 'photo-'.$ai_id.'.'.$ext;
            move_uploaded_file( $path_tmp, '../assets/uploads/'.$final_name );
            // saving into the database
            $statement = $pdo->prepare("INSERT INTO tbl_photo (photo_caption,photo_name,p_category_id) VALUES (?,?,?)");
            $statement->execute(array($_POST['photo_caption'],$final_name,$_POST['p_category_id']));
            $success_message = 'Photo is added successfully.';
        }
    }
    ?>
    <section class="content">
        <div class="row">
            <div class="col-md-12">
                <?php if($error_message): ?>
                <div class="callout callout-danger">
                <p>
                <?php echo $error_message; ?>
                </p>
                </div>
                <?php endif; ?>
                <?php if($success_message): ?>
                <div class="callout callout-success">
                <p><?php echo $success_message; ?></p>
                </div>
                <?php endif; ?>
                <form class="form-horizontal" action="" method="post" enctype="multipart/form-data">
                    <div class="box box-info">
                        <div class="box-body">
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label">Photo Caption <span>*</span></label>
                                <div class="col-sm-4">
                                    <input type="text" class="form-control" name="photo_caption">
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label">Upload Photo <span>*</span></label>
                                <div class="col-sm-4" style="padding-top:6px;">
                                    <input type="file" name="photo">
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label">Photo Category <span>*</span></label>
                                <div class="col-sm-4">
                                    <select class="form-control" name="p_category_id">
                                        <option value="">Select a photo category</option>
                                        <?php
                                        $statement = $pdo->prepare("SELECT * FROM tbl_category_photo ORDER BY p_category_name ASC");
                                        $statement->execute();
                                        $result = $statement->fetchAll(PDO::FETCH_ASSOC);                            
                                        foreach ($result as $row) {
                                            echo '<option value="'.$row['p_category_id'].'">'.$row['p_category_name'].'</option>';
                                        }
                                        ?>
                                    </select>
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label"></label>
                                <div class="col-sm-6">
                                    <button type="submit" class="btn btn-success pull-left" name="form1">Submit</button>
                                </div>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </section>
    bunu denermisin
  • 19-04-2021, 15:22:50
    #3
    erolkarakoy adlı üyeden alıntı: mesajı görüntüle
    <?php
    ini_set('error_reporting', E_ALL);
    date_default_timezone_set('Europe/Istanbul');
    $dbhost = 'localhost';
    $dbname = 'dbname';
    $dbuser = 'dbuser';
    $dbpass = 'dbpass]';
    define("BASE_URL", "http://localhost/");
    try {
        $pdo = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch( PDOException $ex ) {
        echo "Connection error :" . $ex->getMessage();
    }
    
    if(isset($_POST['form1'])) {
        $valid = 1;
        if(empty($_POST['photo_caption'])) {
            $valid = 0;
            $error_message .= "Photo Caption Name can not be empty<br>";
        }
        $path = $_FILES['photo']['name'];
        $path_tmp = $_FILES['photo']['tmp_name'];
        if($path == '') {
            $valid = 0;
            $error_message .= "You must have to select a photo<br>";
        } else {
            $ext = pathinfo( $path, PATHINFO_EXTENSION );
            $file_name = basename( $path, '.' . $ext );
            if( $ext!='jpg' && $ext!='png' && $ext!='jpeg' && $ext!='gif' ) {
                $valid = 0;
                $error_message .= 'You must have to upload jpg, jpeg, gif or png file<br>';
            }
        }
        if(empty($_POST['p_category_id'])) {
            $valid = 0;
            $error_message .= "You must have to select a photo category<br>";
        }
        if($valid == 1) {
            // getting auto increment id for photo renaming
            $statement = $pdo->prepare("SHOW TABLE STATUS LIKE 'tbl_photo'");
            $statement->execute();
            $result = $statement->fetchAll();
            foreach($result as $row) {
                $ai_id=$row[10];
            }
            // uploading the photo into the main location and giving it a final name
            $final_name = 'photo-'.$ai_id.'.'.$ext;
            move_uploaded_file( $path_tmp, '../assets/uploads/'.$final_name );
            // saving into the database
            $statement = $pdo->prepare("INSERT INTO tbl_photo (photo_caption,photo_name,p_category_id) VALUES (?,?,?)");
            $statement->execute(array($_POST['photo_caption'],$final_name,$_POST['p_category_id']));
            $success_message = 'Photo is added successfully.';
        }
    }
    ?>
    <section class="content">
        <div class="row">
            <div class="col-md-12">
                <?php if($error_message): ?>
                <div class="callout callout-danger">
                <p>
                <?php echo $error_message; ?>
                </p>
                </div>
                <?php endif; ?>
                <?php if($success_message): ?>
                <div class="callout callout-success">
                <p><?php echo $success_message; ?></p>
                </div>
                <?php endif; ?>
                <form class="form-horizontal" action="" method="post" enctype="multipart/form-data">
                    <div class="box box-info">
                        <div class="box-body">
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label">Photo Caption <span>*</span></label>
                                <div class="col-sm-4">
                                    <input type="text" class="form-control" name="photo_caption">
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label">Upload Photo <span>*</span></label>
                                <div class="col-sm-4" style="padding-top:6px;">
                                    <input type="file" name="photo">
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label">Photo Category <span>*</span></label>
                                <div class="col-sm-4">
                                    <select class="form-control" name="p_category_id">
                                        <option value="">Select a photo category</option>
                                        <?php
                                        $statement = $pdo->prepare("SELECT * FROM tbl_category_photo ORDER BY p_category_name ASC");
                                        $statement->execute();
                                        $result = $statement->fetchAll(PDO::FETCH_ASSOC);                            
                                        foreach ($result as $row) {
                                            echo '<option value="'.$row['p_category_id'].'">'.$row['p_category_name'].'</option>';
                                        }
                                        ?>
                                    </select>
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label"></label>
                                <div class="col-sm-6">
                                    <button type="submit" class="btn btn-success pull-left" name="form1">Submit</button>
                                </div>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </section>
    bunu denermisin
    Hocam, teşekkür ederim ancak benim formumda yalnızca dosya inputu var bunda katagori vs. var. Onları silerim ama yinede benim kod üzerinde düzenleme yapabilirseniz çok minnetar olurum. Teşekkür ederim
  • 19-04-2021, 15:38:43
    #4
    AndMex adlı üyeden alıntı: mesajı görüntüle
    Hocam, teşekkür ederim ancak benim formumda yalnızca dosya inputu var bunda katagori vs. var. Onları silerim ama yinede benim kod üzerinde düzenleme yapabilirseniz çok minnetar olurum. Teşekkür ederim
    <?php
    ini_set('error_reporting', E_ALL);
    date_default_timezone_set('Europe/Istanbul');
    $dbhost = 'localhost';
    $dbname = 'dbname';
    $dbuser = 'dbuser';
    $dbpass = 'dbpass]';
    define("BASE_URL", "http://localhost/");
    try {
        $pdo = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch( PDOException $ex ) {
        echo "Connection error :" . $ex->getMessage();
    }
    
    if(isset($_POST['form1'])) {
        $valid = 1;
        if(empty($_POST['filetoupload'])) {
            $valid = 0;
            $error_message .= "filetoupload alanı boş<br>";
        }
        $path = $_FILES['resim']['name'];
        $path_tmp = $_FILES['resim']['tmp_name'];
        if($path == '') {
            $valid = 0;
            $error_message .= "Resim seçin<br>";
        } else {
            $ext = pathinfo( $path, PATHINFO_EXTENSION );
            $file_name = basename( $path, '.' . $ext );
            if( $ext!='jpg' && $ext!='png' && $ext!='jpeg' && $ext!='gif' ) {
                $valid = 0;
                $error_message .= 'Tur jpg, jpeg, gif ve png Uzantısı Olmalı<br>';
            }
        }
        if($valid == 1) {
            $statement = $pdo->prepare("SHOW TABLE STATUS LIKE 'tbl_resim'");
            $statement->execute();
            $result = $statement->fetchAll();
            foreach($result as $row) {
                $ai_id=$row[10];
            }
            $final_name = 'resim-'.$ai_id.'.'.$ext;
            move_uploaded_file( $path_tmp, '../uploads/'.$final_name );
            $statement = $pdo->prepare("INSERT INTO tbl_resim (filetoupload,name) VALUES (?,?)");
            $statement->execute(array($_POST['filetoupload'],$final_name));
            $success_message = 'Resim yüklendi.';
        }
    }
    ?>
    <section class="content">
        <div class="row">
            <div class="col-md-12">
                <?php if($error_message): ?>
                <div class="callout callout-danger">
                <p>
                <?php echo $error_message; ?>
                </p>
                </div>
                <?php endif; ?>
                <?php if($success_message): ?>
                <div class="callout callout-success">
                <p><?php echo $success_message; ?></p>
                </div>
                <?php endif; ?>
                <form class="form-horizontal" action="" method="post" enctype="multipart/form-data">
                    <div class="box box-info">
                        <div class="box-body">
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label">filetoupload<span>*</span></label>
                                <div class="col-sm-4">
                                    <input type="text" class="form-control" name="filetoupload">
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label">Upload Resim <span>*</span></label>
                                <div class="col-sm-4" style="padding-top:6px;">
                                    <input type="file" name="resim">
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label"></label>
                                <div class="col-sm-6">
                                    <button type="submit" class="btn btn-success pull-left" name="form1">Submit</button>
                                </div>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </section>
    bu tek sayfa hali

    bu kısmı senin attığın gibi sadece upload.php yapacaksan direk yapıştır form sayfası ayrı ise formun gönder kısmında buton name="form1" yap
    if(isset($_POST['form1'])) {
        $valid = 1;
        if(empty($_POST['filetoupload'])) {
            $valid = 0;
            $error_message .= "filetoupload alanı boş<br>";
        }
        $path = $_FILES['resim']['name'];
        $path_tmp = $_FILES['resim']['tmp_name'];
        if($path == '') {
            $valid = 0;
            $error_message .= "Resim seçin<br>";
        } else {
            $ext = pathinfo( $path, PATHINFO_EXTENSION );
            $file_name = basename( $path, '.' . $ext );
            if( $ext!='jpg' && $ext!='png' && $ext!='jpeg' && $ext!='gif' ) {
                $valid = 0;
                $error_message .= 'Tur jpg, jpeg, gif ve png Uzantısı Olmalı<br>';
            }
        }
        if($valid == 1) {
            $statement = $pdo->prepare("SHOW TABLE STATUS LIKE 'tbl_resim'");
            $statement->execute();
            $result = $statement->fetchAll();
            foreach($result as $row) {
                $ai_id=$row[10];
            }
            $final_name = 'resim-'.$ai_id.'.'.$ext;
            move_uploaded_file( $path_tmp, '../uploads/'.$final_name );
            $statement = $pdo->prepare("INSERT INTO tbl_resim (filetoupload,name) VALUES (?,?)");
            $statement->execute(array($_POST['filetoupload'],$final_name));
            $success_message = 'Resim yüklendi.';
        }
    }
    ?>
  • 19-04-2021, 18:55:34
    #5
    erolkarakoy adlı üyeden alıntı: mesajı görüntüle
    <?php
    ini_set('error_reporting', E_ALL);
    date_default_timezone_set('Europe/Istanbul');
    $dbhost = 'localhost';
    $dbname = 'dbname';
    $dbuser = 'dbuser';
    $dbpass = 'dbpass]';
    define("BASE_URL", "http://localhost/");
    try {
        $pdo = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch( PDOException $ex ) {
        echo "Connection error :" . $ex->getMessage();
    }
    
    if(isset($_POST['form1'])) {
        $valid = 1;
        if(empty($_POST['filetoupload'])) {
            $valid = 0;
            $error_message .= "filetoupload alanı boş<br>";
        }
        $path = $_FILES['resim']['name'];
        $path_tmp = $_FILES['resim']['tmp_name'];
        if($path == '') {
            $valid = 0;
            $error_message .= "Resim seçin<br>";
        } else {
            $ext = pathinfo( $path, PATHINFO_EXTENSION );
            $file_name = basename( $path, '.' . $ext );
            if( $ext!='jpg' && $ext!='png' && $ext!='jpeg' && $ext!='gif' ) {
                $valid = 0;
                $error_message .= 'Tur jpg, jpeg, gif ve png Uzantısı Olmalı<br>';
            }
        }
        if($valid == 1) {
            $statement = $pdo->prepare("SHOW TABLE STATUS LIKE 'tbl_resim'");
            $statement->execute();
            $result = $statement->fetchAll();
            foreach($result as $row) {
                $ai_id=$row[10];
            }
            $final_name = 'resim-'.$ai_id.'.'.$ext;
            move_uploaded_file( $path_tmp, '../uploads/'.$final_name );
            $statement = $pdo->prepare("INSERT INTO tbl_resim (filetoupload,name) VALUES (?,?)");
            $statement->execute(array($_POST['filetoupload'],$final_name));
            $success_message = 'Resim yüklendi.';
        }
    }
    ?>
    <section class="content">
        <div class="row">
            <div class="col-md-12">
                <?php if($error_message): ?>
                <div class="callout callout-danger">
                <p>
                <?php echo $error_message; ?>
                </p>
                </div>
                <?php endif; ?>
                <?php if($success_message): ?>
                <div class="callout callout-success">
                <p><?php echo $success_message; ?></p>
                </div>
                <?php endif; ?>
                <form class="form-horizontal" action="" method="post" enctype="multipart/form-data">
                    <div class="box box-info">
                        <div class="box-body">
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label">filetoupload<span>*</span></label>
                                <div class="col-sm-4">
                                    <input type="text" class="form-control" name="filetoupload">
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label">Upload Resim <span>*</span></label>
                                <div class="col-sm-4" style="padding-top:6px;">
                                    <input type="file" name="resim">
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="" class="col-sm-2 control-label"></label>
                                <div class="col-sm-6">
                                    <button type="submit" class="btn btn-success pull-left" name="form1">Submit</button>
                                </div>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </section>
    bu tek sayfa hali

    bu kısmı senin attığın gibi sadece upload.php yapacaksan direk yapıştır form sayfası ayrı ise formun gönder kısmında buton name="form1" yap
    if(isset($_POST['form1'])) {
        $valid = 1;
        if(empty($_POST['filetoupload'])) {
            $valid = 0;
            $error_message .= "filetoupload alanı boş<br>";
        }
        $path = $_FILES['resim']['name'];
        $path_tmp = $_FILES['resim']['tmp_name'];
        if($path == '') {
            $valid = 0;
            $error_message .= "Resim seçin<br>";
        } else {
            $ext = pathinfo( $path, PATHINFO_EXTENSION );
            $file_name = basename( $path, '.' . $ext );
            if( $ext!='jpg' && $ext!='png' && $ext!='jpeg' && $ext!='gif' ) {
                $valid = 0;
                $error_message .= 'Tur jpg, jpeg, gif ve png Uzantısı Olmalı<br>';
            }
        }
        if($valid == 1) {
            $statement = $pdo->prepare("SHOW TABLE STATUS LIKE 'tbl_resim'");
            $statement->execute();
            $result = $statement->fetchAll();
            foreach($result as $row) {
                $ai_id=$row[10];
            }
            $final_name = 'resim-'.$ai_id.'.'.$ext;
            move_uploaded_file( $path_tmp, '../uploads/'.$final_name );
            $statement = $pdo->prepare("INSERT INTO tbl_resim (filetoupload,name) VALUES (?,?)");
            $statement->execute(array($_POST['filetoupload'],$final_name));
            $success_message = 'Resim yüklendi.';
        }
    }
    ?>
    Deniyorum hemen hocam, teşekkür ederim