Здравствуйте! Вообщем я новичок в php программировании, решил написать сайт-в основном для получения навыка. Итак, что я для этого сделал: 1) зарегистрировал домен в www.2domains.ru 2)написал простейший style.css, index.html 3) разместил их на хостинге www.fornex.com 4)также зарегистрировал почту на www.yandex.ru Прочитал литературы по php и поcмотрел пару курсов лекции для новичков по php/ вообщем наступил момент, когда мне нужно видеть на странице в <body> таблицу с тремя столбцами:1)картинка, 2)название места и её географические координаты 3)примечание, где я как пользователь могу ввести комментарий(нажав конопку применить) в Хостинге у меня тариф такой, что могу иметь одну БД в MySQL Причем к этой БД можно подключиться только так называемой cPanel, а не как я привык My SQL Manager'ом... вообщем на ряд форумах нашёл, что картинки (jpeg) можно хранить прямо в БД (в данном случае e18366_db), но для этого необходимо перед написанием соотв строк в php-скрипте для работы с изображением (загрузить, хранить, считать картинку через страницу) нужно подготовить БД, а именно создать соотв таблицу вот я пробую так создать, но никак не получается...подскажите что не так? Код (Text): CREATE TABLE TB1 { id_img int(11) NOT NULL auto_increment, image longblog NOT NULL, PRIMARY KEY (id_img) } ENGINE = MYISAM ; пишет вот такую ошибку: Код (Text): Ответ MySQL: Документация #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ id_img int(11) NOT NULL auto_increment, image longblog NOT NULL, PRIMARY' at line 1 вот скриншот http://my-files.ru/z5gdi2 И если не сложно можете посоветовать (ссылки или так словами) где вкратце описано как потом и что нужно прописывать в php-скрипте для работы с изображением при данных условиях (хостинг,домен). Заранее благодарен!
НЕ хранить изображения в БД. она не для этого создана. вернее никто не запрещает хранить изображения в БД. но не в том контексте который вы используете. а теория хранения изображений в бд проста. в таблице должно быть минимум два поля: id - числовой идентификатор и первичный ключ. и content - само тело картинки. содержимое файла. есть у вас страница допустим index.php. на ней вы выбираете идентификаторы картинок из таблицы и пишете на странице теги имг с атрибутом сурс указывающим на некий скрипт имг.пхп с указанием id картинки - <img src=/image.php?id=$id> в файле image.php вы принимаете идентификатор - $id = $_GET['id'] и делаете запрос к бд получая тело картинки. дальше отправляете заголовок что это картинка и просто печатаете значение ячейки content результата запроса. и всё. это и есть нужный минимум. дальше уже всякие красивости будут усложнять код и логику. но для начала осильте минимум. если очень надо. а вообще всё еще
Вот у меня такой основной index.php Код (Text): <!DOCTYPE html> <html> <head> <meta charset="cp1251"> <meta name="description" content=""> <meta name="author" content=""> <link rel="stylesheet" href="style.css"> <title>официальный сайт</title> </head> <body> <audio src="fon.mp3" autoplay loop controls></audio> <div id="wrapper"> <?php include 'include/header.php'; ?> <?php include 'include/nav.php'; ?> <div id="content"> <h1>Авторизация</h1> <p><h2>Заполните форму</h2></p> <form method="POST" action="index.php"> <h3>Фамилия</h3> <input type="text" name="fam" value=""><br> <h3>Имя</h3> <input type="text" name="im" value=""><br> <h3>Отчество</h3> <input type="text" name="otch" value=""><br> <input type="button" name="btnpoisk1" onClick="alert" value="Enter"> </form> </div> <!-- end #content --> <div id="centecont"> <b>Текст</b> </div> <!-- end #centecont --> <?php include 'include/sidebar.php'; ?> <?php include 'include/footer.php'; ?> </div> <!-- End #wrapper --> </body> </html> includ'ые скрипты особо не имеют интереса, но максимум на данный момент header.php: Код (Text): <?php include 'variables/variables.php'; ?> <div align="center" id="header" style="background: url('image/header.jpg')"> <h1><?php echo $heading ?></h1> </div> <!-- end #header --> footer.php Код (Text): <div id="footer"> <p><?php echo $footer ?></p> </div> <!-- end #footer --> variables.php Код (Text): <?php $heading = 'Добро пожаловать на сайт!'; $footer = 'Копирайт © 2014 <a href=\"http://www.ya.ru\">Поиск</a>'; ?> Я хотел бы в "centecont" создать 3 столбца: 1)изображения jpg 2) описание (некий текст к изображению) 3) примечание (пользователь самостоятельно может подредактировать(оставить коммент)) Причём с точки зрения безопасности не хотелось бы хранить в явном виде файлы jpeg на хостинге...т.е. я для чего выбрал храннение в бинарном виде-для того, чтобы администратор хостинга не смог просмотреть содержимое файла...т.е. хранение в шифрованном виде... можете на примере указать как это буте выглядеть?я прошу прощения за свой вопрос, ноя только начал изучение, но на примерах лучше воспринимаю. кроме того я создаю судя по Вашему отзыву таблицу www.fornex.org через cPanel->phpMyAdmin, допустим назовём её tablemesto c полями: -id_img -content_img http://my-files.ru/h9rrcj http://my-files.ru/6r1n38 http://my-files.ru/5lipi0
несусветная чушь. какая может быть безопасность не хранить файлы в явном виде? при запросе к файловой системе вебсервер отдает контент или не отдает его снижая нагрузку на себя, на сеть и на клиента. динамическая раздача в простом виде будет гонять файл по сети постоянно. плюс для этого серваку придется запускать пхп машину а той в свою очередь подключаться к субд. обоснуйте ЗАЧЕМ вам держать файлы в субд. для всего остального я уже пояснил что это идиотизм. плюс шифрование. что за бред? мало того что нам придется гонять пхп машину и субд так еще мы нагрузим процессорное время на тупейшую операцию дешифрования. ЗАЧЕМ ВАМ ВЕСЬ ЭТОТ БРЕД? ЧТО И ОТ КОГО ВЫ ПРЯЧЕТЕ? да вы просто халявщик коих тут сотни. лучше всего на личном опыте информация усваивается и не пытайтесь меня переубедить. либо вы делаете и показываете наработки либо мы с вами на платной основе будем "учиться" или вы просто закажете готовые коды.
Да вроде никогда и не был халявщиком...ок, попробую сам разобраться, если что буду продолжать в эту ветку писать... по вопросу вида хранения-я лично хотел попробовать просто реализовать-набраться опыта как хранить прямо в БД-один вариант и второй вариант попробовать-хранить только ссылки на изображения(этот вариант я ещё не приступал)...пока пытаюсь реализовать первый вариант...
кстати о шифровании. ты себе вдруг представил злодея админа который ходит смотрит твои файлы. на то он и админ чтоб иметь право смотреть твои файлы. нас этому обязывает соответствующий действующий на территории рф закон. мы либо смотрим файлы (по запросу от органов) либо если человек не рад - идет за бугор хоститься. ок. спрятали файлы в субд. ну дык админ их и там тоже видит. облом, да? ладно, зашифровали. а как будет дешифрация происходить? ключик на сервере? ну дык админ применит ключик и получит файлик. всё ок. или ты собрался передавать ключик с каждым запросом? ну если это публичный сайт то этот ключик будет в каждом запросе. вот ведь лажа... а если ты для себя только то представляешь админ может поправить пару строк твоего кода и перехватить у тебя твой ключик и получить все файлики. или банально записать исходящий траффик ведь там уже расшифрованные фотки. прикинь сколько способов обойди паранойю в твоей голове... делай как все и не выпендривайся.
Ок))убедил)))но так а если не в БД хранить, то как подскажи более детально хоть какую инфу почитать по этому поводу? хранить ссылки на файлы, которые можно залить на хостинг в скажем отдельную директорию /img ?
можно при загрузке изображения складировать его в указанном каталоге с именем вида image_ID.jpg. где ID - идентификатор в базе. тогда ссылка будет <img src='/img/image_ID.jpg'> и все ок. это простейший путь. где читать? ну мануалы и читать. представить себе все действия которые нужно выполнить и найти нужные функции. в мануале есть для этого примеры. мозг+мануалы+грамотные_запросы_в_поисковике.
если ты еще не разобрался с ошибкой в SQL, то причина в фигурных скобках — там должны быть круглые, а не фигурные.
ага мы все каждый день работаем с изображениями по 4ГБ весом. mediumblob'а хватит за глаза хранить сурсы. правда если фотик сильно огромные файлы делает то не влезет конечно. Добавлено спустя 9 минут 22 секунды: а я про логическую. по сути я не Хыиуду поправляю а бедного тс которому религия не позволяет хранить файлы в обычной файловой системе обычного жесткого диска. тип поля в базе ведь тоже божественно выбран. dvd-образ в него не пропихнешь но вот 1.37-рипы влезут спокойно. только мы же не про видеохостинг а про фотогалерею тут говорим. Добавлено спустя 3 минуты 18 секунд: вот блин поудаляют комменты свои и я как сам с собой тут беседу веду...
Ну это же классика, "дайте мне таблеток от жадности, да побольше, побольше!". Поскольку ты уже объяснил всю ущербность хранения бинарных файлов в БД, я указал на грамматическую ошибку в определении таблицы. Без этого явно бы не стал, а то подскажешь, как картинку в таблицу записать, а потом пойдут вопросы по поддержке этого сайта-кадавра.