ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

16.12.2008, 17:59
|
|
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
второй вопрос:
Цитата:$cont = file_get_contents('admin.php');
$cont = htmlspecialchars($cont);
$cont =strip_tags($cont);
$cont = mysql_escape_string($cont);
echo $cont;
Этот код примерно соответствует следующему в русском языке: маша лижет раму жопой в крыше ламы мамы.
Т.е. так же все эти строки вместе не имеют смысла.
|
|
|

16.12.2008, 18:25
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Такс,прочитал понял.
1 вопрос снимаеться.Всем спасибо огромное.
Но 2 вопрос мне так и не помогли,тока постебались над кем то 
|
|
|

16.12.2008, 18:47
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Все,помогайте.Похоже моск изжарил весь.Застрялна тупом месте и все тут.Моск не хочет думать.Знаю что ошибка то тупая,но никак не придумаю что сделать.Собственно имеем код:
PHP код:
<?
$content = file_get_contents('logs.txt');
echo "<textarea name = logs
cols = 40
rows = 20>
$content
</textarea>";
echo "<br><input type = \"submit\">";
$logs = $_POST['logs'];
if($logs = ''){
exit();
}else{
$wr = fopen("logs.txt", "w");
fwrite($wr,"$logs");
fclose($wr);
}
?>
Собственно,заполняем файл logs.txt чем угодно,открываем страницу все работает,тект видно обновляем,и logs.txt пуст,соответственно данные не пишуца.Я впринцапе делал все ето в 2 разных документа,тоесть форму и обработчик отдельно, то все боричком,но мне хочеца,чтоб все было в 1 файлеке.Ну ошибка тупая,знаю,но чет никак не додумаюсь че воткнуть в иф,или что убрать.Моск не пашет 
Естевственно понятно,что после обновки,@logs уже будет чемуто равна,так как поле уже не пустое....
Последний раз редактировалось m0Hze; 16.12.2008 в 18:56..
|
|
|

16.12.2008, 18:52
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
geforce
У тебя файл подразумевается как файл с картинками) Поэтому всякие предупреждения типа "Запрос не удался" смысла не имеют тут.
Я когда-то давно когда писал cms делал проще. Если запрос не выполнился или ещё какая-нибудь хня, просто выдавал браузеру картинку 1х1 px
PHP код:
include("db.php");
if (isset($_POST['vibor'])) $vibor = $_POST['vibor'];
if (isset($_POST['load'])) $adres = $_POST['load'];
$result1 = mysql_query("SELECT * FROM data WHERE id='".$vibor."'",$db);
if ($result1 && mysql_num_rows($result1)){
$myrow1 = mysql_fetch_array($result1);
$im = imagecreatetruecolor(50, 50);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($myrow1['url']);
imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);
header('Content-type: image/jpg');
imagejpeg($im);
}else{
$im = imagecreate(1,1);
imageColorAllocate($im, '', '', '');
header('Content-type: image/jpg');
imagejpeg($im);
}
И кстате говоря
PHP код:
if (isset($_POST['vibor'])) $vibor = $_POST['vibor'];
if (isset($_POST['load'])) $adres = $_POST['load'];
Это очень небезопасно, использовать в запросе неэкранированные данные.
И ещё, если у тебя $_POST['load'] не существует, то переменная $adres не будет объявлена, что приведёт к ошибке вот тут:
PHP код:
$im1 = imagecreatefromjpeg($adres);
|
|
|

