[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: прошу помощи в логике скрипта для загрузчика
m4a1fox
В общем нужна подсказка вот о чем. Представим. У нас есть талцица. (id, small_photo, photo, address). Есть форма для добавления всего этого в БД. Плюс, есть загрузчик фоток. Собственно вот какой момент интересует. Загрузчик называет фотку рандомным имене, а small_photo приписывает в название _S. У меня получилось то все это, но как-то нагроможденно! в картце скрипт (пишу по памяти так что не обесудте). Пропущу метод загрузки фото с временной папки и ее копирование, так как с этим все нормально

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

<?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())
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.