PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (17): В начало « ... 8 9 10 11 [12] 13 14 15 16 ... » В конец
Найдено сообщений: 243
livote
Отправлено: 08 Ноября, 2012 - 11:56:51 • Тема: вопрос по созданию url • Форум: Вопросы новичков
Ответов: 1 Просмотров: 61
мне нужно сделать, что бы на сайте было следующее:
site.ru/123 - отображение какой либо записи
site.ru/u123 - отображения пользователя
site.ru/add - добавление записи, также подобно может быть регистрация, авторизация
для каждого типа можно создавать отдельный файл, или всё прописывать в индексе?
и как вообще это реализовать всё.а то я как то ещё нуб в этом
livote
Отправлено: 06 Ноября, 2012 - 15:54:08 • Тема: как распреелить нагрузку при загрузке нескольких изображений • Форум: Вопросы новичков
Ответов: 4 Просмотров: 156
вот немного изменённый код
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
foreach ( $_FILES [ 'foto' ] [ 'name' ] as $k => $v )
{ $kww = $k + 1 ;
if ( $_FILES [ 'foto' ] [ 'error' ] [ $k ] == 0 ) {
// назначим наши переменные
$imgs = $_FILES [ 'foto' ] ;
$imgs_size = $_FILES [ 'foto' ] [ 'size' ] [ $k ] ;
$imgs_type = $_FILES [ 'foto' ] [ 'type' ] [ $k ] ;
$imgs_name = $_FILES [ 'foto' ] [ 'name' ] [ $k ] ;
$imgs_tmp_name = $_FILES [ 'foto' ] [ 'tmp_name' ] [ $k ] ;
// задаем максимальный вес картинки, если превышен, то выводим ошибку
if ( $imgs_size > 2
* 1024
* 1000
) die ( '<center>Размер картинки превысил лимит в 2 МБ. <a href="' . $PHP_SELF . '">Загрузить заново</a></center>' ) ; // получаем расширения файлов для загрузки
preg_match ( "'([a-z]+)\/[x\-]*([a-z]+)'" , $imgs_type , $ext ) ; switch ( $img_size [ 'mime' ] ) {
case "image/gif" :
break ;
case "image/jpeg" :
break ;
case "image/png" :
break ;
default : die ( "<center>Ошибка!<br />\n Допускаются файлы: <b>.jpg, .jpeg, .png, gif</b> до 2МБ<br /> <a href='{$PHP_SELF} '>Загрузить повторно</a></center>" ) ; break ;
}
// задаем допустимые размеры картинок для загрузки
$width_max = 220 ;
$height_max = 220 ;
// получаем размеры
$width_original = $img_size [ 0] ;
$height_original = $img_size [ 1] ;
// еще одна проверка на размер загружаемых картинок, если превышен, то ошибка
if ( $width_original < $width_max || $height_original < $height_max ) die ( "<center>Запрещено загружать картинки с размерами меньше {$width_max} x{$height_max} . <a href='{$PHP_SELF} '>Загрузить заного</a></center>" ) ; // создадим пустое изображение с нужными нам размерами
// определим пропорции для дальнейшей обрезки до них
$w_prp = ( $width_original / $width_max ) ;
$h_prp = ( $height_original / $height_max ) ;
// определим высоту и ширину будущих сжатых картинок
$p_w = ( $width_max / $width_original ) ;
$h_new = ( $height_original * $p_w ) ;
$y1 = ( ( $h_new - $height_max ) / 2) ;
$p_h = ( $height_max / $height_original ) ;
$w_new = ( $width_original * $p_h ) ;
$x1 = ( ( $w_new - $width_max ) / 2) ;
// описываем когда приходиться сжимать ширину, а высоту резать
if ( $w_prp < $h_prp ) {
// выполним копирование и ресамдлинг нашей картинки, т.е. с помощью GD библиотеки сгладим и заполним промежуточными цветами недостающие точки
imagecopyresampled ( $image_p_1 , $image , 0
, 0
, 0
, 0
, $width_max , $h_new , $width_original , $height_original ) ; imagecopyresampled ( $image_p , $image_p_1 , 0
, 0
, 0
, $y1 , $width_max , $height_max , $width_max , $height_max ) ; }
// описываем когда приходиться сжимать высоту, а ширину резать
elseif ( $w_prp > $h_prp ) {
// сного выполним копирование и ресамдлинг нашей картинки, т.е. с помощью GD библиотеки сгладим и заполним промежуточными цветами недостающие точки
imagecopyresampled ( $image_p_1 , $image , 0
, 0
, 0
, 0
, $w_new , $height_max , $width_original , $height_original ) ; imagecopyresampled ( $image_p , $image_p_1 , 0
, 0
, $x1 , 0
, $width_max , $height_max , $width_max , $height_max ) ; }
// определяем время для названия картинки, удобно если заносим в базу сортировать по времени добавления
// определяем пути до картинок и их миниатюр и названия для них
$imgs_path [ $kww ] = "img/BUT-{$time} " . rand ( 100 , 999 ) . ".jpg" ;
if ( imagejpeg ( $image_p , $imgs_path [ $kww ] , 100 ) ) { // если все замечательно, создаем файл миниатюры, метод немного отличается для разнообразия от того, что описан выше, если захотите можете потренироваться и сделать создание миниатюр так же как и выше
// описываем вывод, опять же, если захотите можете выводить запрос в базу данных или куда еще будет угодно
$vvd = "тут можно отправить запрос в базу" ;
if ( $vvd ) {
echo "<div align='center'><img src='$imgs_path [$kww ]' alt='image' /><br /><h4>Изображение № " . $kww . " успешно загружено</h4><br /><h2>Поздравляем!!!</h2><br />\n <h2><a href='{$PHP_SELF} '>Загрузить ещё</a></h2></div>" ;
}
} }
else
{
echo "Ошибка при загрузке изображения № " . $kww ;
}
}
как его упростить?что бы выполнял те же функции.я в php недавно.не всё понимаю.код брал и переделывал.может где то что то не убрал?помогите!
livote
Отправлено: 05 Ноября, 2012 - 19:26:27 • Тема: как вытащить значение переменной из foreach • Форум: Вопросы новичков
Ответов: 0 Просмотров: 98
если что, вот код, из которого нужно вытащить $imgs_path для каждого файла
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
foreach ( $_FILES [ 'foto' ] [ 'name' ] as $k => $v )
{ $kww = $k + 1 ;
if ( $_FILES [ 'foto' ] [ 'error' ] [ $k ] == 0 ) {
// назначим наши переменные
$imgs = $_FILES [ 'foto' ] ;
$imgs_size = $_FILES [ 'foto' ] [ 'size' ] [ $k ] ;
$imgs_type = $_FILES [ 'foto' ] [ 'type' ] [ $k ] ;
$imgs_name = $_FILES [ 'foto' ] [ 'name' ] [ $k ] ;
$imgs_tmp_name = $_FILES [ 'foto' ] [ 'tmp_name' ] [ $k ] ;
// задаем максимальный вес картинки, если превышен, то выводим ошибку
if ( $imgs_size > 2
* 1024
* 1000
) die ( '<center>Размер картинки превысил лимит в 2 МБ. <a href="' . $PHP_SELF . '">Загрузить заново</a></center>' ) ; // получаем расширения файлов для загрузки
preg_match ( "'([a-z]+)\/[x\-]*([a-z]+)'" , $imgs_type , $ext ) ; switch ( $img_size [ 'mime' ] ) {
case "image/gif" :
break ;
case "image/jpeg" :
break ;
case "image/png" :
break ;
default : die ( "<center>Ошибка!<br />\n Допускаются файлы: <b>.jpg, .jpeg, .png, gif</b> до 2МБ<br /> <a href='{$PHP_SELF} '>Загрузить повторно</a></center>" ) ; break ;
}
// задаем допустимые размеры картинок для загрузки
$width_max = 220 ;
$height_max = 220 ;
// получаем размеры
$width_original = $img_size [ 0] ;
$height_original = $img_size [ 1] ;
// еще одна проверка на размер загружаемых картинок, если превышен, то ошибка
if ( $width_original < $width_max || $height_original < $height_max ) die ( "<center>Запрещено загружать картинки с размерами меньше {$width_max} x{$height_max} . <a href='{$PHP_SELF} '>Загрузить заного</a></center>" ) ; // создадим пустое изображение с нужными нам размерами
// определим пропорции для дальнейшей обрезки до них
$w_prp = ( $width_original / $width_max ) ;
$h_prp = ( $height_original / $height_max ) ;
// определим высоту и ширину будущих сжатых картинок
$p_w = ( $width_max / $width_original ) ;
$h_new = ( $height_original * $p_w ) ;
$y1 = ( ( $h_new - $height_max ) / 2) ;
$p_h = ( $height_max / $height_original ) ;
$w_new = ( $width_original * $p_h ) ;
$x1 = ( ( $w_new - $width_max ) / 2) ;
// описываем когда приходиться сжимать ширину, а высоту резать
if ( $w_prp < $h_prp ) {
// выполним копирование и ресамдлинг нашей картинки, т.е. с помощью GD библиотеки сгладим и заполним промежуточными цветами недостающие точки
imagecopyresampled ( $image_p_1 , $image , 0
, 0
, 0
, 0
, $width_max , $h_new , $width_original , $height_original ) ; imagecopyresampled ( $image_p , $image_p_1 , 0
, 0
, 0
, $y1 , $width_max , $height_max , $width_max , $height_max ) ; }
// описываем когда приходиться сжимать высоту, а ширину резать
elseif ( $w_prp > $h_prp ) {
// сного выполним копирование и ресамдлинг нашей картинки, т.е. с помощью GD библиотеки сгладим и заполним промежуточными цветами недостающие точки
imagecopyresampled ( $image_p_1 , $image , 0
, 0
, 0
, 0
, $w_new , $height_max , $width_original , $height_original ) ; imagecopyresampled ( $image_p , $image_p_1 , 0
, 0
, $x1 , 0
, $width_max , $height_max , $width_max , $height_max ) ; }
// определяем время для названия картинки, удобно если заносим в базу сортировать по времени добавления
// определяем пути до картинок и их миниатюр и названия для них
$imgs_path = "img/BUT-{$time} " . rand ( 100 , 999 ) . ".jpg" ;
// если все замечательно, создаем файл миниатюры, метод немного отличается для разнообразия от того, что описан выше, если захотите можете потренироваться и сделать создание миниатюр так же как и выше
// описываем вывод, опять же, если захотите можете выводить запрос в базу данных или куда еще будет угодно
$vvd = "тут можно отправить запрос в базу" ;
if ( $vvd ) {
echo "<div align='center'><img src='$imgs_path ' alt='image' /><br /><h4>Изображение № " . $kww . " успешно загружено</h4><br /><h2>Поздравляем!!!</h2><br />\n <h2><a href='{$PHP_SELF} '>Загрузить ещё</a></h2></div>" ;
}
} }
else
{
echo "Ошибка при загрузке изображения № " . $kww ;
}
}
livote
Отправлено: 05 Ноября, 2012 - 17:22:53 • Тема: как распреелить нагрузку при загрузке нескольких изображений • Форум: Вопросы новичков
Ответов: 4 Просмотров: 156
есть скрипт.обрабатывает изображение при помощи цикла foreach.
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
foreach ( $_FILES [ 'foto' ] [ 'name' ] as $k => $v )
{
if ( $_FILES [ 'foto' ] [ 'error' ] [ $k ] == 0 ) {
// назначим наши переменные
$imgs = $_FILES [ 'foto' ] ;
$imgs_size = $_FILES [ 'foto' ] [ 'size' ] [ $k ] ;
$imgs_type = $_FILES [ 'foto' ] [ 'type' ] [ $k ] ;
$imgs_name = $_FILES [ 'foto' ] [ 'name' ] [ $k ] ;
$imgs_tmp_name = $_FILES [ 'foto' ] [ 'tmp_name' ] [ $k ] ;
// задаем максимальный вес картинки, если превышен, то выводим ошибку
if ( $imgs_size > 2
* 1024
* 1000
) die ( '<center>Размер картинки превысил лимит в 2 МБ. <a href="' . $PHP_SELF . '">Загрузить заново</a></center>' ) ; // получаем расширения файлов для загрузки
preg_match ( "'([a-z]+)\/[x\-]*([a-z]+)'" , $imgs_type , $ext ) ; switch ( $img_size [ 'mime' ] ) {
case "image/gif" :
break ;
case "image/jpeg" :
break ;
case "image/png" :
break ;
default :
default : die ( "<center>Ошибка!<br />\n Допускаются файлы: <b>.jpg, .jpeg, .pjpeg</b> до 5МБ<br /> <a href='{$PHP_SELF} '>Загрузить заного</a></center>" ) ; break ;
}
// задаем допустимые размеры картинок для загрузки
$width_max = 250 ;
$height_max = 250 ;
// получаем размеры
$width_original = $img_size [ 0] ;
$height_original = $img_size [ 1] ;
// еще одна проверка на размер загружаемых картинок, если превышен, то ошибка
if ( $width_original < $width_max || $height_original < $height_max ) die ( "<center>Запрещено загружать картинки с размерами меньше {$width_max} x{$height_max} . <a href='{$PHP_SELF} '>Загрузить заного</a></center>" ) ; // создадим пустое изображение с нужными нам размерами
// определим пропорции для дальнейшей обрезки до них
$w_prp = ( $width_original / $width_max ) ;
$h_prp = ( $height_original / $height_max ) ;
// определим высоту и ширину будущих сжатых картинок
$p_w = ( $width_max / $width_original ) ;
$h_new = ( $height_original * $p_w ) ;
$y1 = ( ( $h_new - $height_max ) / 2) ;
$p_h = ( $height_max / $height_original ) ;
$w_new = ( $width_original * $p_h ) ;
$x1 = ( ( $w_new - $width_max ) / 2) ;
// описываем когда приходиться сжимать ширину, а высоту резать
if ( $w_prp < $h_prp ) {
// выполним копирование и ресамдлинг нашей картинки, т.е. с помощью GD библиотеки сгладим и заполним промежуточными цветами недостающие точки
imagecopyresampled ( $image_p_1 , $image , 0
, 0
, 0
, 0
, $width_max , $h_new , $width_original , $height_original ) ; imagecopyresampled ( $image_p , $image_p_1 , 0
, 0
, 0
, $y1 , $width_max , $height_max , $width_max , $height_max ) ; }
// описываем когда приходиться сжимать высоту, а ширину резать
elseif ( $w_prp > $h_prp ) {
// сного выполним копирование и ресамдлинг нашей картинки, т.е. с помощью GD библиотеки сгладим и заполним промежуточными цветами недостающие точки
imagecopyresampled ( $image_p_1 , $image , 0
, 0
, 0
, 0
, $w_new , $height_max , $width_original , $height_original ) ; imagecopyresampled ( $image_p , $image_p_1 , 0
, 0
, $x1 , 0
, $width_max , $height_max , $width_max , $height_max ) ; }
// определяем время для названия картинки, удобно если заносим в базу сортировать по времени добавления
// определяем пути до картинок и их миниатюр и названия для них
$imgs_path = "img/{$time} " . rand ( 100 , 1000 ) . ".jpg" ;
// если все замечательно, создаем файл миниатюры, метод немного отличается для разнообразия от того, что описан выше, если захотите можете потренироваться и сделать создание миниатюр так же как и выше
// описываем вывод, опять же, если захотите можете выводить запрос в базу данных или куда еще будет угодно
$vvd = "тут можно отправить запрос в базу" ;
if ( $vvd ) {
echo "<div align='center'><img src='$imgs_path ' alt='image' /><br /><h4>Изображение успешно загружено</h4><br /><h2>Поздравляем!!!</h2><br />\n <a href='{$PHP_SELF} '>Загрузить ещё</a></div>" ;
}
// очередная проверка, если картинка ни куда не добавлена, то ошибка
} }
else
{
echo "Ошибка при загрузке изображения" ;
}
}
когда гружу несколько больших изображений - грузятся не все изображения.если нельзя распределить, то как удалить например первое изображение, после незагрузки пятого
livote
Отправлено: 05 Ноября, 2012 - 15:26:25 • Тема: что в цикле foreach у меня здесь не так • Форум: Вопросы новичков
Ответов: 0 Просмотров: 65
есть скрипт загрузки изображения с циклом foreach
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
foreach ( $_FILES [ 'foto' ] [ 'name' ] as $k => $v )
{
if ( $_FILES [ 'foto' ] [ 'error' ] [ $k ] == 0 ) {
// назначим наши переменные
$imgs = $_FILES [ 'foto' ] ;
$imgs_size = $_FILES [ 'foto' ] [ 'size' ] [ $k ] ;
$imgs_type = $_FILES [ 'foto' ] [ 'type' ] [ $k ] ;
$imgs_name = $_FILES [ 'foto' ] [ 'name' ] [ $k ] ;
$imgs_tmp_name = $_FILES [ 'foto' ] [ 'tmp_name' ] [ $k ] ;
// задаем максимальный вес картинки, если превышен, то выводим ошибку
if ( $imgs_size > 2
* 1024
* 1000
) die ( '<center>Размер картинки превысил лимит в 2 МБ. <a href="' . $PHP_SELF . '">Загрузить заново</a></center>' ) ; // получаем расширения файлов для загрузки
preg_match ( "'([a-z]+)\/[x\-]*([a-z]+)'" , $imgs_type , $ext ) ; switch ( $img_size [ 'mime' ] ) {
case "image/gif" :
break ;
case "image/jpeg" :
break ;
case "image/png" :
break ;
default :
default : die ( "<center>Ошибка!<br />\n Допускаются файлы: <b>.jpg, .jpeg, .pjpeg</b> до 5МБ<br /> <a href='{$PHP_SELF} '>Загрузить заного</a></center>" ) ; break ;
}
// задаем допустимые размеры картинок для загрузки
$width_max = 250 ;
$height_max = 250 ;
// получаем размеры
$width_original = $img_size [ 0] ;
$height_original = $img_size [ 1] ;
// еще одна проверка на размер загружаемых картинок, если превышен, то ошибка
if ( $width_original < $width_max || $height_original < $height_max ) die ( "<center>Запрещено загружать картинки с размерами меньше {$width_max} x{$height_max} . <a href='{$PHP_SELF} '>Загрузить заного</a></center>" ) ; // создадим пустое изображение с нужными нам размерами
// определим пропорции для дальнейшей обрезки до них
$w_prp = ( $width_original / $width_max ) ;
$h_prp = ( $height_original / $height_max ) ;
// определим высоту и ширину будущих сжатых картинок
$p_w = ( $width_max / $width_original ) ;
$h_new = ( $height_original * $p_w ) ;
$y1 = ( ( $h_new - $height_max ) / 2) ;
$p_h = ( $height_max / $height_original ) ;
$w_new = ( $width_original * $p_h ) ;
$x1 = ( ( $w_new - $width_max ) / 2) ;
// описываем когда приходиться сжимать ширину, а высоту резать
if ( $w_prp < $h_prp ) {
// выполним копирование и ресамдлинг нашей картинки, т.е. с помощью GD библиотеки сгладим и заполним промежуточными цветами недостающие точки
imagecopyresampled ( $image_p_1 , $image , 0
, 0
, 0
, 0
, $width_max , $h_new , $width_original , $height_original ) ; imagecopyresampled ( $image_p , $image_p_1 , 0
, 0
, 0
, $y1 , $width_max , $height_max , $width_max , $height_max ) ; }
// описываем когда приходиться сжимать высоту, а ширину резать
elseif ( $w_prp > $h_prp ) {
// сного выполним копирование и ресамдлинг нашей картинки, т.е. с помощью GD библиотеки сгладим и заполним промежуточными цветами недостающие точки
imagecopyresampled ( $image_p_1 , $image , 0
, 0
, 0
, 0
, $w_new , $height_max , $width_original , $height_original ) ; imagecopyresampled ( $image_p , $image_p_1 , 0
, 0
, $x1 , 0
, $width_max , $height_max , $width_max , $height_max ) ; }
// определяем время для названия картинки, удобно если заносим в базу сортировать по времени добавления
// определяем пути до картинок и их миниатюр и названия для них
$imgs_path = "img/{$time} " . rand ( 100 , 1000 ) . ".jpg" ;
// если все замечательно, создаем файл миниатюры, метод немного отличается для разнообразия от того, что описан выше, если захотите можете потренироваться и сделать создание миниатюр так же как и выше
// описываем вывод, опять же, если захотите можете выводить запрос в базу данных или куда еще будет угодно
$vvd = "тут можно отправить запрос в базу" ;
if ( $vvd ) {
echo "<div align='center'><img src='$imgs_path ' alt='image' /><br /><h4>Изображение успешно загружено</h4><br /><h2>Поздравляем!!!</h2><br />\n <a href='{$PHP_SELF} '>Загрузить ещё</a></div>" ;
}
// очередная проверка, если картинка ни куда не добавлена, то ошибка
} }
else
{
echo "Ошибка при загрузке изображения" ;
}
}
у меня первое изображение грузит, а в последующих пишет, "Ошибка при загрузке изображения".почему?что не так?
livote
Отправлено: 05 Ноября, 2012 - 14:53:19 • Тема: можно ли сделать загрузку изображений из нескольких полей одним скриптом • Форум: Вопросы новичков
Ответов: 8 Просмотров: 245
люди, я так и не понял как это сделать.лбъясните на простом скрипте как это сделать.что куда подставить? всего 5 полей!!
PHP:
скопировать код в буфер обмена
<?PHP
// В PHP 4.1.0 и более ранних версиях следует использовать $HTTP_POST_FILES
// вместо $_FILES.
$uploaddir = '/var/www/uploads/' ;
$uploadfile = $uploaddir . basename ( $_FILES [ 'userfile' ] [ 'name' ] ) ;
echo '<pre>' ;
echo "Файл корректен и был успешно загружен.\n " ;
} else {
echo "Возможная атака с помощью файловой загрузки!\n " ;
}
echo 'Некоторая отладочная информация:' ;
print "</pre>" ;
?>
Страниц (17): В начало « ... 8 9 10 11 [12] 13 14 15 16 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB