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

15.12.2008, 02:20
|
|
Постоянный
Регистрация: 21.08.2008
Сообщений: 302
Провел на форуме: 458686
Репутация:
-25
|
|
Почему фото не выводится,,,,,,,,,,,,?????
форма(index.php):
PHP код:
<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>
Оброботчик(load.php):
PHP код:
<?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;
}
// Заносим путь картинки в базу данных
$q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')";
$query = mysql_query($q);
// вывод привью
$result = mysql_query("SELECT * FROM foto WHERE name='$foto_light_name'",$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);
printf ("<img scr='".$myrow['url']."'>");
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
// Данные успешно внесены в базу данных, выводим сообщение
if ($query == 'true') {
echo "<br /><b>Данные успешно внесены в базу</b>";
}
// В противном случае, выводим ошибку при добавлении в базу данных
else {
echo "$error_by_mysql";
}
}
elseif ($myfile_size == 0) {
echo "Пустая форма!";
}
}
?>
|
|
|

15.12.2008, 02:43
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
Хм... странно, что РНР не ругался на то, что у тебя в mysql_query при выполнении запроса вставки не указан хэндл соединения с базой данных )))
PHP код:
$q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')";
$query = mysql_query($q,/*ты забыл вставить дескриптор соединения*/);
Есть масса замечаний
1. Зачем ты пишешь в путях обратный слэш??? В винде прямой тоже отлично работает Ну это так, вопросы совместимости.
2. Зачем ты выбираешь только что занесенную запись, если вся инфа у тебя и так есть в переменных???
Так можно долго продолжать, а так... будь внимательнее и не пиши себе проблем )))
|
|
|

15.12.2008, 02:57
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Сообщение от ss88
РНР не ругался
все нормально, в описании mysql_query явно указано, что идентификатор ресурса указывать не обязательно
|
|
|

15.12.2008, 03:14
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
Вот, почистил некоторый логический мусор, вот так все работает, а ошибка была банальнейшей, в тэге img, указан источник как атрибут не src, а scr и других очепяток в коде хватало )))
PHP код:
<?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_size = $_FILES["myfile"]["size"];
// Если ошибок не было
if ($_FILES["myfile"]["error"] == 0) {
$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();
}
// Заносим путь картинки в базу данных
$q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')";
$query = mysql_query($q, $db);
if ($query) {
printf("<img src='{$foto_name}'/>");
echo "<br /><b>Данные успешно внесены в базу</b>";
} else {
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit(mysql_error());
}
} elseif ($myfile_size == 0) {
echo "Пустая форма!";
}
}
?>
Все работает
|
|
|

15.12.2008, 05:05
|
|
Участник форума
Регистрация: 11.05.2008
Сообщений: 202
Провел на форуме: 420713
Репутация:
104
|
|
PHP код:
<?php
$arr = array(
"Nort America"=>array("USA"=>array("Capital"=>"
Washington")),
"Europa"=> array("France"=>array("Capital"=>"Paris")),
"Africa"=> array("Moroco"=>array("Capital"=>"Moroco")) );
foreach ($arr as $k => $v)
{
echo $k ."\n" ;
foreach($v as $arr => $k)
{
echo $arr ." "."<br/>\n";
/* что надо подставить 3 цыкл ? */
foreach ($v as $arr)
{
echo $arr ."\n";
}
}
}
?>
Помогите вывести название столиц...
Последний раз редактировалось DTW; 15.12.2008 в 05:08..
|
|
|

15.12.2008, 05:36
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
PHP код:
$arr = array("Nort America"=>array("USA"=>array("Capital"=>"Washington")),
"Europa"=> array("France"=>array("Capital"=>"Paris")),
"Africa"=> array("Moroco"=>array("Capital"=>"Moroco")) );
foreach($arr as $part => $country) {
foreach($country as $name => $land){
foreach($land as $capital){
echo 'Часть света: '.$part.' => Страна: '.$name.' => Столица: '.$capital.'<br/>';
}
}
}
|
|
|

15.12.2008, 13:28
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
Сообщение от geforce
Почему фото не выводится,,,,,,,,,,,,?????
А вот так, вроде, намного лучше, при той же функциональности:
PHP код:
<?php
// Подключаемься к базе данных
include ("db.php");
//================Настройки============= //
// максимальная ширина картинок на превью
$maxwidth = "300px";
// Директория для фотографий товаров
$fotos_dir = "fotos/";
// Полное имя файла вместе с путем
$foto_name = $fotos_dir . time() . "_" . $_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"])) {
// Если ошибок не было
if (($_FILES["myfile"]["error"] == 0) && (in_array(strtolower(substr($_FILES['myfile']['name'], - 4)), array(".jpg" , ".gif" , ".png")))) {
$upfile = getcwd() . "/fotos/" . time() . "_" . basename($_FILES["myfile"]["name"]);
if ($_FILES['myfile']['tmp_name']){
//Если не удалось загрузить файл
if (! move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile))
exit($error_by_file);
}
else
exit ("Проблема: возможна атака через загрузку файла хотя проверяется это не так, а, наверное, просто нам подсовывают файл не с тем расширением {$_FILES ['myfile'] ['name']}");
// Заносим путь картинки в базу данных
$query = mysql_query("INSERT INTO foto (url,name) VALUES ('{$foto_name}','{$fotos_dir}{$foto_name}')", $db);
if ($query)
echo "{$foto_tag}Ъ<br /><b>Данные успешно внесены в базу</b>";
else
exit("<p>Ошибка сохранения данных.</p>" . mysql_error());
} else //Если возникла ошибка при передаче или левое расширение файла
exit("Ошибка обработки данных либо вы пытаетесь подсунуть нам свинью");
}
?>
Последний раз редактировалось ss88; 15.12.2008 в 13:30..
|
|
|

15.12.2008, 15:47
|
|
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
Провел на форуме: 2584134
Репутация:
519
|
|
Сообщение от .:EnoT:.
Какой авторизации? Через БД, файл, Бейсик ?
БД...я написал,но сомниваюсь в его надёжности...
|
|
|

15.12.2008, 15:49
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Не думал, что возникнут трудности при решении такой банальной задачи
Какой-то ступор седня 
Нужно отфильтровать пользователей по возрасту
Например, есть поле "От" и "До"
И есть массив с датами рождений, например 06.08.1985, 31.12.1985 и т.д.
Нужно выбрать всех пользователей входящих в условия - от и до, причем не только по годам( но и по месяцам и дням, т.е. др у пользователя-6 августа, знач 5 числа, он не входит, а 6 уже входит в групу)
А проблема возникла в следующем
Замечание: Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT.
После 38 года, они обнулятся
Но мне нужен расчет и в дальнейшем
Вообщем прошу Вашей помощи! ( не нагуглил  )
|
|
|

15.12.2008, 15:54
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
не понял сути проблемы, ты рассчитываешь свою систему "на века"? )))) Или как? Поясни немного, а то, наверное, и у меня ступор седня ))
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|