class downLoadImg{
public $name;
public $abs = 'abcdefgijklmoprstuvwxyz.....';
public function randonName(){
$this->name=substr(str_shuffle($this->abs), 0, 10).'.'.$this->TypeOfImage();
return $this->name;
}
public function randomNameSmall(){
$img = explode(".", $this->name);
$this->name = $img['0'].'_S'.$img['1'];
return $this->name;
}
}
Собственно основная проблема в том, что когда заношу в БД данные, вот так
$add->insertPlace($_POST, $upload->randomName(), $upload->randomNameSmall)
то там уже другие имена
И даже понятно почему. Потому что при загрузке эти функции две
$add->insertPlace($_POST, $upload->randomName(), $upload->randomNameSmall)
Срабатываю один раз - и дают одно имя 2 файлам с разницей в _S во втором, а при загрузке в базу - срабатываю еще раз....
Все, до чего смог додуматься, это предопределить их после нажатия на кнопку в форме, то есть вот так
$t = $upload->randomName();
$s = $upload->randomNameSmall();
И потом просто подставлять эти значения сначало в загрузчик а после и в добавления в БД!
Фух! Ваше мнение?
Спустя 5 часов, 26 минут, 47 секунд (1.09.2011 - 14:46) slimper написал(а):
Ф-ция срабатывает каждый раз, как её вызывают и каждый раз генерит тебе новое значение.
Может стоит генератор вынести в глобальные ф-ции, чтоб вызывать его с любого места?
типа
system.php
Тебе нужно получить случайное имя файла для основной картинки и тоже имя файла+_S для маленькой превью картинки ? Тогда проще в одной в-ции это всё и получить, думаю
а потом добавлять
Может стоит генератор вынести в глобальные ф-ции, чтоб вызывать его с любого места?
типа
system.php
<?php
.....
function GetRandom()
{
$alphabet = "abcdefghijklmnopqrstuvwxyz1234567890";
return substr(str_shuffle($alphabet), 0, 10);
}
.....
?>
Тебе нужно получить случайное имя файла для основной картинки и тоже имя файла+_S для маленькой превью картинки ? Тогда проще в одной в-ции это всё и получить, думаю
<?php
include_once('system.php');
class downLoadImg
{
public $name;
public $namePrev;
public function randonName()
{
$type= $this->TypeOfImage();
$this->name=GetRandom().'.'.$type;
$this->namePrev= $this->name.'_S'.$type;
}
public function GetName() {return $this->name;}
public function GetPrevName() {return $this->namePrev;}
?>
а потом добавлять
<?php
$upload->randonName();
$add->insertPlace($_POST, $upload->GetName(), $upload->GetPrevName())
?>