HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 16.12.2008, 17:59
nerezus
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
второй вопрос:

Цитата:$cont = file_get_contents('admin.php');
$cont = htmlspecialchars($cont);
$cont =strip_tags($cont);
$cont = mysql_escape_string($cont);
echo $cont;
Этот код примерно соответствует следующему в русском языке: маша лижет раму жопой в крыше ламы мамы.
Т.е. так же все эти строки вместе не имеют смысла.
 
Ответить с цитированием

  #2  
Старый 16.12.2008, 18:25
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Такс,прочитал понял.
1 вопрос снимаеться.Всем спасибо огромное.
Но 2 вопрос мне так и не помогли,тока постебались над кем то
 
Ответить с цитированием

  #3  
Старый 16.12.2008, 18:47
m0Hze
Он хакер.
Регистрация: 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..
 
Ответить с цитированием

  #4  
Старый 16.12.2008, 18:52
.:EnoT:.
Постоянный
Регистрация: 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(5050);
    
$im1 imagecreatefromjpeg($adres);
    
$im2 imagecreatefromjpeg('logo.jpg');
    
$im3 imagecreatefromjpeg($myrow1['url']);

    
imagecopy($im$im100002525);
    
imagecopy($im$im2250002525);
    
imagecopy($im$im3025002525);

    
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); 
 
Ответить с цитированием

  #5  
Старый 16.12.2008, 19:34
geforce
Постоянный
Регистрация: 21.08.2008
Сообщений: 302
Провел на форуме:
458686

Репутация: -25
Отправить сообщение для geforce с помощью ICQ
Question

.: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(215750); 
$im1 imagecreatefromjpeg($adres);
$im2 imagecreatefromjpeg('logo.jpg');
$im3 imagecreatefromjpeg($myrow1['url']);
imagecopy($im$im100002525);
imagecopy($im$im2250002525);
imagecopy($im$im3025002525);
header('Content-type: image/jpeg'); 
imagejpeg($im);
}
else
{
echo 
"<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>
Проблема заключается в том что перевеные $vibor и $adres не передаются! Как это исправить?????
 
Ответить с цитированием

  #6  
Старый 16.12.2008, 19:00
.:EnoT:.
Постоянный
Регистрация: 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();

 
Ответить с цитированием

  #7  
Старый 16.12.2008, 19:02
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию

m0Hze не понел вопрос но думаеца мне что ошибка в if($logs = '') .... т.к надо или
if($logs === '') или лучше if(empty($logs)) ....

а то в твоём примере ты не проверяешь равенство а присваеваешь .... и это всегда возвращяет TRUE
 
Ответить с цитированием

  #8  
Старый 16.12.2008, 19:08
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Списибо все работает.Но вот вопрос.Если мне приспичило почистить файл,я удаляю все содержимое в <textarea>, и отправляю,то он соответственно делает die();
Поэтому у меня вт такая идея(я просто никогда не работал с 2 кнопками) создать вторую кнопку,очистить.Както будет выглядеть?
 
Ответить с цитированием

  #9  
Старый 16.12.2008, 19:15
.:EnoT:.
Постоянный
Регистрация: 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);


 
Ответить с цитированием

  #10  
Старый 16.12.2008, 19:17
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Тока я бы ещё файл открывал в режиме "a"...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