За последние 24 часа нас посетили 62160 программистов и 1794 робота. Сейчас ищут 846 программистов ...

Несколько вопросов от новичка

Тема в разделе "PHP для новичков", создана пользователем Zerox, 20 июн 2010.

  1. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    Добрый день! У меня появилось несколько вопросов, гуглить задолбался - ничего не нашёл. Может профессионалы знают?
    1. Как сделать, чтобы при выводе из базы данных, выводилось конкретное количество символов, а остальное скрывалось под "..."?
    2. Как сделать ограничения на загрузку картинок по расширению и размеру(ширина-длинна и в кб)? И как сделать, чтобы при загрузке картинки, он менял её имя на $_COOKIE['name'] + расширение?
    3. Может кто нибудь польозовался редактором Tiny? ГДЕ ТАМ МЕНЯТЬ СТИЛЬ? Всего облазил уже ничо не нашёл...
    Вроде всё, если что нибудь вспомню напишу=)
     
  2. pioner7

    pioner7 Активный пользователь

    С нами с:
    28 ноя 2007
    Сообщения:
    54
    Симпатии:
    0
    1. используй строковые функции
    2. примерно так:

    Код (Text):
    1. if ($_FILES['userfile']['size'] > 3145728)
    2. {
    3. $_SESSION['errord'] = 'Ошибка: ваш файл более 3-х мегабайт';
    4.     $path = "Location: ../идем сюда";
    5.     header($path); 
    6.     exit();
    7. }
    8.  
    9. if ($_FILES['userfile']['type'] <> 'image/pjpeg' and $_FILES['userfile']['type'] <> 'image/jpeg' and $_FILES['userfile']['type'] <> 'image/x-png' and $_FILES['userfile']['type'] <> 'image/png' and $_FILES['userfile']['type'] <> 'image/gif')  
    10. {
    11. $_SESSION['errord'] = 'разрешены только форматы jpg, png, gif';
    12.     $path = "Location: ../идем сюда";
    13.     header($path); 
    14.     exit();
    15. }
    16.  
    17. list($width,$height)=getimagesize($_FILES['userfile']['tmp_name']);
    18.  
    19. if ($width < 100 or $height < 100)
    20. {
    21. $_SESSION['errord'] = "Ошибка: минимальный размер фото 100/100 (ширина/высота)";
    22.     $path = "Location: ../идем сюда";
    23.     header($path); 
    24.     exit();
    25. }
    3. -
     
  3. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    спасибо!=) а на счёт $_COOKIE['name']+расширение в имени файла?
     
  4. pioner7

    pioner7 Активный пользователь

    С нами с:
    28 ноя 2007
    Сообщения:
    54
    Симпатии:
    0
    что то типа этого:

    Код (Text):
    1. $filenew = $_COOKIE['name'].".jpg";
    2.  
    3. $uploadfile = $uploaddir.$filenew;
    4.  
    5.  
    6. imove_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)
     
  5. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    [sql]select (substr(field_name, 1, 10)||'...') as short_str from table where ... [/sql]
     
  6. Melgil

    Melgil Активный пользователь

    С нами с:
    21 июн 2010
    Сообщения:
    4
    Симпатии:
    0
    Ещё один вопрос от совcем уж новичка. Собсно читаю умную книжку (документацию) с вашего сайта, пробую примеры и заметила, что почему-то \n не работает, оно как бы игнорируется и все выводится сплошным текстом без перевода строки. В чем может быть проблема? Ставила все опять же по описанию с вашего сайта, по тестам все работает корректно.
     
  7. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Melgil
    Блин, прочитал ник как Мэлоди (обожаю это имя).

    По теле всё совсем просто.
    РНР просматривает только строки в двойных кавычках - это раз.
    PHP:
    1. <?php
    2.  
    3. $quotes = "Эта строка с переводом \r\n";
    4. $double = 'Эта \r\n строка игнорирует все переводы';
    5.  
    6. ?>
    Второе - смотрите исходный код в браузере, есть там все переводы.
    HTML игнорирует более чем один пробел.
    Или заключайте вывод в теги pre, или отдавайте формат фокумента text/plain

    PHP:
    1. <?php
    2.  
    3. // Вариант с тегами
    4. echo "<pre>";
    5.  
    6. // Разная строка
    7. echo "эта \r\n\tстрока имеет \r\nкучу переводов\r\n\r\n\t\t и табуляций";
    8.  
    9. ?>
    вариант с заголовком
    PHP:
    1. <?php
    2.  
    3. // Отправляем заголовок
    4. header("Content-type: text/plain");
    5.  
    6. // Выводим что-то
    7. echo "эта \r\n\tстрока имеет \r\nкучу переводов\r\n\r\n\t\t и табуляций";
    8.  
    9. ?>
    Переводы строк не предназначены для вывода в HTML.
     
  8. Melgil

    Melgil Активный пользователь

    С нами с:
    21 июн 2010
    Сообщения:
    4
    Симпатии:
    0
    Блин, может я чего-то не понимаю, но кавычки точно не при чем, т.к. копипастю с примеров. Просматриваю вроде в браузере, http://localhost/test/exmple.php вот такой вот строчкой. пробовала и в фоксе и в ие. И ласт пример с заголовком все так же выводит все в одной строчке о.О А вот предыдущий сработал. Почему так?
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    броузер не делает новую строку по \n это раз. Делает если в теги <pre></pre> заключить. Броузер переводит строку по тегу <br>. Если посмотреть исходный код страницы, то там будут переводы строки, а так - не видно их.

    Второе. \n сработает как перевод строки тут:
    PHP:
    1. <?php
    2. echo "lala\nbubu";
    3. ?>
    и выведет \n здесь:
    PHP:
    1. <?php
    2. echo 'lala\nbubu';
    3. ?>
    потому что двойные кавычки предназначены специально, чтобы выводить всякие спецсимволы и даже переменные внутри. А одинарные, чтобы выводить текст так, как он написан.
     
  10. Melgil

    Melgil Активный пользователь

    С нами с:
    21 июн 2010
    Сообщения:
    4
    Симпатии:
    0
    Ну про кавычки я поняла ещё с документации, а про браузер спасибо, теперь понятно =)
     
  11. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    А я что, по-другому объяснил?
     
  12. Melgil

    Melgil Активный пользователь

    С нами с:
    21 июн 2010
    Сообщения:
    4
    Симпатии:
    0
    Ну как бы да =) мне не понятно было... спасибо, разьяснили все!
     
  13. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    нет, чтобы он сохранял старое расширение, которое было у загружаемого файла
    еще вопрос:
    Есть форма авторизации и обработчик, надо сделать ограничение на кол-во авторизаций (к примеру если 3 неудавшихся, то бан о айпишнику на 60 сек). Думаю что, это надо сделать в MySQL (добавление в бд строку с айпишником и время, когда его надо разбанить, при попытке авторизации сверка date() и времени, когда надо рабанить в базе.) Но вот не знаю, как сделать ограничение в 3 авторизации. Может кто то покажет как сделать, или предложит более рациональный способ?
     
  14. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    никто не знает?