пробовал, та же бодяга((( PHP: if (is_uploaded_file($_FILES['fotofile']['tmp_name'])) { move_uploaded_file($_FILES['fotofile']['tmp_name'], $filename); chmod($filename,0777); resize_image($filename); } картинка все равно битая, пробовал разные картинки, ниче понять не могу
по все видимости испорчено, так как исходный размер и размер картинки на сервере полностью соответствуют, скачивал картинку с сервера через ftp-клиент она не открывается, если через тот же клиент её загрузить на сервер то все работает нормально, косяк где-то в php либо я чего-то не дописал, либо это косячит сервер
Не могли бы выложить весь скрипт? Боюсь до этого места идут какие то фильтрации, наподобие тех, находящихся на соседней странице? Так же проверь кодировку данных при передачи картинки от клиента к серверу. А если проблема в копировании, попробуйте напрямую прочитать файл из темпа и вывести его на экран(Ну или применить к нему встроенные функции - они должны работать если файл в это время ещё работоспособный). P.S. Прошу обратить внимание что вместо функции preg_match для фильтра инъекций легче использовать intval и приведение к типу
PHP: function resize_image($image){ $src = imagecreatefromjpeg($image); $w_src = imagesx($src); $h_src = imagesy($src); $ratio = $w_src / 127; imagedestroy($src); $width = 127; $height = round($h_src / $ratio); $temp=imagecreatetruecolor($width, $height); $new_image = ImageCreateFromJpeg($image); $imagedata = getimagesize($image); imagecopyresampled($temp, $new_image, 0, 0, 0, 0, $width, $height, $imagedata[0], $imagedata[1]); imagejpeg($temp, $image,100); } if (isset($_POST['idusl'])) {$idusl = $_POST['idusl'];} else {$idusl = 1;header('Location: editulsugi.php?idusl='.$idusl.'&error');} $filename = 'images/img'.$idusl.'.jpg'; if (isset($_POST['label'])) {$label = $_POST['label'];} else {header('Location: editulsugi.php?idusl='.$idusl.'&error');} if (isset($_POST['text'])) {$text = addslashes($_POST['text']);} else {header('Location: editulsugi.php?idusl='.$idusl.'&error');} if (isset($_POST['subbmit'])) {$subbmit = $_POST['subbmit'];} else {header('Location: editulsugi.php?idusl='.$idusl.'&error');} if (isset($_POST['name'])) {$name = $_POST['name'];} else {header('Location: editulsugi.php?idusl='.$idusl.'&error');} if (is_uploaded_file($_FILES['fotofile']['tmp_name'])) { move_uploaded_file($_FILES['fotofile']['tmp_name'], $filename); chmod($filename,0777); resize_image($filename); } $result = mysql_query("UPDATE usl SET text = '$text', label='$label',name='$name' WHERE id=$idusl",$db) or header('Location: editulsugi.php?idusl='.$idusl.'&error'); header('Location: editulsugi.php?idusl='.$idusl.'&ok'); тута дело в том. что картинка то грузится, но вот коряво, если страница такая как сейчас, то она не будет работать)
как проверить кодировку? а так же вывести файл из темпа на экран? попробовал применить функции к темпу, ругаются встроенные функции начинают матерится на него, но это когда файл уже переименован и скопирован
Попробуй так: PHP: $imag = imagecreatefromgif($_FILES['fotofile']['tmp_name']); imagegif($imag); imagedestroy($imag); exit; Если всё ок, а: PHP: move_uploaded_file($_FILES['fotofile']['tmp_name'], $filename); chmod($filename,0777); $filename = imagecreatefromgif($_FILES['fotofile']['tmp_name']); imagegif($imag); imagedestroy($imag); exit; Не работает, пиши в спаппорт хостеру. Потом попробуй ставить не 777, а 644 и что то наподобие, так как некоторые хостеры искривляют или запрещают права 777 и т. п.
настраиваю скрипт поиска музыки вконтакте - авторизируется - и ищет - но как жму скачать то долго ждёт и ошибку 504 выдаёт : что не так может быть ? PHP: <? $a1 = $_GET['a1']; $a2 = $_GET['a2']; $a3 = $_GET['a3']; $a4 = $_GET['a4'] . " (medvepoisk.ru).mp3"; $file = "http://cs" . $a1 . ".vkontakte.ru/u" . $a2 . "/audio/" . $a3 . ".mp3"; $data = ""; $fp = fopen($file,"r"); while (!feof($fp)){ $data .= fread($fp, 1024); } fclose($fp); header("Content-Description: File Transfer"); header("Content-Type: audio/mpeg"); header("Content-Length: " . strlen($data)); header("Content-Disposition: attachment; filename=\"" . $a4 . "\""); print($data); ?>
GAiN, а ты непосредственно через браузер пробовал переходить по ссылке? Может быть проблема в заголовках, которых нет.
да - через браузер, скрипт поиска перенаправляет на этот, скрипт скачки. сначала была мысль что серевер игнорирует запрос. А какие и где должны быть заголовки ?
Отснифай заголовки и подставь подобные. И я сомневаюсь в кошерности вашего метода скачивания и отдачи. Если файл будет большого размера? Сколько памяти будет съедать скрипт? А если несколько таких запросов будут с большими файлами?
Вот тут по другому ссылка формируется, на скачку с контакта http://fivemusic.ru/poisk_muzyki_po_vkontakte.html то что я выложил выше формирует не так, возможно поэтому не качает
всем привет, такой вопрос, нужно ограничить возможность выполнения скрипта в зависимости от времени, тоесть штобы скрипт не мог выполнятся чаще чем 1 минута например, как ето можно осуществить?
Нужен скрипт для проверки символов из html формы. Чтобы можно было вводить только латинский буквы и цифры и ничего больше. Использовал скрипт: Code: <?php $name=$_POST['name']; if(!eregi("([^Az-Za-z0-9])"),$name){ } else{ echo "error"; } ?> Но denwer выдает ошибку. Может какие-то ошибки в скрипте? Или нужно использовать какой-то другой скрипт?
Выдает ошибку : Parse error: syntax error, unexpected T_STRING in Z:\home\localhost\www\1\1.php on line 2
Попробуй так проверять проверять: Code: $name=$_POST['name']; $regular='/[^Az-Za-z0-9]/'; $result=preg_match($regular,$name); if($result==false) { echo "Некорректный email"; exit(); }
Тоже ошибка: Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 5 in Z:\home\localhost\www\1\1.php on line 3 Некорректный email
Feksess PHP: <?php $name = $_POST['name']; if (preg_match("#^[a-zA-Z0-9]*$#", $name) and strlen($name)>0) { echo "true"; } else { echo "false"; } ?> brain, функция eregi устарела используйте preg_match