16.12.2008, 19:34
|
|
Постоянный
Регистрация: 21.08.2008
Сообщений: 302
Провел на форуме: 458686
Репутация:
-25
|
|
.:EnoT:.
Но суть проблемы остается смотри!
Есть база под названием img с таблицами data и fotos
в них поля одинаковые id, name, url!
Всё работает в 3-и шага!
1. 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>
2. 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;
}
// Заносим путь картинки в базу данных
$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 src='%s'/>",$myrow['url']);
$adres = $myrow['url'];
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
// Данные успешно внесены в базу данных, выводим сообщение
if ($query == 'true') {
echo "<br /><b>Данные успешно внесены в базу</b>";
}
// В противном случае, выводим ошибку при добавлении в базу данных
else {
echo "$error_by_mysql";
}
}
elseif ($myfile_size == 0) {
echo "Пустая форма!";
}
}
?>
<form action="end.php" method="post" name="end">
<?
// Вывод базы картинок
$result1 = mysql_query("SELECT * FROM data",$db);
if (!$result1)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
do
{
printf ("<br><br><img src='admin/%s'><input name='vibor' type='radio' value='%s'><label>%s</label><br>",$myrow1["url"],$myrow1["id"],$myrow1["name"]);
}
while ($myrow1 = mysql_fetch_array($result1));
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>
<input name="load" type="hidden" value="<? echo $adres; ?>" />
<input name="sub" type="submit" value="далее" />
</form>
3. end.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>
<div align="center"><img src='end1.php' /></div>
</body></html>
А в end1.php находится:
PHP код:
<?php include("db.php");
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
$result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db);
if (!$result1)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$im = imagecreatetruecolor(215, 750);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($myrow1['url']);
imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);
header('Content-type: image/jpeg');
imagejpeg($im);
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>
Проблема заключается в том что перевеные $vibor и $adres не передаются! Как это исправить????? 
|
|
|

16.12.2008, 19:00
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
m0Hze
сделай форму отправки
PHP код:
$content = file_get_contents('logs.txt');
echo '<form action="" method="post">';
echo '<textarea name="logs" cols="40" rows="20">'.$content.'</textarea>';
echo '<br/><input type="submit"></form>';
$logs = !empty($_POST['logs']) ? $_POST['logs'] : false;
if($logs){
$wr = fopen('logs.txt', 'wt');
fwrite($wr, $logs);
fclose($wr);
}else{
die();
}
|
|
|

16.12.2008, 19:02
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
m0Hze не понел вопрос но думаеца мне что ошибка в if($logs = '') .... т.к надо или
if($logs === '') или лучше if(empty($logs)) ....
а то в твоём примере ты не проверяешь равенство а присваеваешь .... и это всегда возвращяет TRUE
|
|
|

16.12.2008, 19:08
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Списибо все работает.Но вот вопрос.Если мне приспичило почистить файл,я удаляю все содержимое в <textarea>, и отправляю,то он соответственно делает die();
Поэтому у меня вт такая идея(я просто никогда не работал с 2 кнопками) создать вторую кнопку,очистить.Както будет выглядеть?
|
|
|

16.12.2008, 19:15
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
ну кнопочкой ты очистить можешь поле, а потом отправить пустые данные.
короче либо так:
PHP код:
$content = file_get_contents('logs.txt');
echo '<form action="" method="post">';
echo '<textarea name="logs" cols="40" rows="20">'.$content.'</textarea>';
echo '<br/><input type="submit"><input type="reset"></form>';
$logs = isset($_POST['logs']) ? $_POST['logs'] : false;
if($logs !== false){
$wr = fopen('logs.txt', 'wt');
fwrite($wr, $logs);
fclose($wr);
}
либо так:
PHP код:
$content = file_get_contents('logs.txt');
echo '<form action="" method="post">';
echo '<textarea name="logs" cols="40" rows="20">'.$content.'</textarea>';
echo '<br/><input type="submit"></form>';
$logs = !empty($_POST['logs']) ? $_POST['logs'] : false;
if($logs){
$wr = fopen('logs.txt', 'wt');
fwrite($wr, $logs);
fclose($wr);
}else{
$wr = fopen('logs.txt', 'wt');
fclose($wr);
}
|
|
|

16.12.2008, 19:17
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Тока я бы ещё файл открывал в режиме "a"...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|