مشکل در درست کردن فولدر با آی دی یونیک

ithelper

Member
سلام دوستان...من با این صفحه photoadmin ام دارم یه عکس و یه اسم آلبوم و یک توضیحات از آلبوم میگیرم....و میدم به صفحه photoadmin2 به این صورت :

photoadmin
PHP:
  <form action="photoadmin2.php" method="post" enctype="multipart/form-data">
        Upload Your Thumbnails : 
        <input name="thumbs" type="file" /><br/>
        Write your Album Name :
        <textarea name="name"></textarea><br/>
        Write your Album Comments :
        <textarea name="cmts"></textarea><br/>        
        <input name="submit" type="submit" value="Upload"/>
        </form>


و این هم photoadmin2
PHP:
<?php 
require_once "config.php";
$fname=$_FILES['thumbs']['name'];
if(!empty($fname))
{
 $album= mysgl_insert_db();
 mkdir("/albums/$album/thumbs/", 0700);
 $target = "albums/$albums/thumbs/".time()."_".$fname;
 $ftmp_name=$_FILES['thumbs']['tmp_name'];
 if(move_uploaded_file($ftmp_name,$target))
  $thumbs="albums/$albums/thumbs/".time()."_".$fname;
 else die("unsuccessfully Uploaded!!!");
} else {
 $thumbs='0';
}
$query = "INSERT INTO `photo` (`thumbs`,`name`,`cmts`) VALUES ('{$target}','{$_POST['name']}','{$_POST['cmts']}')";
$result = mysql_query($query) or die('invalid insert<br>'.mysql_error($link));
mysql_close($link);
 header('location: photos.php');
?>

حالا ایراد من اینجاست در این کد
PHP:
$album= mysgl_insert_db();

که در اینجا میخوام یه آی دی یونیک بدم که یه فولدر با آی دی یونیک بسازه... که نمیدونم چطوری و فعلا از اینجا ایراد میگیره...



لطفا فوریه... کمکم کنید....
 

ithelper

Member
دوستان یکی به من کمک کنه لطفاااااااا..... نمیدونم چیکارش کنمممممم
 

Masoud1365

مدیر انجمن
این تابع mysgl_insert_db رو خودت نوشتی ؟ اگه ایراد اینجا هست خوب باید همین فانکشن رو بزارید تا بررسی بشه !
 

ithelper

Member
بله:دی نمی دونستم چی باید بنویسم ... به همین خاطر یه چیزی گذاشتم... آخه میخوام یک فولدر با اسم آلبوم (یک عدد یونیک) ایجاد کنم.... بعد می خواستم آی دی رو از تو دیتابیس بخونم و بزارم رو ایم آلبوم... که میدونم کاری که اینجا کردم اشتباهه محضه... اما نمیدونم چه باید کرد....
 

Masoud1365

مدیر انجمن
خب ارور رو اگه به تابع mysgl_insert_db میگیره که باید تابعی که نوشتید رو بزارید تا بررسیش کنیم !
 

ithelper

Member
دوست عزیز.... اصلا بدون توجه به اون تابع.... شما اگه میتونید به من بگید چطوری یک فولدر با آی دی یونیک درست کنم؟؟؟؟؟؟؟؟
 

Masoud1365

مدیر انجمن
با ساتفاده از دستور mkdir شما میتونید یک پوشه بسازید !
حالا این که میگید یونیک باشه باید از دیتا بیس بگیرید اون id رو !
فیلد id که مربوط به جدول آلبوم هست رو primary و auto_increment تعریف کنید و بعد از ساخت آلبوم آیی دی مربوط به اون آلبوم رو بگیرید و با استفاده از دستور بالا یک پوشه یونیک ایجاد کنید ! همین :دی
 

sajadmaz

Member
به این صورت میتونی در حالی که مسعود جان هم گفت (( فیلد id که مربوط به جدول آلبوم هست رو primary و auto_increment تعریف کنید ))

