PHP: /////////////////////////////ИЗМЕНЕНИЕ АВАТАРЫ////////////////////////// include ("bd_fotouser.php"); if (isset($_FILES['fupload']['name'])) { if ($_FILES['fupload']['name'] == '') { unset($_FILES['fupload']['name']); } else { $sql14 = "SELECT COUNT(*) FROM `fotouser` WHERE `id_user_ava` = '$id'"; $result14 = mysql_query($sql14, $db)or die("Ошибка в запросе: " . mysql_error()); if (!$result14) { echo "ошибка - ".mysql_error()."<br>"; echo $sql14; exit(); } else { //ниже хочу,что бы пользователь не мог загружать больше трёх изображений-поэтому ограничиваю его тремя,но эта функция не срабатывает-даже если внёс 10 фоток,то всё равно позволяет дальше загружать...как так? $max_files_allowed = "3"; $uploadedfiles ="0"; while ($row = mysql_fetch_row($result14)) { if (!empty($row['avatar'])) { $uploadedfiles = $uploadedfiles+1; } } if ($uploadedfiles >= $max_files_allowed) { die("<p>Хотите больше загружать? Ставьте ящик админу</p>"); } else { $foto_size = $_FILES['fupload']['size']; if ($foto_size > 5*1024*1000) die ('Размер картинки превысил лимит в 5 Мб. <a href="'.$PHP_SELF.'" target="_self">Загрузить снова</a>'); if (!preg_match('/^[A-Za-zА-Яа-я0-9-_]+[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/', $_FILES['fupload']['name'])) { echo "<html> <head> <meta http-equiv='Refresh' content='3'; URL='../znakomstva/page_user.php?id=".$_SESSION['id']."'> </head> <body> Аватар должен быть в формате <strong>JPG,GIF или PNG</strong> Можно не ждать перезагрузки - <a href='../znakomstva/page_user.php'> жми <a> </body> </html>"; } else { //дальше начинается самое непонятное...: $path_to_directory = "files/avatars/"; $filename = $_FILES['fupload']['name']; $source = $_FILES['fupload']['tmp_name']; $date = time(); //присваиваю имя нужное $target = $path_to_directory."big_".$date.".jpg"; //гружу в папку move_uploaded_file($source, $target); //присваиваю путь до файла $big_avatar = $target; if(preg_match('/[.](GIF)|(gif)$/', $filename)) { //тут выдаёт ошибку: imagecreatefromgif(files/avatars/метро.gif) [function.imagecreatefromgif]: failed to open stream: No such file or directory in... $im = imagecreatefromgif($path_to_directory.$filename); } if(preg_match('/[.](PNG)|(png)$/', $filename)) { $im = imagecreatefrompng($path_to_directory.$filename); } if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) { $im = imagecreatefromjpeg($path_to_directory.$filename); } $w = 180; //Тут ещё выдает две ошибки: Warning: imagesx(): supplied argument is not a valid Image resource in... и ещё: Warning: imagesy(): supplied argument is not a valid Image resource in... $w_src = imagesx($im); $h_src = imagesy($im); $dest = imagecreatetruecolor ($w,$w); if ($w_src > $h_src) { imagecopyresampled ($dest, $im, 0, 0, round ((max($w_src,$h_src)-min($w_src,$h_src))/2), 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src)); } else { if ($w_src < $h_src) { imagecopyresampled ($dest, $im, 0, 0, 0, 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src)); } else { if ($w_src == $h_src) { //вот тут ошибка: Warning: imagecopyresampled(): supplied argument is not a valid Image resource in... imagecopyresampled ($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src); } } } imagejpeg($dest, $path_to_directory.$date.".jpg"); $avatar = $path_to_directory.$date.".jpg"; $uploadedfiles = $uploadedfiles + 1; $sql15 = "INSERT INTO `fotouser` (avatar, big_avatar, uploadedfiles, id_user_ava)VALUES('$avatar', '$big_avatar', '$uploadedfiles', '$id')"; $result15 = mysql_query($sql15, $db)or die("Ошибка в запросе: " . mysql_error()); if (!$result15) { echo "ошибка - ".mysql_error()."<br>"; echo $sql15; exit(); } else { //а здесь говорит,что ранее отправил уже переадресацию в другой строке:Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\.............\update_user.php:357) in Z:\home\localhost\www\....................\update_user.php on line 402!!!!!!!!!!!!! header("Location:http://localhost/znakomstva/page_user.php"); } } } } } } else { exit("Ашипко. Пробуйте ещё раз или позже!"); } Блин,два дня уже стараюсь-на форуме подобного не встречал...хотя бы натолкните на правильное решение-очень нуждаюсь в Вашей помощи!
Функция mysql_fetch_row возвращает массив с числовыми индексами, а не ассоциативный. Поэтому PHP: <?php if (!empty($row['avatar'])) { // } не прокатит, если в SQL-запросе используется лишь агрегатная функция COUNT в выборке, то стоит посмотреть в строну функции mysql_result. Что касается следующих ошибок, то переводчика должно хватить для перевода сообщений, что разобраться в чем дело и в какую сторону копать...
Всё сделал как Вы сказали, после исправление ещё раза три выдавал браузер ошибки (с непредсказуемой периодичностью!),но,вроде,т� �перь всё нормализовалось...ещё бывает так,что само изображение превращается в квадрат 180х180,но исключительно чёного цвета! Буду дальше сам разбираться-так интереснее... Спасибо большое!)))
Вот ещё вопрос,рас с советами попёрло: PHP: <?php $HTML=' <table> <tr> <td> <h2>Измените данные</h2> </td> </tr> <tr> <td> <form action="../znakomstva/update_user.php" method="post" enctype="multipart/form-data" onClick="chek()"> <strong>Имя:</strong><br> <strong>Логин:</strong><br> <strong>Ваш пароль?:</strong><br> <strong>Новый пароль:</strong><br> <strong>Повторить пароль:</strong><br> <strong>Город:</strong><br> </td> <td> <input id="name_red" type="text" name="name" maxlength="20" value="'.$name.'"><br> <input id="login_red" maxlength="20" name="login" type="text" value="'.$login.'"><br> <input id="pass" maxlength="20" name="pass" type="pasword"><br> <input id="pass1" maxlength="20" name="pass1" type="pasword"><br> <input id="pass2" maxlength="20" name="pass2" type="pasword"><br> <select id="sity_red" name="sity"> <option>Москва</option> <option>Санкт-Петербург</option> <option>Ростов-на-Дону</option> <option>Краснодар</option> </select> </td> </tr> <tr> <td colspan="2"> <strong>Фотографии:</strong><br> //а вот тут я хочу выводить все фоки,что есть у пользователя из верхнего примера(что бы тот,в свою очередь мог манипулировать фотками)...но как реализовать не знаю-пробовал через while, но выдаёт ошибку всё время-подскажите как реализовать!? <strong>Не больше трёх:</strong> <input id="fupload_red" type="file" name="fupload"><br> </td> </tr> <tr> <td colspan="2"> <strong>Коротко о себе:</strong><br> <textarea id="text_red" name="text_user" cols="35" rows="10" maxlength="300" placeholder="'.$text_user.'"></textarea><br><br> </td> </tr> <tr> <td> <input class="btn_modal" type="submit" name="submit" value="изменить"> </form> </td> </tr> </table>'; print $HTML; ?> И ещё вопрос:как сделать так,что бы пользователь мог выбирать себе из трёх аватар,присваивать фотографии определённой цифровой индекс(например 1),а остальным другой (например 0)!!!???Или есть другой способ?
Подскажите как можно вывести несколько значений поля с одним названием?Как-то через массив,но не могу сообразить как...подскажите! Вопрос к чему:вот есть у пользователя три загруженных им фотографии,соответственно они закреплены за его id-вот как я могу вывести одновременно все его фотографии?Как построить запрос!?