PHP:
<?PHP
require_once "config.php";
$fname=$_FILES['thumbs']['name'];
if(!empty($fname))
{
 $query = "INSERT INTO `photo` (`thumbs`,`name`,`cmts`) VALUES ('{$target}','{$_POST['name']}','{$_POST['cmts']}')";
 $result = mysql_query($query) or die('invalid insert<br>'.mysql_error($link));
 mysql_close($link);
 
 $album= mysql_insert_id();
 
 mkdir("/albums/$album/thumbs/", 0700);
 $target = "albums/$albums/thumbs/".time()."_".$fname;
 $ftmp_name=$_FILES['thumbs']['tmp_name'];
 if(move_uploaded_file($ftmp_name,$target))
  $thumbs="albums/$albums/thumbs/".time()."_".$fname;
 else die("unsuccessfully Uploaded!!!");
} else {
 $thumbs='0';
}

 header('location: photos.php');
?>

* هیچ موقع مبصورت مستقیم ورودی های فرم رو مستقیم وارد دیتابیس نکن اول فیلترشون کن بعد وارد کن چون خطر SQL Injection هست
 

ithelper

Member
خیلی ممنون دوستان ... اما من همین کدی که بالا گذاشتید رو با توجه به اسم ها تو دیتابیس م گذاشتم.... اما این ارورها رو بهم داد...


Notice: Undefined variable: target in C:\wamp\www\sam\photoadmin2.php on line 6

Warning: mysql_insert_id() [function.mysql-insert-id]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in C:\wamp\www\sam\photoadmin2.php on line 10

Warning: mysql_insert_id() [function.mysql-insert-id]: A link to the server could not be established in C:\wamp\www\sam\photoadmin2.php on line 10

Notice: Undefined variable: albums in C:\wamp\www\sam\photoadmin2.php on line 14

Warning: move_uploaded_file(albums//thumb/1313250189_slideshow2.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\sam\photoadmin2.php on line 16

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\phpBEB0.tmp' to 'albums//thumb/1313250189_slideshow2.jpg' in C:\wamp\www\sam\photoadmin2.php on line 16
unsuccessfully Uploaded!!!
 

ithelper

Member
بعد در ضمن یه اتفاقی هم که افتاده... اینه که name و comments رو وارد دیتابیس کرده با آی دی یونیک... و thumb رو وارد نکرده.... و فولدری هم در پوشه آلبوم نساخته....
 

sajadmaz

Member
2 تا مشکل هست اول اینکه نتونسته به دیتابیس وصل بشه
Warning: mysql_insert_id() [function.mysql-insert-id]: Access denied for user 'SYSTEM'@'localhost' (using password: NO)

دوم اینکه متغیر هایی که توی کوئری insert هست تعریف نشده هست یکم دقت کنید کد هاتونو جابه جا کنین حل میشه
 

ithelper

Member
آها فهمیدم .... اونجا دستوری به این مدل داشتم
mysql_close($link);
که کلا برداشتمش... خطاهام اینا شد....
Notice: Undefined variable: target in C:\wamp\www\sam\photoadmin2.php on line 6

Notice: Undefined variable: albums in C:\wamp\www\sam\photoadmin2.php on line 13

Warning: move_uploaded_file(albums//thumb/1313251267_slideshow2.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\sam\photoadmin2.php on line 15

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\php2F7D.tmp' to 'albums//thumb/1313251267_slideshow2.jpg' in C:\wamp\www\sam\photoadmin2.php on line 15
unsuccessfully Uploaded!!!

که من فکر میکنم ایراد از اینجاست که هنوز $target به وجود نیومده و من دارم اینسرتش میکنم....
اگه همش اینسرت نشه که نمی تونم آی دی شو بگیرم... چه کنم؟
 

ithelper

Member
الان دقیقا خطاها مربوط به این دو خط است....
خط 6
PHP:
$query = "INSERT INTO `photo` (`thumb`,`name`,`comments`) VALUES ('{$target}','{$_POST['name']}','{$_POST['comments']}')";
و خط 15
PHP:
if(move_uploaded_file($ftmp_name,$target))
 

ithelper

Member
دوستان مشکل حل شد اول $target رو مشخص کردم....بعد اینسرت کردم ..... ممنون بابت لطف همگی ....
 

جدیدترین ارسال ها

بالا