Просмотр полной версии : [php] Новичкам: задаем вопросы
Если ты парсиш переменные в двойных ковычках "" необязательно писать конструкцию типа:
$headers = "From:".$from."\r\nReply-To:".$from."\r\n";
пишеш просто:
$headers = "From:$from\r\nReply-To:$from\r\n";
Насчет конфигурации, у меня нестоит вздрочня типа денвера =) И конфиги РНР как на хостингах, приближенно к РНР6
В первой строке твоего кода:
preg_match('#(.+)@#',$who,$m);
переменная $who создасться только тогда когда форма будет заполнена и нажата кнопка отправить форму, и нет проверки на существование и присвоение переменной значения, тоесть:
if(isset($_POST['who'])
Так же юзай конструкцию типа <? КОД ?> если на хостинге будет short_open_tag=off то твой скрипт отобразиться как просто .тхт а ОФФ будет на РНР6 и сейчас на некоторых хостингах. В целом ошибок в скрипте нет, неотправляет мб потому что функция mail() неработает на твоем имба серваке)
Нет,скрипт не работает.Так как нет определения запрещенных доменов! Если бы он работал,то он бы реагировал на запрещенные домены,а он их пропускает споскойно.Имена - да блокирует,такие как support@... а домены типо @mm.com не блокирует,хотя должен,Пересмотрите еще раз,может чтото где то,а то я уже задрался мучица Ж(
Функция мейл на серваке работает отменно!
Ну раз никто не знает,то вот так.
Как сделать в switch, чтобы была проверка несколькоих вариантов
Например
switch($test){
case 'test','test2' : $Mess = dgi;
break;
}
Смысл я думаю понятен, как?)
Если ты парсиш переменные в двойных ковычках "" необязательно писать конструкцию типа:
пишеш просто:
$headers = "From:$from\r\nReply-To:$from\r\n";
Насчет конфигурации, у меня нестоит вздрочня типа денвера =) И конфиги РНР как на хостингах, приближенно к РНР6
В первой строке твоего кода:
preg_match('#(.+)@#',$who,$m);
переменная $who создасться только тогда когда форма будет заполнена и нажата кнопка отправить форму, и нет проверки на существование и присвоение переменной значения, тоесть:
if(isset($_POST['who'])
Так же юзай конструкцию типа <? КОД ?> если на хостинге будет short_open_tag=off то твой скрипт отобразиться как просто .тхт а ОФФ будет на РНР6 и сейчас на некоторых хостингах. В целом ошибок в скрипте нет, неотправляет мб потому что функция mail() неработает на твоем имба серваке)
Ну, вообще, по правилам надо писать:
<?php
echo "Text: {$text}";
?>
Так,в общем все заработало(кроме определения домена,ну ето ерунда поправлю) шибка была в mail(); там стояла переменная $email заместо $who.
А теперь вопрос.
Письмо дергаеться из файла
$message = file_get_contents("all.txt");
Но в письме находяться переменные.Тоесть например ам есь строка
"Здравствуйте $name."
Так вот, эти переменные не подставляються,а отправляються в таком виде,в котором они были.В общем помогайте ребяты..жду енота,он точно поможет Ж)
prescott
16.12.2008, 23:42
Так,в общем все заработало(кроме определения домена,ну ето ерунда поправлю) шибка была в mail(); там стояла переменная $email заместо $who.
А теперь вопрос.
Письмо дергаеться из файла
$message = file_get_contents("all.txt");
Но в письме находяться переменные.Тоесть например ам есь строка
"Здравствуйте $name."
Так вот, эти переменные не подставляються,а отправляються в таком виде,в котором они были.В общем помогайте ребяты..жду енота,он точно поможет Ж)
$message=str_replace('$name', $name, $message);
- Если переменных немного
preda1or
17.12.2008, 00:34
кроме определения домена,ну ето ерунда поправлю
помог исправить)
Бумаги хватит?)
php.net
Ух ты какой ))) Не далее, как позавчера кричал, что там все сложно и непонятно )))
Кстати, я придумал, какие ты можешь вывешивать обьявления: "пишу крутые рнр-скрипты чужими руками" )))
optimazer
17.12.2008, 12:44
добавление ведущих нулей к цифрам!!!
КАК?
Ух ты какой ))) Не далее, как позавчера кричал, что там все сложно и непонятно )))
Кстати, я придумал, какие ты можешь вывешивать обьявления: "пишу крутые рнр-скрипты чужими руками" )))
Ога я такой.
ЗЫ.На php.net было не понятно,по тому что прокси была нерусская.Епнул рускую,теперь половина на руском.Промт рулет... Ж)
добавление ведущих нулей к цифрам!!!
КАК?
$n = (string)'123';
echo '00000000000'.$n;
optimazer
17.12.2008, 12:54
у меня число в двоичном виде должно быть разрядности 5
если оно меньшей добивать ведущими нулями вот в чем суть
Пишу скриптик для вычисления MDC-4 хэш-функции.
groundhog
17.12.2008, 13:03
optimazer, вот пример:
<?php
printf("%08b", 5);
?>
0 - то, чем будет добиваться число;
8 - до какой длины;
b - спецификатор типа, тут - бинарный;
Pashkela
17.12.2008, 13:04
printf
groundhog
17.12.2008, 13:06
Можно и sprintf если результат должен быть куда-то сохранён...
groundhog, ChaaK - кто первый начнет пререкаться - тому бан. Я вас предупредил. Хватит тему засирать.
Ребят, подскажите. Есть ли подобие функции print_r, но тока чтобы не выводило результат, а записывало в переменную.
Чтобы например записать в файл такую вот конструкцию:
Array
(
[0] => Array
(
[0] => текст
[1] => текст
)
)
Ребят, подскажите. Есть ли подобие функции print_r, но тока чтобы не выводило результат, а записывало в переменную.
Чтобы например записать в файл такую вот конструкцию:
Array
(
[0] => Array
(
[0] => текст
[1] => текст
)
)
Есть кое-что похожее:
<?php
$array = array(array('текст','текст'));
$n = var_export($array);
file_put_contents('var.txt',$n);
?>
Особой разницы не заметишь :)
Malunga $out=print_r($array,TRUE);
Спасибо огромное!! Очень выручили!! )))
жалко пллюсы ставить не могу :(
доброго всем времени суток, такой вопрос, как преобразовать строку которая была преабразована с помошью escape() (JavaScript) на пхпобратно, я говорю про русские, украинские символы, делаю ша вот так :
function charCode($text)
{
$alf=array('А'=>'%u0410','а'=>'%u0430','Б'=>'%u0411','б'=>'%u0431','В'=>'%u0412','в'=>'%u0432','Г'=>'%u0413','г'=>'%u0433','Д'=>'%u0414','д'=>'%u0434','Е'=>'%u0415','е'=>'%u0435','Ё'=>'%u0401','ё'=>'%u0451','Й'=>'%u0419','й'=>'%u0439','Ж'=>'%u0416','ж'=>'%u0436','З'=>'%u0417','з'=>'%u0437','И'=>'%u0418','и'=>'%u0438','К'=>'%u041A','к'=>'%u043A','Л'=>'%u041B','л'=>'%u043B','М'=>'%u041C','м'=>'%u043C','Н'=>'%u041D','н'=>'%u043D','О'=>'%u041E','о'=>'%u043E','П'=>'%u041F','п'=>'%u043F','Р'=>'%u0420','р'=>'%u0440','С'=>'%u0421','с'=>'%u0441','Т'=>'%u0422','т'=>'%u0442','У'=>'%u0423','у'=>'%u0443','Ф'=>'%u0424','ф'=>'%u0444','Х'=>'%u0425','х'=>'%u0445','Ъ'=>'%u042A','ъ'=>'%u044A','Ц'=>'%u0426','ц'=>'%u0446','Ч'=>'%u0427','ч'=>'%u0447','Ь'=>'%u042C','ь'=>'%u044C','Ш'=>'%u0428','ш'=>'%u0448','Щ'=>'%u0429','щ'=>'%u0449','Ы'=>'%u042B','ы'=>'%u044B','Э'=>'%u042D','э'=>'%u044D','Ю'=>'%u042E','ю'=>'%u044E','Я'=>'%u042F','я'=>'%u044F','№'=>'%u2116');
$out=strtr($text,$alf);
return $out;
}
но мне не нравиться, во первых не красиво, во вторых если будет украинский текст то надо еше добавлять и укр массих. Можно же как то по другому.
Pashkela
17.12.2008, 22:16
Можно, особенно если выложить закодированный текст
Можно, особенно если выложить закодированный текст
да пожалуста
<script type="text/javascript">
document.write(escape("Можно, особенно если выложить закодированный текст") + "<br />")
</script>
Все нашел, спасибо мне :)
может кому пригодиться
function utf8_urldecode($str,$quotes,$charset){
$str = preg_replace_callback('/%u([0-9a-f]{4})/i',create_function('$arr','return "&#".hexdec($arr[1]).";";'),$str);
return html_entity_decode($str,$quotes,$charset);
}
Cdt моск отказываца думать совсем ку сок кода:
$world = file_get_contents('world.txt');
foreach(file($world) as $list){
$list = str_replace("\n","",$list);
.....}
Вот что получаю:
Warning: Invalid argument supplied for foreach() in D:\WebServer\htdocs\md5\md5.php on line 8
=(
Получаю
m0Hze $world = file('world.txt');
foreach($world as $list){
$list = str_replace("\n","",$list);
И если что - str_replace может принимать и массив в качестве переменной, следовательно и вернет массив
astrologer
17.12.2008, 23:59
Cdt моск отказываца думать совсем ку сок кода:
$world = file_get_contents('world.txt');
foreach(file($world) as $list){
$list = str_replace("\n","",$list);
.....}
Вот что получаю:
Warning: Invalid argument supplied for foreach() in D:\WebServer\htdocs\md5\md5.php on line 8
=(
Получаю$data = file('world.txt', FILE_IGNORE_NEW_LINES);
foreach(file('world.txt') as $list){
$list = str_replace("\n","",$list);
.....}
Наверное!
$list = str_replace("\n","",$list); LOL
$list = trim($list);
Чтото странно. Собственно,решил попробывать написть скрипт,брут хешей,но со всеми типами хешей,с солью,мускул и т.д
Взял за основу скрипт от фазы:
<?
set_time_limit(0);
if (!isset($_POST['crack'])) {
echo "<i>World-List</i>: <input type='text' name='list'><br>";
echo "<i>MD5 Hash</i>: <input type='text' name='hash'><br>";
echo "<i>Salt</i>: <input type='text' name='salt'><br>";
echo "<input type='submit' name='submit' value='Crack The Salt!'>";
$list = $_POST['list'];
$hash = $_POST['hash'];
$salt = $_POST['salt'];
}else{
foreach(file($list) as $line){
$line = str_replace("\n","",$line);
$cracked = md5(md5($line).$salt);
if($hash = $cracked){
die("Salt Broken...<br>
[+]Password = $line<br>");
}
}else{
echo "Sorry mate, no payoff today, try another list!";
}
?>
Ладно,то что в нем у меня находит ошибку в последней строке,чтото там с $end.
ноя никогда не работак с foreach. Почитал на php.net что ето за функция,быстро разобрался как действует.И на пробу набросал скрипт, брут обычного md5. Имеенно его кусок я выкладывал.
Но он чтото не катит,даже не то что не кактит,он мне сразу выписывает,причем на всю страницу,много тыщ раз,о том что хеш сбручен.
Я понимаю помоему почиму,ведь обе переменные,используемые для сравнения, $brute = $hash изначально пустые,но там есть и еще несколько ошибок в фореач.Собственно вот.Хотелось бы раз и навсегда уяснить,как происходит сравнение (хорошее),и что сначало нужно обозначить.Собственно сам срипт.
В таком варианте,я вижу тысячи надпесей...
<?
echo '<form method = "POST">';
echo '<input type = "text" name = "hash" value = "">';
echo '<input type = "submit" value = "Crack">';
echo '</form>';
$hash = $_POST['hash'];
$world = file('world.txt');
foreach($world as $list){
$brute = md5($list);
if($brute == $hash){
echo "Hash cracked!";
echo "Password $line";
exit();
}else{
echo "Hash то cracked";
}
}
?>
А в таком,я вижу ошибку "Parse error: syntax error, unexpected T_FOREACH in D:\WebServer\htdocs\md5\md5.php on line 8"
Привожу только измененную часть кода:
......
$world = file_get_contents('world.txt');
foreach($world as $list){
$brute = md5($list);
.....
m0Hze
http://php.net/file/
http://php.net/file_get_contents/
нашел ответ на вопрос кому интересно смотрите!
http://forum.antichat.ru/threadnav40896-703-10.html
#7029 ;)
При выводе функцией imagejpeg(); в коде не должн присутствовать html код так как в третьей строчке html документа идёт пояснение о том что страница будет передовать html/text контент! вобщем код выглядит вот так!
<?php include("db.php");
header('Content-type: image/jpeg');
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)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$width = 275;
$heigth = 750;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
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);
imagejpeg($im);
imagedestroy($im);
}
else
{
exit();
}
?>
Вопрос???
вот скрипт загруски!
<?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>
как зделать чтобы загружаемая катинка загружалась с шириной 215px и сохроняла пропорции? :confused:
Ладно,то что в нем у меня находит ошибку в последней строке,чтото там с $end.
Ето значит гдето цикл не закрыт, вот пример банального сравнения мд5 с словариком
<?php
$hash = '202cb962ac59075b964b07152d234b70';
$pass = array('12','21','321','123');
for ($i=0, $count=count($pass); $i<$count; $i++) {
if($hash == md5($pass[$i]))
{
echo "hash - $hash == $pass[$i]";die;
}
}
?>
ЗЫ когда работаеш со словарями из файлов, юзай trim() дабы обрезать символы перевода каретки "\r\n"
Вопрос???
вот скрипт загруски!
//труляля куча всего веселого
как зделать чтобы загружаемая катинка загружалась с шириной 215px и сохроняла пропорции? :confused:
Не знаю, как другие, а я всегда меняю размеры и пропорции уже на сервере средствами GD2
Код привести или такое не устраивает?
И почему ты так наплевал на переделанную версию этого твоего загрузочного скрипта?
Не знаю, как другие, а я всегда меняю размеры и пропорции уже на сервере средствами GD2
Код привести или такое не устраивает?
И почему ты так наплевал на переделанную версию этого твоего загрузочного скрипта?
Да я не напливал друг! Ты извения я просто ламал голову над ошибкой которая была в другой странице я нашёл ответ выше описал! Если не трудно могешь мне набросать как ты хотел только так чтоб суть скрипта не менялася!??? ;)
Хм,решил проблему с выводом лишних строк проверкой перемееной в начале скрипта на существование.Но, брут как не хотел идти так и не идет.Все время пишет что Ноу кракед =(
Чтото никак =)
m0Hze
echo '<form method = "POST">';
echo '<input type = "text" name = "hash" value = "">';
echo '<input type = "submit" value = "Crack">';
echo '</form>';
Ты забыл action="" в первой строчке!
Да я не напливал друг! Ты извения я просто ламал голову над ошибкой которая была в другой странице я нашёл ответ выше описал! Если не трудно могешь мне набросать как ты хотел только так чтоб суть скрипта не менялася!??? ;)
Я тебе щаз опять приведу тот код, что я уже писал, но я оттуда выкинул неиспользуемые вещи...например, я так и не понял, почему ты не проверял успешность добавления, а потом зачем-то еще и делал выборку того, что только что добавил...
<?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("Ошибка обработки данных либо вы пытаетесь подсунуть нам свинью");
}
?>
Теперь про изменение размеров
class PictureItem
{
function __construct($FileName)
{
switch(substr($FileName,-4))
{
case ".gif":
{
$this->Res=imagecreatefromgif($FileName);
$this->Ext=($this->Res)?".gif":"";
break;
}
case ".jpg":
{
$this->Res=imagecreatefromjpeg($FileName);
$this->Ext=($this->Res)?".jpg":"";
break;
}
}
if($this->Res)
{
$this->Width=imagesx($this->Res);
$this->Height=imagesy($this->Res);
$this->FileName=$FileName;
}
}
//Изменение размера открытого изображения
//Если указаны оба параметра, то изображение будет принудительно растянуто
//Если задан только первый параметр, то изображение будет пропорционально изменено
function Resize($nWidth,$nHeight=-1)
{
if($this->Width!=-1)
{
$Koef=($nWidth/$this->Width);
if($nHeight==-1)
{
$nHeight=(int)($Koef*$this->Height);
}
$nRes=imagecreatetruecolor($nWidth,$nHeight);
if(!imagecopyresampled($nRes,$this->Res,0,0,0,0,$nWidth,$nHeight,$this->Width,$this->Height))
return FALSE;
$this->Res=$nRes;
$this->Width=$nWidth;
$this->Height=$nHeight;
return TRUE;
}
else
{
return FALSE;
}
}
//------много чего еще было
private $FileName="",$Res,$Ext,$Width=-1,$Height=-1;
}
Это неполный код одного небольшого класса когда-то мною написанного, очень давно, но зато довольно просто, хоть и страшно
m0Hze
echo '<form method = "POST">';
echo '<input type = "text" name = "hash" value = "">';
echo '<input type = "submit" value = "Crack">';
echo '</form>';
Ты забыл action="" в первой строчке!
Если ты предполагаешь обработку результатов тем же скриптом, то остутствующий action и так подразумевает обработчиком самого себя :-Р ))))
Помогите найти ошибки и дороботать код, чтобы ошибок не вылетало, инковские файлы любые, там просто текст:
<?php include("navi.inc"); ?>
<html>
<head>
<title><?php
$a=$_GET['a'];
if($a=="Главная")
{
echo $naving['title']['nav1'];
}
elseif($a=="Контакты")
{
echo $naving['title']['nav2'];
}
elseif($a=="О нас")
{
echo $naving['title']['nav3'];
}
elseif($a=="Галерея")
{
echo $naving['title']['nav4'];
}
elseif($a=="Продукция")
{
echo $naving['title']['nav5'];
}
else
{
echo "Ошибка";
}
?></title>
<meta NAME="description" content="<?php
$a=$_GET['a'];
if($a=="Главная")
{
echo $naving['description']['nav1'];
}
elseif($a=="Контакты")
{
echo $naving['description']['nav2'];
}
elseif($a=="О нас")
{
echo $naving['description']['nav3'];
}
elseif($a=="Галерея")
{
echo $naving['description']['nav4'];
}
elseif($a=="Продукция")
{
echo $naving['description']['nav5'];
}
else
{
echo "Ошибка";
}
?>">
<meta NAME="keywords" content="<?php
$a=$_GET['a'];
if($a=="Главная")
{
echo $naving['keywords']['nav1'];
}
elseif($a=="Контакты")
{
echo $naving['keywords']['nav2'];
}
elseif($a=="О нас")
{
echo $naving['keywords']['nav3'];
}
elseif($a=="Галерея")
{
echo $naving['keywords']['nav4'];
}
elseif($a=="Продукция")
{
echo $naving['keywords']['nav5'];
}
else
{
echo "Ошибка";
}
?>">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="200" height="79" border="1">
<tr>
<td colspan="3">5</td>
</tr>
<tr>
<td><?php
foreach($naving['menu'] as $val)
{
echo "<tr><td><a href=\"vasa.php?a=$val\">$val</a></td></tr>";
}
?>
</td>
<td width="71" colspan="2">
<?php
$a=$_GET['a'];
if($a=="Главная")
{
echo include("sasha.inc");
}
elseif($a=="Контакты")
{
echo include("foot.inc");
}
elseif($a=="О нас")
{
echo include("sash.inc");
}
elseif($a=="Галерея")
{
echo include("ema.inc");
}
elseif($a=="Продукция")
{
echo include("nav.inc");
}
else
{
echo "Ошибка";
}
?></td>
</tr>
<tr>
<td colspan="3">4</td>
</tr>
</table>
</body>
</html>
navi.inc:
<?php
$naving['title']['nav1'] = "Главная";
$naving['title']['nav2'] = "Контакты";
$naving['title']['nav3'] = "О нас";
$naving['title']['nav4'] = "Галерея";
$naving['title']['nav5'] = "Продукция";
$naving['menu']['nav1'] = "Главная";
$naving['menu']['nav2'] = "Контакты";
$naving['menu']['nav3'] = "О нас";
$naving['menu']['nav4'] = "Галерея";
$naving['menu']['nav5'] = "Продукция";
$naving['description']['nav1'] = "Главная";
$naving['description']['nav2'] = "Контакты";
$naving['description']['nav3'] = "О нас";
$naving['description']['nav4'] = "Галерея";
$naving['description']['nav5'] = "Продукция";
$naving['keywords']['nav1'] = "Главная";
$naving['keywords']['nav2'] = "Контакты";
$naving['keywords']['nav3'] = "О нас";
$naving['keywords']['nav4'] = "Галерея";
$naving['keywords']['nav5'] = "Продукция";
$naving['href']['nav1'] = "Главная";
$naving['href']['nav2'] = "Контакты";
$naving['href']['nav3'] = "О нас";
$naving['href']['nav4'] = "Галерея";
$naving['href']['nav5'] = "Продукция";
$naving['content']['nav1'] = "Главная";
$naving['content']['nav2'] = "Контакты";
$naving['content']['nav3'] = "О нас";
$naving['content']['nav4'] = "Галерея";
$naving['content']['nav5'] = "Продукция";
?>
Помогите найти ошибки и дороботать код, чтобы ошибок не вылетало, инковские файлы любые, там просто текст:
<?php
include ("navi.inc");
?>
<html>
<head>
<title><?php
switch ($_GET['a'])
{
case "main" :
$title=$naving['title']['nav1'];
$description=$naving['description']['nav1'];
$keywords=$naving['keywords']['nav1'];
$inc="sasha.inc";
break;
case "contacts" :
$title=$naving['title']['nav2'];
$description=$naving['description']['nav2'];
$keywords=$naving['keywords']['nav2'];
$inc="foot.inc";
break;
case "about" :
$title=$naving['title']['nav3'];
$description=$naving['description']['nav3'];
$keywords=$naving['keywords']['nav3'];
$inc="sash.inc";
break;
case "gallery" :
$title=$naving['title']['nav4'];
$description=$naving['description']['nav4'];
$keywords=$naving['keywords']['nav4'];
$inc="ema.inc";
break;
case "products" :
$title=$naving['title']['nav4'];
$description=$naving['description']['nav5'];
$keywords=$naving['keywords']['nav5'];
$inc="nav.inc";
break;
default :
$title="Ошибка";
$description="Ошибка";
$keywords="Ошибка";
$inc=NULL;
}
?></title>
<meta NAME="description"
content="
<?php echo $description; ?>">
<meta NAME="keywords"
content="
<?php echo $keywords; ?>
">
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1251">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="200" height="79" border="1">
<tr>
<td colspan="3">5</td>
</tr>
<tr>
<td><?php
foreach ($naving['menu'] as $val) {
echo "<tr><td><a href=\"vasa.php?a=$val\">$val</a></td></tr>";
}
?>
</td>
<td width="71" colspan="2">
<?php if($inc) include($inc); ?></td>
</tr>
<tr>
<td colspan="3">4</td>
</tr>
</table>
</body>
</html>
Ня, трудоголик хренофф )))) Кто тебя надоумил так писать код????? ))))) Вобщем, так правильно работает и не надо юзать русские строки в URI, это не очень здравая идея
ss88
Я тебе щаз опять приведу тот код, что я уже писал, но я оттуда выкинул неиспользуемые вещи...например, я так и не понял, почему ты не проверял успешность добавления, а потом зачем-то еще и делал выборку того, что только что добавил
Выборка быполняется для того чтобы показать ту картинку которая была загруженна!
Ты можешь интегрировать тот код с уменьшением картинки в мой код сразу ???
Я понимаю, что так не правильно, но нужно именно так, без кейсов...
ss88
Я тебе щаз опять приведу тот код, что я уже писал, но я оттуда выкинул неиспользуемые вещи...например, я так и не понял, почему ты не проверял успешность добавления, а потом зачем-то еще и делал выборку того, что только что добавил...
Выборка быполняется для того чтобы показать ту картинку которая была загруженна!
Ты можешь интегрировать тот код с уменьшением картинки в мой код сразу ???
Могу, щаз поиграюсь, никуда не девайся... ЧУВАК, ЗАДУМАЙСЯ!!! Какая нах выборка, если у тебя в переменных еще лежат пути к картинке??? Зачем лишний раз трогать БД??? Притом, что это тебе ровным счетом ничего не дает, посмотри внимательно в тот код, что я тебе написал, он делает АБСОЛЮТНО то же самое! Изменения размера щаз добавлю
Господе.Ктонибудь помогите,я уже не знаючто делать с этими ***** 10 строчками кода!
Доведите до ума в этот **** брут, мне только бы чтоб он работал,я б зря не сидел,додалал что хочу,а тоя даж проверить не могу изза него весь скрипт целиком :(
<?
echo '<form method = "POST">';
echo '<input type = "text" name = "hash" value = "">';
echo '<input type = "submit" value = "Crack">';
echo '</form>';
$hash = $_POST['hash'];
$world = file('world.txt');
if(isset($_POST['hash'])){
$hash = $_POST['hash'];
}else{
exit();
}
foreach($world as $line){
$line = rtrim($line);
$brute = md5($line);
}
if($brute == $hash){
echo "Hash cracked! Password $line";
die();
}else{
echo "Hash то cracked";
}
?>
<?
echo '<form method = "POST" action="ИМЯ_ТВОЕГО_СКРИПТА">';
echo '<input type = "text" name = "hash" value = "">';
echo '<input type = "submit" value = "Crack">';
echo '</form>';
$world = file('world.txt');
if(isset($_POST['hash'])){
$hash = $_POST['hash'];
}
else{
exit();
}
foreach($world as $line){
$line = rtrim($line);
$brute = md5($line);
if($brute == $hash){
echo "Hash cracked! Password $brute";
}
}
?>
Помогите мне пожалуйста! на предыдущей странице!
Я возможно уже совсем сплю сидя,но ничего ты не сделал :/
echo '<form method = "POST" action="ИМЯ_ТВОЕГО_СКРИПТА">'; - зачем?Если скрипт выполняеться внутри....
foreach($world as $line){
$line = rtrim($line);
$brute = md5($line);
if($brute == $hash){
echo "Hash cracked! Password $brute";
}
}
?>
Добаляем:
foreach($world as $line){
$line = rtrim($line);
$brute = md5($line);
if($brute == $hash){
echo "Hash cracked! Password $line";die;
}else{
echo "Not cracked :(";
}
И опятьже ,фореач заставляеть появляться надпись Not cacked много раз.
Не работает.Кто еще может чтото по делу предложить?)
b3 thanks =)
Ты можешь интегрировать тот код с уменьшением картинки в мой код сразу ???
<?php
// Подключаемься к базе данных
include ("db.php");
//================Настройки============= //
// максимальная ширина картинок на превью
$maxwidth = "300px";
// Директория для фотографий товаров
$fotos_dir = "fotos/";
$resizeWidth=215;
// Полное имя файла вместе с путем
$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
{//Вызов новой функции для изменения размеров, учти, что теперь только jpg & gif, если хочешь, то добавь png, там все одинково получится
openResizeAndSave($resizeWidth,$upfile);
}
}
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("Ошибка обработки данных либо вы пытаетесь подсунуть нам свинью");
}
function openResizeAndSave($nWidth,$fileName)
{
switch(substr($fileName,-4))
{
case ".gif":
{
$Res=imagecreatefromgif($fileName);
$ext=($Res)?".gif":"";
break;
}
case ".jpg":
{
$Res=imagecreatefromjpeg($fileName);
$ext=($Res)?".jpg":"";
break;
}
default: return FALSE;
}
if($Res)
{
$Width=imagesx($Res);
$Height=imagesy($Res);
}
else
return FALSE;
$Koef=($nWidth/$Width);
$nHeight=(int)($Koef*$Height);
$nRes=imagecreatetruecolor($nWidth,$nHeight);
if(!imagecopyresampled($nRes,$Res,0,0,0,0,$nWidth, $nHeight,$Width,$Height))
return FALSE;
$Res=$nRes;
unlink($fileName);
switch($ext)
{
case ".jpg":
{
if(!imagejpeg($Res,$fileName))
return FALSE;
break;
}
case ".gif":
{
if(!imagegif($Res,$fileName))
return FALSE;
break;
}
default: return FALSE;
}
return TRUE;
}
?>
Держи, только что проверил, все работает отлично
Я возможно уже совсем сплю сидя,но ничего ты не сделал :/
echo '<form method = "POST" action="ИМЯ_ТВОЕГО_СКРИПТА">'; - зачем?Если скрипт выполняеться внутри....
я тебе телепат что ли?!
давай сюда весь скрипт а не кусок выдранный
а надпись Not cracked много раз появляется потому что хеши не совпадают и форич тут не причем
Я понимаю, что так не правильно, но нужно именно так, без кейсов...
Что за бред??? Чем такое решение может быть продиктовано???
<?php
include ("navi.inc");
?>
<html>
<head>
<title><?php
$a=$_GET['a'];
if($a=="main")
{
$title=$naving['title']['nav1'];
$description=$naving['description']['nav1'];
$keywords=$naving['keywords']['nav1'];
$inc="sasha.inc";
}
elseif($a== "contacts")
{
$title=$naving['title']['nav2'];
$description=$naving['description']['nav2'];
$keywords=$naving['keywords']['nav2'];
$inc="foot.inc";
}
elseif($a== "about")
{
$title=$naving['title']['nav3'];
$description=$naving['description']['nav3'];
$keywords=$naving['keywords']['nav3'];
$inc="sash.inc";
}
elseif($a== "gallery")
{
$title=$naving['title']['nav4'];
$description=$naving['description']['nav4'];
$keywords=$naving['keywords']['nav4'];
$inc="ema.inc";
}
elseif($a== "products")
{
$title=$naving['title']['nav4'];
$description=$naving['description']['nav5'];
$keywords=$naving['keywords']['nav5'];
$inc="nav.inc";
}
else
{
$title="Ошибка";
$description="Ошибка";
$keywords="Ошибка";
$inc=NULL;
}
echo $title;
?></title>
<meta NAME="description"
content="
<?php echo $description; ?>">
<meta NAME="keywords"
content="
<?php echo $keywords; ?>
">
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1251">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="200" height="79" border="1">
<tr>
<td colspan="3">5</td>
</tr>
<tr>
<td><?php
foreach ($naving['menu'] as $val) {
echo "<tr><td><a href=\"vasa.php?a=$val\">$val</a></td></tr>";
}
?>
</td>
<td width="71" colspan="2">
<?php if($inc) include($inc); ?></td>
</tr>
<tr>
<td colspan="3">4</td>
</tr>
</table>
</body>
</html>
На тебе без кэйсов
Это и есть весь скрипт,разве не видно?Тупизм.
Это и есть весь скрипт,разве не видно?Тупизм.
<?
echo '<form method = "POST">';
echo '<input type = "text" name = "hash" value = "">';
echo '<input type = "submit" value = "Crack">';
echo '</form>';
$hash = $_POST['hash'];// <----------------------
$world = file('world.txt'); // |
if(isset($_POST['hash'])){ //тупизм здесь есть тоже // |
$hash = $_POST['hash'];//и здесь->смотри выше------|
}else{
exit();
}
foreach($world as $line){
$line = rtrim($line);
$brute = md5($line);
}//<------ тут цикл кончился
if($brute == $hash){//интересно что ты тут сравниваешь если цикл идет выше ?! =)
echo "Hash cracked! Password $line";
die();
}else{
echo "Hash то cracked";
}
?>
тебе дали рабочий скрипт что те еще нужно?
а надпись Not cracked много раз появляется потому что хеши не совпадают и форич тут не причем
life_is_shit
18.12.2008, 03:00
m0Hze по придержал язык бы.
з.ы. я тебе вообще поражаюсь, в одной теме тебе пишут скрипт в другой ты его юзаешь за зелень=\
Это и есть весь скрипт,разве не видно?Тупизм.
Слышишь, "Тупизм", нихрена себе, 5 страниц уже засрано скриптом в 10 строчек и ты еще кого-то в тупизме обвиняешь??? Офигенный подход к жизни, на, все тут работает, проверено
<?
echo "<form method = 'POST' action='{$_SERVER['REQUEST_URI']}'>
<input type = 'text' name = 'hash' value = ''>
<input type = 'submit' value = 'Crack'>
</form>";
$hash = $_POST['hash'];
$world = file_get_contents('world.txt');
$world=explode("\r",$world);
foreach ($world as $list)
{
$brute = md5($list);
if ($brute == $hash)
{
echo "Сцуко, подходит к $list";
exit();
}
else
{
echo " Не гавно ";
}
}
?>
и вообще писать брутер md5 на php это извращение
ss88
Мне нужен вывод загружаймой картинки!
$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'];
$fileName = $myrow['url'];
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
// Данные успешно внесены в базу данных, выводим сообщение
if ($query == 'true') {
echo "<br /><b>Данные успешно внесены в базу</b>";
}
// В противном случае, выводим ошибку при добавлении в базу данных
else {
echo "$error_by_mysql";
}
Мне нужен вывод КАРТИНОК с другой таблицы! Ф ФОРМЕ ЧТОБ МОЖНО БЫЛО ВЫБРАТЬ ТУ КОТОРАЯ НУЖНА!
<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>
И всё это идёт туда!
<?php include("db.php");
header('Content-type: image/jpeg');
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)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$width = 215;
$heigth = 750;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
imagecopy($im, $im1, 0, 0, 0, 0, 215, 390);
imagecopy($im, $im2, 0, 410, 0, 0, 215, 20);
imagecopy($im, $im3, 0, 430, 0, 0, 215, 350);
imagejpeg($im);
imagedestroy($im);
}
else
{
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);
Посмотри на это!!! Ты только что добавил и тянешь зачем-то назад)))
Ладно, вот так, дополнил, иеперь функционал совпадает нувааще )))
<?php
// Подключаемься к базе данных
include ("db.php");
//================Настройки============= //
// максимальная ширина картинок на превью
$maxwidth = "300px";
// Директория для фотографий товаров
$fotos_dir = "fotos/";
$resizeWidth=215;
// Полное имя файла вместе с путем
$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
{//Вызов новой функции для изменения размеров, учти, что теперь только jpg & gif, если хочешь, то добавь png, там все одинково получится
openResizeAndSave($resizeWidth,$upfile);
}
}
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>";
$adres=$foto_name;
}
else
exit("<p>Ошибка сохранения данных.</p>" . mysql_error());
} else //Если возникла ошибка при передаче или левое расширение файла
exit("Ошибка обработки данных либо вы пытаетесь подсунуть нам свинью");
}
?>
<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>
<?
function openResizeAndSave($nWidth,$fileName)
{
switch(substr($fileName,-4))
{
case ".gif":
{
$Res=imagecreatefromgif($fileName);
$ext=($Res)?".gif":"";
break;
}
case ".jpg":
{
$Res=imagecreatefromjpeg($fileName);
$ext=($Res)?".jpg":"";
break;
}
default: return FALSE;
}
if($Res)
{
$Width=imagesx($Res);
$Height=imagesy($Res);
}
else
return FALSE;
$Koef=($nWidth/$Width);
$nHeight=(int)($Koef*$Height);
$nRes=imagecreatetruecolor($nWidth,$nHeight);
if(!imagecopyresampled($nRes,$Res,0,0,0,0,$nWidth, $nHeight,$Width,$Height))
return FALSE;
$Res=$nRes;
unlink($fileName);
switch($ext)
{
case ".jpg":
{
if(!imagejpeg($Res,$fileName))
return FALSE;
break;
}
case ".gif":
{
if(!imagegif($Res,$fileName))
return FALSE;
break;
}
default : return FALSE;
}
return TRUE;
}
?>
ss88
Ещё мне нужна переменая высоты которая отвечает за пропорции ну типа шарина всё время 215, а высота то меняется и мне нужно передовать её в файл end.php и подстовлять её в переменую $heigth
ну типа $heigth = та переменая + 320;
<?php include("db.php");
header('Content-type: image/jpeg');
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)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$width = 275;
$heigth = 750; // чтоб при создании картинки не было лишних пикселей
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
imagecopy($im, $im1, 0, 0, 0, 0, 215, 390);
imagecopy($im, $im2, 0, 410, 0, 0, 215, 20);
imagecopy($im, $im3, 0, 430, 0, 0, 215, 350);
imagejpeg($im);
imagedestroy($im);
}
else
{
exit();
}
?>
<?php
// Подключаемься к базе данных
include ("db.php");
//================Настройки============= //
// максимальная ширина картинок на превью
$maxwidth = "300px";
// Директория для фотографий товаров
$fotos_dir = "fotos/";
$resizeWidth=215;
// Полное имя файла вместе с путем
$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
{//Вызов новой функции для изменения размеров, учти, что теперь только jpg & gif, если хочешь, то добавь png, там все одинково получится
//ОНА ВОЗВРАЩАЕТ НОВУЮ КОРРЕКТНУЮ ВЫСОТУ ИЗМЕНЕННОГО ИЗОБРАЖЕНИЯ
if(!($HEIGHT=openResizeAndSave($resizeWidth,$upfil e)))
exit("Ошибка преобразования файла");
}
}
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>";
$adres=$foto_name;
}
else
exit("<p>Ошибка сохранения данных.</p>" . mysql_error());
} else //Если возникла ошибка при передаче или левое расширение файла
exit("Ошибка обработки данных либо вы пытаетесь подсунуть нам свинью");
}
?>
<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>
<?
function openResizeAndSave($nWidth,$fileName)
{
switch(substr($fileName,-4))
{
case ".gif":
{
$Res=imagecreatefromgif($fileName);
$ext=($Res)?".gif":"";
break;
}
case ".jpg":
{
$Res=imagecreatefromjpeg($fileName);
$ext=($Res)?".jpg":"";
break;
}
default: return FALSE;
}
if($Res)
{
$Width=imagesx($Res);
$Height=imagesy($Res);
}
else
return FALSE;
$Koef=($nWidth/$Width);
$nHeight=(int)($Koef*$Height);
$nRes=imagecreatetruecolor($nWidth,$nHeight);
if(!imagecopyresampled($nRes,$Res,0,0,0,0,$nWidth, $nHeight,$Width,$Height))
return FALSE;
$Res=$nRes;
unlink($fileName);
switch($ext)
{
case ".jpg":
{
if(!imagejpeg($Res,$fileName))
return FALSE;
break;
}
case ".gif":
{
if(!imagegif($Res,$fileName))
return FALSE;
break;
}
default : return FALSE;
}
return $nHeight;
}
?>
$HEIGHT - высота изображения, передавай куда хочешь. Хотя я не пойму, зачем она тебе нужна??? Если ты при выводе картинки в тэге укажешь только ширину, то высоту оно тебе подберет пропорционально
ss88
Проблема решина вопрос закрыт ))
<?php include("db.php");
header('Content-type: image/jpeg');
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)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);
$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);
imagejpeg($im);
imagedestroy($im);
}
else
{
exit();
}
?>
Позлравляю... но все равно, методы решения задач у тебя какие такие себе... пальцем в небо абы как...
Спокойной ночи
доброго всем дня, у меня такой вопрос, вообшем например я ввожу в гугл(яшу,рамблер) например такой запрос :
вася пряников, после клацания на кнопку серч в адресной строке вылазиет поисковый запрос q=%D1%84%D1%8B%D0%B2%D1%84%D1%8B%D0%B2%D1%84%D1%8B %D0%B2
сответсвенно делаю urldecode() даной строки и получаю вот такие символы q=вася РїСЂСЏРЅРёРєРѕРІ, в какие кодировки уже не переводил все равно выходит лабуда, как можно его превести в читабельный вид, уже и в штирлиц закидывал и тот переводит только вторую часть слова, че это за кодировка?
PaCo, urldecode, cледом iconv (http://php.net/iconv)
PaCo, urldecode, cледом iconv (http://php.net/iconv)
Что бы перевести кодировку из одной в другую надо знать начальную кодировку, а я х.з., похожа на KOI-8, но echo iconv("KOI8-U", "windows-1251", urldecode("q=%D0%B2%D0%B0%D1%81%D1%8F+%D0%BF%D1%80%D1%8F%D0%B D%D0%B8%D0%BA%D0%BE%D0%B2")) ; выводит что симврлы не те ты вводишь типа.
Порыскал по форумам, нигде не смогли решить эту траблу, все кричат забей, походу придеться забить.
Сам осознаю, что вопрос глупый.
Начал изучать PHP, накачал учебников и прочего, пробую самый первый пример из приведенных.
<Html>
<head>
<title>asdfskld</title>
</head>
<body>
<?
if(5<3){
echo("<p>Hello, world!</p>");
?>
<p>Hello!</p>
// эта строка не интерпретируется как код PHP
// и выводится только если блок кода выполняется
<?
echo("<p>Hello, world!</p>");
}
?>
</body>
</Html>
В результате браузер выводит:
Hello, world!
"); ?>
Hello!
// эта строка не интерпретируется как код PHP // и выводится только если блок кода выполняется Hello, world!"); } ?>
Немного не понятно, почему он выводит выделенные символы :confused:
Сам осознаю, что вопрос глупый.
Начал изучать PHP, накачал учебников и прочего, пробую самый первый пример из приведенных.
<Html>
<head>
<title>asdfskld</title>
</head>
<body>
<?
if(5<3){
echo("<p>Hello, world!</p>");
?>
<p>Hello!</p>
// эта строка не интерпретируется как код PHP
// и выводится только если блок кода выполняется
<?
echo("<p>Hello, world!</p>");
}
?>
</body>
</Html>
В результате браузер выводит:
Hello, world!
"); ?>
Hello!
// эта строка не интерпретируется как код PHP // и выводится только если блок кода выполняется Hello, world!"); } ?>
Немного не понятно, почему он выводит выделенные символы :confused:
Может дело в том,что не закончив один код <? ?> ты в нем начинаеш другой? Попробуй так.
<?
if(5<3){
echo("<p>Hello, world!</p>");
echo "<p>Hello!</p>";
// эта строка не интерпретируется как код PHP
// и выводится только если блок кода выполняется
echo("<p>Hello, world!</p>");
}
?>
Темболее,там еще выполняеться оператор if(); и он выводи поэтому тебе ?> как обычный текст.
Pashkela
18.12.2008, 14:33
Что бы перевести кодировку из одной в другую надо знать начальную кодировку, а я х.з., похожа на KOI-8, но echo iconv("KOI8-U", "windows-1251", urldecode("q=%D0%B2%D0%B0%D1%81%D1%8F+%D0%BF%D1%80%D1%8F%D0%B D%D0%B8%D0%BA%D0%BE%D0%B2")) ; выводит что симврлы не те ты вводишь типа.
<?
$q = 'вася пряников';
$s = mb_detect_encoding($q);//Определяем кодировку
$q = iconv($s, 'CP1251//TRANSLIT', $q);//Декодируем
echo $s . "\r\n";
echo $q . "\r\n";
?>
<?
$q = 'вася пряников';
$q = iconv('UTF-8', 'CP1251//TRANSLIT', $q);
echo $q;
?>
сенкс, как я понял гуглу можно самому указать кодировку oe=utf-8
подобный вопрос я уже задавал.. но тот вариант для этого не подходит(((
есть
$key = 'бла бла бла - "ыва ыва ыва" бла бла бла...';
нужно чтобы скрипт заменил эти " кавычки на такие '
то есть чтобы на выходе было вот так
бла бла бла - 'ыва ыва ыва' бла бла бла...
пробовал через str_replace, но почему то не получается :(
Pashkela
18.12.2008, 15:21
<?
$key = 'бла бла бла - "ыва ыва ыва" бла бла бла...';
echo str_replace('"',"'",$key);
?>
<?
$key = 'бла бла бла - "ыва ыва ыва" бла бла бла...';
echo str_replace('"',"'",$key);
?>
++
блин, вот я тупанул с str_replace... :)
m0nsieur
18.12.2008, 16:15
Как минимум пропустил это - <input type="hidden" name="MAX_FILE_SIZE" value="200000000">
Ниже уже добавлена строка.
eD']Не получается отправить файлы на сервер, код:
<form enctype="multipart/form-data" method="post" action="up.php">
<input type="hidden" name="MAX_FILE_SIZE" value="200000000">
<input name="object" size="51" type="file"/>
<br/>
<input type="submit" value="Upload"/>
</form>
Подскажите???
Как после создание картинки сохранить её к примеру на сервере в папке аватар???
<?php include("db.php");
header('Content-type: image/jpeg');
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)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);
$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);
imagejpeg($im);
imagedestroy($im);
}
else
{
exit();
}
?>
bool imagejpeg ( resource image [, string filename [, int quality]] )
замени там у себя
imagejpeg($im,"avatar/FILENAME.jpeg");
imagedestroy($im);
bool imagejpeg ( resource image [, string filename [, int quality]] )
замени там у себя
imagejpeg($im,"avatar/FILENAME.jpeg");
imagedestroy($im);
Это конешно понятно! Но если ты не заметел мне надо сохранить именно $im Я поробовал как ты сказал не работает!
Pashkela
18.12.2008, 17:42
2 geforce:
<?
$im = ImageCreateFromPng("название_картинки.png");
$c1 = ImageColorAllocate($im, 0, 0, 0);
$string = "lolololol";
ImageString($im,3,20,20,$string,$c1);
ImagePng($im);
imageGif($im,"Новое_название_картинки.png");
ImageDestroy($im);
?>
http://www.tizag.com/phpT/fileupload.php
[R]eD, возможно не указана или неверно указана временная папка? Или нет прав для записи туда?
m0nsieur
19.12.2008, 00:27
2 Isis у него не указана папка и используется которая по умолчанию, вот его конфиг который он выше приводил.
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =
Сообщество, Добрый вечер!
Вопрос:
Есть файл текстовый вида
ClientNo Surname Name Secname Date_birth INN
----------- ---------------------------- -------------------- ---------------------------- ------------------------------------------------------ ----------
154 XXX Борис Федорович 1952-06-23 00:00:00 1916714698
5361 XXX Анжела Дмитрівна 1967-11-21 00:00:00 2479608221
5398 XXX Василь Омелянович 1956-05-27 00:00:00 2060116415
(3 row(s) affected)
AccountMemberNo FondNo ClientNo Date_open Date_close ContractNo Rest1 Rest2
--------------- ------ ----------- ------------------------------------------------------ ------------------------------------------------------ ----------- --------------------- ---------------------
1766 1 154 2005-02-01 00:00:00.000 NULL 2 10692.6800 8264.4285
2998 1 154 2006-09-18 10:52:39.333 NULL 39 57056.2700 44099.0711
5341 2 5361 2008-07-16 00:00:00.000 NULL 45 251.7000 356.3554
5386 3 5398 2008-09-03 17:10:45.610 NULL 196 203.3800 199.6330
(4 row(s) affected)
AccountMemberNo Date_oper Type_operNo Name_oper Summ1 Summ2 Epv
--------------- ------------------------------------------------------ ----------- ---------------------------------------------------------------------------------------------------- --------------------- --------------------- -----------------------------------------------------
1766 2005-02-01 14:43:47.350 2 Відкриття рахунку .0000 .0000 1.0
1766 2005-02-23 15:30:14.730 0 Внесок ІПР від юр.особи 570.0000 570.0000 1.0
1766 2005-03-01 09:05:53.000 14 Нарахування прибутку .0600 .0000 1.0001069482802716
1766 2005-03-23 14:55:30.660 0 Внесок ІПР від юр.особи 570.0000 569.9390 1.0001069482802716
1766 2005-04-01 09:08:21.000 14 Нарахування прибутку 7.1800 .0000 1.0064007049862715
1766 2005-04-20 12:00:48.077 0 Внесок ІПР від юр.особи
Это, как вполне можно понять - дамп базы
Нужно из текстового файла забить в таблицы
Как решения, можно написать класс, который будет считывать файл в массив с помошью функции file, проходится по всем строкам...
В зависимости от входящей строки, принимать решения - создать таблицу, вставить в таблицу запись, конец таблицы.
Что-то типа конечного автомата
Все бы неплохо, вот только прислали мне файлы метров под 70(и это не предел), с 300 000 строками
Вопрос не в timelimit, тут никакой памяти не хватит...
Считывать побайтово? Но как получать начальное состояние тогда...
Вообщем варианты может есть?
или придется все-таки через file все делать
Pashkela
19.12.2008, 01:07
Файловый резак, причем с исходниками:
http://old.softerra.ru/softnews/2002/5/6/20594/
Сообщество, Добрый вечер!
Вообщем варианты может есть?
или придется все-таки через file все делать
А чем тебе не нравится построчное считывание? В соответствии с правилами твоей задачи, считывать по одной строке, проводить ее анализ и выполнять далее какие-то действия... Сомневаюсь, что выйдет гиперсложный алгоритм, тем более, что тебе, вобщем-то, насколько я понял, не надо проверять корректность данных... Так что можно помозговать, рассказывай конкретнее
Файловый резак, причем с исходниками:
http://old.softerra.ru/softnews/2002/5/6/20594/
Извини конечно, но зачем мне "Файловый резак"???
Тем боле Windows, я же не фильм на депозит выкладываю
Читаем внимательно вопрос!
Файл есстественно, можно было и вручную по таблицам разбить, в том то и вопрос, что система должна быть автоматизирована (по нажатию кнопочки), не мне обновлять, а заказчику...
А чем тебе не нравится построчное считывание? В соответствии с правилами твоей задачи, считывать по одной строке, проводить ее анализ и выполнять далее какие-то действия... Сомневаюсь, что выйдет гиперсложный алгоритм, тем более, что тебе, вобщем-то, насколько я понял, не надо проверять корректность данных... Так что можно помозговать, рассказывай конкретнее
Та алгоритм - не сложный, как я говорил, простой конечный автомат уже сделал, НО
С file все работате нормально на маленьких файлах...
Но большие скорее всего не потянет, вот и спрашиваю, может у кого есть другие идеи,
При 300 000 записей только в одной таблице, а таблицы будет скорее всего 3, нехватка памти, на локалхосте, еще ладно... но на серваке...
уже обдумаю о том, что заказчику понадобится выделенный сервант, что бы хотя бы с file запустить
ты не понял, я не говорю о том, чтобы затягивать в память такую громадину, это, действительно, было бы глупо, а читать его, ИМХО, нужно построчно и передвигать указатель в файле, таким образом мы уйдем от больших затрат памяти, но получим затраты времени на обращение к ЖД и процессороного времени, но это уже будет совсем не такой критичный к ресурсам алгоритм. А еще лучше будет читать это все порциями...
Pashkela
19.12.2008, 01:27
Извини конечно, но зачем мне "Файловый резак"???
Не знаю, зачем, но я только что за 3 сек порезал дамп весом в 43 мб на 89 частей каждая по 500 кб. Не надо так не надо. Умничай дальше
ты не понял, я не говорю о том, чтобы затягивать в память такую громадину, это, действительно, было бы глупо, а читать его, ИМХО, нужно построчно и передвигать указатель в файле, таким образом мы уйдем от больших затрат памяти, но получим затраты времени на обращение к ЖД и процессороного времени, но это уже будет совсем не такой критичный к ресурсам алгоритм
Я не могу считывать его построчно, так как не знаю размер строки...
Может я я не могу понять, что ты хочешь сказать, можно пример?
как реализовать считыванеи построчно? например прочтения 564 000 -ой строки?
Не знаю, зачем, но я только что за 3 сек порезал дамп весом в 43 мб на 89 частей каждая по 500 кб. Не надо так не надо. Умничай дальше
Так хоть за 1 сек. 2 Гб обьясни, хотя бы себе, как я могу с моей задачей использовать твой совет? Неужели так трудно вопрос прочитать? вот именно, что "Не знаю, зачем"
увеличением и запоминанием позиции чтения из файла. fseek(...)
увеличением и запоминанием позиции чтения из файла.
Т.е что -то типа
- открыл файл
- считал инфу до переноса строки
- запомнил позицию
но после скажем 300 000 - ой строки,
нам при новом обращении к файлу, нужно будет осчитывать 300 000 переносов строк, пот 300 001, 300 002 и т.д.
ну это еще медленней чем file
Или как запоминать позицыю строки? приведи пример хотя бы на файле в 10 строк
---------
смотрю с fseek
при использовании fseek, нужно ЕЩЕ вычислять размер КАЖДОЙ считанной строки, что бы знать куда потом вернутся + алгоритм считывание новой строки до символа переноса строки( именно не побайтово, а до переноса строки) = еще медленее, вернее вообще хреново...
Чем больше вариантов пробую, тем убеждаюсь - не нужно изобретать велосипед - file()
но вариант был интересный :)
щаз приведу
Да все же уже, не нужно
я не увидел твой пост после редактирования, отписался выше
<?php
$currPos=0;
$hFile=fopen("dump.txt","r");
//считывание порции определенного размера
$currentPartOfData=fread($hFile,4096);
$currPos+=4096;
//дочитыване до конца последней строки
do
{
$currPos++;
$currentPartOfData.=$byte=fread($hFile,1);
}
while($byte!='\n')
?>
Сырой и толком непродуманный пример считывания порции из твоего файла, после обработки текущей порции, считывание продолжается оттуда, где мы закончили и читается следующая порция... Нужно учитывать длину файла. Собственно, вот, это будет лучше, чем забить несколько файлов по полгектара в память
<?php
$currPos=0;
$hFile=fopen("dump.txt","r");
//считывание порции определенного размера
$currentPartOfData=fread($hFile,4096);
$currPos+=4096;
//дочитыване до конца последней строки
do
{
$currPos++;
$currentPartOfData.=$byte=fread($hFile,1);
}
while($byte!='\n')
?>
Сырой и толком непродуманный пример считывания порции из твоего файла, после обработки текущей порции, считывание продолжается оттуда, где мы закончили и читается следующая порция... Нужно учитывать длину файла. Собственно, вот, это будет лучше, чем забить несколько файлов по полгектара в память
Спасибо, на скорую руку, как я писал уже,
работает медленней чем file, но пища для размышленний есть!!!
еще раз спасибо!
Pashkela
19.12.2008, 02:06
Для долбиков в оправдание моего мега-метода, придуманного налету:)
Разрезаем файл на части указанной выше программой, получаем что-то типо вроде:
sql.0, sql.1 - ну это если на две части. А дальше такой код:
<?
for($i=0;$i<2;$i++) $p[$i]=File("sql." . $i);
print_r ($p);
?>
Спасибо, на скорую руку, как я писал уже,
работает медленней чем file, но пища для размышленний есть!!!
еще раз спасибо!
Ну дык, конечно же медленнее, вместо того, чтобы одним махом прочитать 300Мб, дергать винт за каждой порцией... Здесь просто нужно еще найти среднепривлекательный размер этих порций, тогда задержка, вызванная работой с диском уменьшится... Я думаю, порции порядка 20-30Мб - вполне приемлемы... Главное, потом сделать более или менее оптимальный алгоритм разбора полученного массива, чтобы он не делал лишних действий и беганий...
Для долбиков в оправдание моего мега-метода, придуманного налету:)
Разрезаем файл на части указанной выше программой, получаем что-то типо вроде:
sql.0, sql.1 - ну это если на две части. А дальше такой код:
<?
for($i=0;$i<2;$i++) $p[0][$i]=File("sql." . $i);
print_r ($p);
?>
Ну и чем это лучше??? Если мы работаем с порциями то последовательно сможем дочитывать то, чего нам не хватило, а если есть твои два файла и получился разрыв строки между ними, что тогда?
Pashkela
19.12.2008, 02:13
2 ss88:
твой алгоритм заткнется или будет мега тормозить еще здесь:)
$hFile=fopen("dump.txt","r");
если действительно 70мб
Если мы работаем с порциями то последовательно сможем дочитывать то, чего нам не хватило, а если есть твои два файла и получился разрыв строки между ними, что тогда?
тоже самое, что и с последовательными строками в массиве. Мозги включайте уже, да. Может мне вам вообще еще 10 000$ подарить?:)
Для долбиков в оправдание моего мега-метода, придуманного налету:)
Разрезаем файл на части указанной выше программой, получаем что-то типо вроде:
sql.0, sql.1 - ну это если на две части. А дальше такой код:
<?
for($i=0;$i<2;$i++) $p[0][$i]=File("sql." . $i);
print_r ($p);
?>
Послушай, мало что, что ты не можешь прочесть то, что я писал выше (хотя я раза три просил тебе сделать), ты начинаешь еще и хамить!!!
Для долбиков
Naydav писал:
Файл есстественно, можно было и вручную по таблицам разбить, в том то и вопрос, что система должна быть автоматизирована (по нажатию кнопочки), не мне обновлять, а заказчику...
Или я должен сказать, заказчику, что его система(за нехилые бабки) не будет работать, пока он не установит себе прогу и не будет резать файлы, о которых он и не догадывается, ах да и еще пусть всех кто будет работать(а это банковские работники - во многом люди далекие от йти) тоже пусть разбираются и ставят софт... (кстати даже файл на сервак загружается по фтп удаллено зазипованым, но я думаю они его скачают порежут, зальют все обратно - тьху ты делов то, пАдумаешь)
И обновление только с винды, хотя есть четкая постановка, один из вариантов запуска на обновление при смс с мобильника,
о скажи а для телефона этой проги нету случайно?
Pashkela
19.12.2008, 02:21
2 Naydav:
Файловый резак, причем с исходниками:
http://old.softerra.ru/softnews/2002/5/6/20594/
Веселитесь дальше:)
2 ss88:
твой алгоритм заткнется или будет мега тормозить еще здесь:)
$hFile=fopen("dump.txt","r");
если действительно 70мб
тоже самое, что и с последовательными строками в массиве. Мозги включайте уже, да. Может мне вам вообще еще 10 000$ подарить?:)
Чувак, ты зря корчишь тут мегагуру и оскорбляешь присутствующих.
Насчет, "заткнется", скажу тебе только то, что тебе бы мозги иногда включать, перед тем, как что-то писать, потому что открывается только хэндл, и пофиг, сколько весит файл, ты заронил в мне сомнение, я только что проверил
$hFile=fopen("ZendStudioForEclipse-6_1_0.tar.gz","r");
echo "AllRight";
fclose($hFile);
Работает это без всяких задержек(студия весит 350Мб), что доказывать, вобщем-то, и не стояло. А хамство применяется немного в других местах.
Насчет "долбиков"... чтение порции с дочитыванием займет, конечно, чуть бульше времени, чем чтение файла целиком, но сколько потом займет времени и как усложнит алгоритм согласование между порезанными частями? Или ты еще и резать их предлагаешь по правилам?
Pashkela
19.12.2008, 02:29
Да не вопрос, оставляю вас наедине, девочки:)) Читайте хоть гигабайтнгые файлы таким макаром:)
2 Naydav:
Веселитесь дальше:)
Программа Cutter предназначена для разделения файла на части. Это, к примеру, может понадобиться для переноса с помощью дискет (т.н. floppy-net :-) файла, размер которого больше емкости одной дискеты, на другой компьютер. до 2Гб.
В новой версии (2.1) (02.05.2002)
Скажи а ты прогу скачивал, ты вообще смотрел что в архиве? я вроде постом выше отписал почему немогу использовать софт, который режет файлы на части(у пользователя, тои достып к файлам-то нету),
неужели непонятно, о чем я написал постом выше... ???
Все извини, но я не хочу тратить свое время, ты все рано ответишь
2 Naydav:
Веселитесь дальше:)
[QUOTE]
и дашь совсем левую ссылку
пс А при чем сдесь fopen к размеру файла(косвенное отношение)???? повеселил
Pashkela
19.12.2008, 02:34
Файловый резак, причем с исходниками:
http://old.softerra.ru/softnews/2002/5/6/20594/
Красненькое видишь? Нет? Ты дальтоник?
Ссылка рабочая, сам скачал, порезал свой дамп весом в 43 мб на части и спокойно всё загнал в массив - алгоритм выше.
ЗЫЖ Вот тупицы оба-два:)
Файловый резак, причем с исходниками:
http://old.softerra.ru/softnews/2002/5/6/20594/
Красненькое видишь? Нет? Ты дальтоник?
Ссылка рабочая, сам скачал, порезал свой дамп весом в 43 мб на части и спокойно всё загнал в массив - алгоритм выше.
ЗЫЖ Вот тупицы оба-два:)
смотрю в книгу - вижу фигу, ну прочти еще раз
http://forum.antichat.ru/showpost.php?p=1002163&postcount=7153
пс Не было ни единого разрыва!!! :)
Pashkela
19.12.2008, 02:43
2 Naydav:
Ты реально тупой, извини. Хоть бы для начала попробовал бы сделать - запустить прогу, порезать, понять принцип работы, увидеть, что там есть даже .bat файл, который всё это склеит обратно, что там есть исходники, которые можно почитать, изучить и понять алгоритм - нет, сразу аврал, "Мне не то предлагают, чо за нахер!!!". С таким подходом иди коз доить, а не совета спрашивай, уважаемый
ЗЫЖ Задание твоё я 100 000 раз прочитал, и там, кроме того, что тебе прислали дамп весом неимоверным, и тебе надо загнать всё его в содержимое в массив, желательно посредством file(), а потом вставлять в таблицы и прочее (не важно дальше что, на самом деле) - так вот, именно эту задачу я и решил, а все твои последующие "банки, хренанки и прочее "хамство" - просто лол ходячий. Больше не слова.
2 Naydav:
Ты реально тупой, извини. Хоть бы для начала попробовал бы сделать - запустить прогу, порезать, понять принцип работы, увидеть, что там есть даже .bat файл, который всё это склеит обратно, что там есть исходники, которые можно почитать, изучить и понять алгоритм - нет, сразу аврал, "Мне не то предлагают, чо за нахер!!!". С таким подходом иди коз доить, а не совета спрашивай, уважаемый
ЗЫЖ Задание твоё я 100 000 раз прочитал, и там, кроме того, что тебе прислали дамп весом неимоверным, и тебе надо загнать всё его в содержимое в массив, желательно посредством file(), а потом вставлять в таблицы и прочее (не важно дальше что, на самом деле) - так вот, именно эту задачу я и решил, а все твои последующие "банки, хренанки и прочее "хамство" - просто лол ходячий. Больше не слова.
Я тебе сразу ответил, что порезать файл по таблицам я могу и вручную, БЕЗ ВСЯКИХ ПРОГ
и в шестой раз
http://forum.antichat.ru/showpost.php?p=1002163&postcount=7153
указываю на причину, почему это не подходит
но я понял, что с тобой это бесполезно
Почему в каждом твоем обращении(долбики, девочки, тупицы, дальтоник, тупой, лол) - присутствует оскорбление?
Это у тебя такая модель поведения или уровень развития?
пс
Надеюсь к утру тут почистят :)
Pashkela
19.12.2008, 02:52
Ну ладно, извини, просто эмоции так и прут. Почему тебе такой метод не подойдет, я так и не понял. Наверное тупой таки я. Peace.
Я тебе сразу ответил, что порезать файл по таблицам я могу и вручную, БЕЗ ВСЯКИХ ПРОГ
и в шестой раз
....
Вобщем, чего я наисследовал. Привожу два скрипта, 1-й создает файл забитый одинаковыми строками (чтобы было над чем работать), 2-й его последовательно читает порциами по 1Мб, если раскоментируете работу с БД, то еще и заносить в базу будет.
makefile.php
<?php
//через $_GET['s'] задается размер файла в Мб
set_time_limit(0);
ignore_user_abort(TRUE);
$floodString="1766 1 154 2005-02-01 00:00:00.000 NULL 2 10692.6800 8264.4285 *";
$hFile=fopen("dump.txt","w");
if(is_numeric($_GET['s']))
$size=$_GET['s']*1024*1024;
else
$size=70*1024*1024;
$size=$size/strlen($floodString);
for($i=0;$i<$size;$i++)
fwrite($hFile,$floodString);
fclose($hFile);
echo "Файл успешно создан";
?>
testing.php
<?php
$startTime=time();//приблизительный замер времени начала
//$db=mysql_connect("localhost","root","");
//mysql_select_db("achat",$db);
//убираем лимит по времени и аборты от пользователя
set_time_limit(0);
ignore_user_abort(TRUE);
$currPos=0;//текущая позиция в байтах
$hFile=fopen("dump.txt","rt");
$partSize=1048576;//одна порция = 1Мб
$currPos=0;//текущая позиция в байтах, считая от начала файла
$fileSize=filesize("dump.txt");//размер файла
echo "<b>Размер исходного файла:</b> ".($fileSize/1048576)."Mb<br/>";
//дочитыване до конца последней строки
while($currPos<$fileSize)
{//если осталось в файле меньше,чем на порцию
if($currPos+$partSize>$fileSize)
$partSize=$fileSize-$currPos;
//считывание порции определенного размера
$currentPartOfData=fread($hFile,$partSize);
$currPos+=$partSize;
/* если последний символ не разделитель строк, то нужно дочитать порцию до разделителя*/
if($currentPartOfData{strlen($currentPartOfData)-1}!='*')
do
{
$currPos++;
$currentPartOfData.=$byte=fread($hFile,1);
}
while($byte!='*');
/*НАГРУЗКА - разбить порцию на массив*/
$currentPartOfData=explode("*",$currentPartOfData);
/*занесение значений в базу данных*/
//foreach ($currentPartOfData as $string)
//mysql_query("INSERT INTO gruz (str) VALUES('{$string}');",$db);
echo "<br/><b>Обработано: </b>".($currPos/1048576)."Mb";
}
fclose($hFile);
//mysql_close($db);
echo "<br/><b>Время затраченное на операцию: </b>".(time()-$startTime)." seconds";
?>
Прошу всех, кому не лень, потестить эти вещи, благо - телодвижений для этого сильно много не нужно.
Вобщем, что получается, файл размером 120Мб обрабатывается без занесения в базу 2-3с. (комп. у меня совсем неважняцкий, а жаль, но надо будет это поправить :) ). Если еще и заносить эти 120Мб в базу, то обходится это уже в 76секунд. Как видишь, спор о быстродействии чтения из файла исчерпывается, теперь уже встает вопрос об оптимизации работы с базой, но это не было самоцелью.
Так что не нужно дамп бить на части, тем-более, что чтение+explod'ы даже 1Гб дампа (такого у тебя уж точно не будет) заняло всего 9секунд.
Потесть у себя на компе, это, конечно, только кусок моего быдлокода, но все же вопрос актуальный и интересный.
imajo.ati
19.12.2008, 10:53
вопрос:
функция exec или system запускает файл и ждёт пока он полностью не выполнится.
есть ли функция, которая не будет ждать выполнения и позволит продолжить работу?
Namelles One
19.12.2008, 11:04
Запускать файл - это сильно...
Запускай с помощью нее, но - с отвязкой от консоли (хотя, конечно, в PHP происходящее сложно назвать консолью), то есть - с амперсандом ( & ) после команды.
imajo.ati
19.12.2008, 11:07
Запускать файл - это сильно...
Запускай с помощью нее, но - с отвязкой от консоли (хотя, конечно, в PHP происходящее сложно назвать консолью), то есть - с амперсандом ( & ) после команды.
запустил с амперсандом
по-прежнему ждёт выполнения файла и не продолжает работу скрипта
exec('php d:/dev.php &');
запустил с амперсандом
по-прежнему ждёт выполнения файла и не продолжает работу скрипта
exec('php d:/dev.php &');
Так это винда, а не линукс. Здесь такое не прокатит.
Namelles One
19.12.2008, 11:44
ОМФГ.
Ну откуда мне знатЬ, что ты под Виндой сидишь.
Резонный вопрос - у тебя и так исполняется php код. Зачем из php кода вызывать исполнение php кода - не проще ли вставить? Хотя, тебе, судя по всему - потоков в php не хватает, читай про реализации псевдомногопоточности, по слухам оч клевых вещей люди на основе оной добиваются.
groundhog
19.12.2008, 11:56
Неймлесс прав, в винде нормально не демонизируешь скрипт и не оторвёшься от консоли... Если нужна многопоточность вот тут есть интересная её реализация, правда крайне экспериментальная...
http://github.com/danhen/php_threads/tree/master
imajo.ati
19.12.2008, 13:39
многопоточность в ПХП мне не нужна.
мне нужно 2 параллельно работающих скрипта в многопоточной операционной системе.
т.е. 2 раза запустить php.exe с параметром. но не вручную а с помощью кода на пхп
если невозможно - очень жаль, я в унынии(
makefile.php
<?php
//через $_GET['s'] задается размер файла в Мб
set_time_limit(0);
ignore_user_abort(TRUE);
$floodString="1766 1 154 2005-02-01 00:00:00.000 NULL 2 10692.6800 8264.4285 *";
$hFile=fopen("dump.txt","w");
if(is_numeric($_GET['s']))
$size=$_GET['s']*1024*1024;
else
$size=70*1024*1024;
$size=$size/strlen($floodString);
for($i=0;$i<$size;$i++)
fwrite($hFile,$floodString);
fclose($hFile);
echo "Файл успешно создан";
?>
testing.php
<?php
$startTime=time();//приблизительный замер времени начала
//$db=mysql_connect("localhost","root","");
//mysql_select_db("achat",$db);
//убираем лимит по времени и аборты от пользователя
set_time_limit(0);
ignore_user_abort(TRUE);
$currPos=0;//текущая позиция в байтах
$hFile=fopen("dump.txt","rt");
$partSize=1048576;//одна порция = 1Мб
$currPos=0;//текущая позиция в байтах, считая от начала файла
$fileSize=filesize("dump.txt");//размер файла
echo "<b>Размер исходного файла:</b> ".($fileSize/1048576)."Mb<br/>";
//дочитыване до конца последней строки
while($currPos<$fileSize)
{//если осталось в файле меньше,чем на порцию
if($currPos+$partSize>$fileSize)
$partSize=$fileSize-$currPos;
//считывание порции определенного размера
$currentPartOfData=fread($hFile,$partSize);
$currPos+=$partSize;
/* если последний символ не разделитель строк, то нужно дочитать порцию до разделителя*/
if($currentPartOfData{strlen($currentPartOfData)-1}!='*')
do
{
$currPos++;
$currentPartOfData.=$byte=fread($hFile,1);
}
while($byte!='*');
/*НАГРУЗКА - разбить порцию на массив*/
$currentPartOfData=explode("*",$currentPartOfData);
/*занесение значений в базу данных*/
//foreach ($currentPartOfData as $string)
//mysql_query("INSERT INTO gruz (str) VALUES('{$string}');",$db);
echo "<br/><b>Обработано: </b>".($currPos/1048576)."Mb";
}
fclose($hFile);
//mysql_close($db);
echo "<br/><b>Время затраченное на операцию: </b>".(time()-$startTime)." seconds";
?>
Обработка файла размером 300Мб с занесением в БД 4,915,500 записей заняло 377секунд. Неплохой результат, учитывая то, что размер порции не слишком большой. Здесь есть риск вызвать Fatal Error выделения памяти при больших порциях.
Я думаю, для подобных операций, которые, я думаю, выполняются нечасто, такой подход вполне приемлим.
ss88, Naydav Омг, что за ужос вы пишете в час ночи?) Для больших файлов Бог давно придумал fgets и stream_get_line. fgets для построчного чтения, стрим - для любого разделителя
<pre><?php
$startTime=microtime(true);
set_time_limit(0);
$ss=0;
$hFile=fopen("dump2.txt","r");
$fileSize=filesize("dump2.txt");
echo "<b>Размер исходного файла:</b> ".($fileSize/1048576)."Mb<br/>";
while($buf=fgets($hFile,4096))
//while($buf=stream_get_line($hFile,4096,"*"))
{
$tmp=$buf;
$ss++;
}
fclose($hFile);
echo "Предпоследняя строка: ".$tmp."\r\n".'Количество прочитанных строк '.$ss."\r\n";
echo "<br/><b>Время затраченное на операцию: </b>".(microtime(true)-$startTime)." seconds";
?>
ss88, Naydav Омг, что за ужос вы пишете в час ночи?) Для больших файлов Бог давно придумал fgets и stream_get_line. fgets для построчного чтения, стрим - для любого разделителя
изменил кое-что, но твой вариант со взятием каждой строки отдельно - это для больших файлов, конечно, самое оно, я не подумавши только что запустил такой вариант, уже минут 10 чиргыкает 100Мб...
Но кое-что я таки поменял, за что тебе спасиобо ;)
<?php
$startTime=microtime(TRUE);//приблизительный замер времени начала
$db=mysql_connect("localhost","root","");
mysql_select_db("achat",$db);
//убираем лимит по времени и аборты от пользователя
set_time_limit(0);
ignore_user_abort(TRUE);
$currPos=0;//текущая позиция в байтах
$delimiter='*';
$hFile=fopen("dump.txt","rt");
$partSize=51200;//одна порция = 50Кб
$currPos=0;//текущая позиция в байтах, считая от начала файла
$fileSize=filesize("dump.txt");//размер файла
echo "<b>Размер исходного файла:</b> ".($fileSize/1048576)."Mb ({$fileSize}Bytes)<br/>";
//дочитыване до конца последней строки
while(!feof($hFile))
{//если осталось в файле меньше,чем на порцию
if($currPos+$partSize>$fileSize)
$partSize=$fileSize-$currPos;
//считывание порции определенного размера
$currentPartOfData=fread($hFile,$partSize);
$currPos+=$partSize;
/* если последний символ не разделитель строк, то нужно дочитать порцию до разделителя*/
if($currentPartOfData{strlen($currentPartOfData)-1}!=$delimiter)
{
$currentPartOfData.=$tmp=stream_get_line($hFile,$p artSize,$delimiter);
$currPos+=strlen($tmp)-1;
}
/*НАГРУЗКА - разбить порцию на массив*/
$currentPartOfData=explode($delimiter,$currentPart OfData);
/*занесение значений в базу данных*/
foreach ($currentPartOfData as $string)
mysql_query("INSERT INTO gruz (str) VALUES('{$string}');",$db);
echo "#";
}
echo $currentPartOfData[count($currentPartOfData)-1]."<br/>";
fclose($hFile);
mysql_close($db);
echo "<br/>endPos={$currPos}<br/><b>Время затраченное на операцию: </b>".(microtime(TRUE)-$startTime)." seconds";
?>
кстати, теперь, когда окончание строки выдирается stream_get_line работает с такой же скоростью. А вот все таки вариант с построчным выдиранием - это не то ))) запусти такое у себя, когда файл из строк символов по 200-300, а сам файл метров 100-200, мне пришлось рестартить апач, чтобы эта медленная садистская вакханалия прекратилась. )))
Вобщем-то, закономерно, что, при уменьшении размера порции, увеличится время выполнения, но и нужно задуматься перед тем, как ставить ее больше одного Мб. Хотя наибольшего быстродействия чтение/разбиение я добился при размере порции 50Кб. 20Мб без занесения в БД обрабатывается 0,2с. Так что, уже стало ясно, по крайней мере мне, что при средних размерав дампов в 40-100Мб, операция их чтения/обработки/занесения в БД совсем даже и не критичны в таком контексте выполнения.
мааленький вопрос. :-[
есть хеши с "мусором" вида 2008-08-18(43):3557d8eff41195a6e33efb18d356a3e5:::0
нужен только хеш
<?php
$op="filet.xt";
$file=file_get_contents($op) or die ("Cannot open file");
$exp=explode(":",$file);
echo $exp[1];
?>
запутался с циклом =\
и вообще оптимален ли такой вариант? или есть лучше
если размер файла превысит допустимые размеры на выделение памяти для переменных, то получишь
Fatal error: Allowed memory size of хххххх bytes exhausted (tried to allocate ххххх bytes)
#Wolf#,
есть хеши с "мусором" вида 2008-08-18(43):3557d8eff41195a6e33efb18d356a3e5:::0
нужен только хеш
<?php
$str = '2008-08-18(43):3557d8eff41195a6e33efb18d356a3e5::';
preg_match('#[0-9a-f]{32}#i',$str, $matches);
print_r($matches);
echo $matches[0];
?>
Это вопрос по части регулярок, задаються сюда)
http://forum.antichat.ru/thread92492.html
Как из TEXTAREA все данные перекинуть массив (условие что каждый новый элемент с "\n");
Т.е. Есть TEXTAREA:
Первый
Второй
Должно быть
$mas[0]=Первый
$mas[1]=Второй.
Пробую так:
==========бла бла бла==========
<TEXTAREA name=all cols=45 rows=15></TEXTAREA><br>
==========бла бла бла==========
$array=array(split("\n",$_POST['all']));
==========бла бла бла==========
GreenBear
19.12.2008, 17:44
$array = explode("\n", $_POST['all']);
Где можно скачать норм учебник по пхп с 0, так чтоб без лишнего и одним архивом?
life_is_shit
19.12.2008, 19:18
http://www.php.net/download-docs.php
удачи=)
Может мой вопрос не сильно по теме,но как можно имитировать POST в ссылке,вопше делают так например
http://blablabla.ru/index.php&post=on
ето передается как бы в POST запросе переменная post со значением on вот только далекооо не всегда так выходит...подскажите плз...
Pashkela
19.12.2008, 21:56
форму свою делаешь локальную на сайте с автосабмитом и даешь ссылку на неё тому, кому надо (хоть себе):)
Дык,насчет автосабмита я нашел только 1н скрипт,и он тупой не нажимает на клавишу а лишь через заданое время делает клавишу со ссылкой которая подана в POST запросе и на нее уже жмет,тупость короче,дай тогда норм етот скрипт,да и вопше,я в основе задал другой вопрос,как конкретно впихнуть ето в ссылку,ну и етот скрипт не помешает))
Pashkela
19.12.2008, 22:02
<form NAME="xss" method='post' action='http://blablabla.ru/index.php&post=on'>
<input type='hidden' name='name' value='"><script>alert(document.cookie)</script>'>
<input type='submit'>
</form>
<script>
document.xss.submit();
</script>
http://www.php.net/download-docs.php
удачи=)
мне бы попроще и на русском :)
Pashkela
19.12.2008, 22:08
http://ru2.php.net/manual/ru/index.php
Где можно скачать норм учебник по пхп с 0, так чтоб без лишнего и одним архивом?
http://softtime.ru/info/bookphp.php?down=bookphp.zip
#Wolf#,
<?php
$str = '2008-08-18(43):3557d8eff41195a6e33efb18d356a3e5::';
preg_match('#[0-9a-f]{32}#i',$str, $matches);
print_r($matches);
echo $matches[0];
?>
Это вопрос по части регулярок, задаються сюда)
http://forum.antichat.ru/thread92492.html
не универсально. а если мускульные хеши?
и список очень большой с хешкрекинга
#Wolf# $str = '2008-08-18(43):3557d8eff41195a6e33efb18d356a3e5::';
preg_match('#^[^:]+:([^:]+):#m',$str, $matches);
print_r($matches);
echo $matches[1];
.:EnoT:.
20.12.2008, 01:32
Для тех кто в бронепоезде, напоминаю что для регулярок есть спец. тема!
<form NAME="xss" method='post' action='http://blablabla.ru/index.php&post=on'>
<input type='hidden' name='name' value='"><script>alert(document.cookie)</script>'>
<input type='submit'>
</form>
<script>
document.xss.submit();
</script>
И опять же он ЛИШЬ переходит по етой ссылке http://blablabla.ru/index.php&post=on НЕ ОТПРАВЛЯЯ ДЕННЫЕ С СТАРНИЦЫ!!!
И опять же он ЛИШЬ переходит по етой ссылке http://blablabla.ru/index.php&post=on НЕ ОТПРАВЛЯЯ ДЕННЫЕ С СТАРНИЦЫ!!!
Ты вообще понимаешь как работает метод POST ?
KaZ@NoVa
20.12.2008, 11:05
Просто надо знать волшебное слово, все делается без особых проблем. Благо классов уже понаписанно достаточно.
Так что 3 строки - и вы в посте
Не очень понял о чём ты говоришь,ты вопше ето к кому пишешь?
Вот напримере хешкрекинга.Пробую выдернуть хеши.
<?
$f = file_get_contents('https://hashcracking.info/index.php?6');
preg_match_all('#<tr><td class="style7">([^:]+?)</td></tr>#',$f,$pock);
echo($pock);
?>
Получаю Array
array = массив
echo($pock[1]);
rushter $pock[1] тоже массив т.к это preg_match_all
делай print_r($pock);
Неработает.Говорюже пробывал и так и так.
Может мой вопрос не сильно по теме,но как можно имитировать POST в ссылке,вопше делают так например
http://blablabla.ru/index.php&post=on
ето передается как бы в POST запросе переменная post со значением on вот только далекооо не всегда так выходит...подскажите плз...
никто незнает чтоли?(((
m0Hze
у меня file_get_contents() с https неочень хотел работать.
<?php
set_time_limit(0);
$url = "https://hashcracking.info/index.php?4";
$ref = "https://hashcracking.info/index.php";
$ua = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$res = curl_exec($ch);
preg_match_all('#[0-9a-f]{32}#i', $res, $matches);
print_r($matches);
?>
1) Почитай сначала про многомерные массивы http://ua.php.net/manual/ru/language.types.array.php
2) http://ua.php.net/manual/ru/book.curl.php
1) Почиму при замене print_r($matches); на echo $matshes
Я получаю Array?print_r() выводит информацию о переменной в удобочитаемом виде.
echo — Выводит одну или более строк
Какбе вывсести все ето без массива как в print_r а одним столбиком. foreach($arr as $val) { echo $val.'<br />'; }
Вообщем чтото странное =)
Решил тот код,что мне помогли написать на редидущей странице,немного модернизировать...
И вот что получилось:
<?
echo('<center><form method = "POST"><input type = "radio" name "system" value = "md5">MD5
<input type = "radio" name "system" value = "mysql">MySQL
<input type = "radio" name "system" value = "mysql5">MySQL5 and SHA-1
<input type = "submit" value = "Грабим!"></center></form>');
switch($_POST['system']){
case 'md5' : {
$hash = "#[0-9a-f]{32}#i";
$url = "https://hashcracking.info/index.php?4";
}break;
case 'mysql' : {
$hash = "#[0-9a-f]{16}#i";
$url = "https://hashcracking.info/index.php?3";
}break;
case 'mysql5' : {
$hash = "#[0-9a-f]{40}#i";
$url = "https://hashcracking.info/index.php?5";
}break;
default : exit();
break;
}
$da = $url;
set_time_limit(99999);
$ref = "https://hashcracking.info/index.php";
$ua = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4";
$ch = curl_init($da);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$res = curl_exec($ch);
preg_match_all("$hash", $res, $matches);
foreach($matches[0] as $val) { echo $val.'<br />'; }
?>
При нажатии на кнопку,можно сказать сраница обновляеца.Но ницего не происходит.Вроде ошибок явных в коде нет,но чтото не так.Возможно переменым все время присваеваеться значение default? Переписывал всю системыу на "if" теже результаты =(
Вообщем чтото странное =)
Решил тот код,что мне помогли написать на редидущей странице,немного модернизировать...
И вот что получилось:
<?
echo('<center><form method = "POST"><input type = "radio" name "system" value = "md5">MD5
<input type = "radio" name "system" value = "mysql">MySQL
<input type = "radio" name "system" value = "mysql5">MySQL5 and SHA-1
<input type = "submit" value = "Грабим!"></center></form>');
switch($_POST['system']){
case 'md5' : {
$hash = "#[0-9a-f]{32}#i";
$url = "https://hashcracking.info/index.php?4";
}break;
case 'mysql' : {
$hash = "#[0-9a-f]{16}#i";
$url = "https://hashcracking.info/index.php?3";
}break;
case 'mysql5' : {
$hash = "#[0-9a-f]{40}#i";
$url = "https://hashcracking.info/index.php?5";
}break;
default : exit();
break;
}
$da = $url;
set_time_limit(99999);
$ref = "https://hashcracking.info/index.php";
$ua = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4";
$ch = curl_init($da);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$res = curl_exec($ch);
preg_match_all("$hash", $res, $matches);
foreach($matches[0] as $val) { echo $val.'<br />'; }
?>
При нажатии на кнопку,можно сказать сраница обновляеца.Но ницего не происходит.Вроде ошибок явных в коде нет,но чтото не так.Возможно переменым все время присваеваеться значение default? Переписывал всю системыу на "if" теже результаты =(
name "system"
Надо name="system"
case 'mysql5' : {
$hash = "#[0-9a-f]{40}#i";
$url = "https://hashcracking.info/index.php?5";
}break;
Извращение, фигурные скобки не обязательны
name "system"
Надо name="system"
case 'mysql5' : {
$hash = "#[0-9a-f]{40}#i";
$url = "https://hashcracking.info/index.php?5";
}break;
Извращение, фигурные скобки не обязательны
Точно,забыл кавычке :j с скобками мне спокойнее....
что за пхп4, пхп5, чем они отличаются?
Тут все написано
http://ru.wikipedia.org/wiki/PHP
.:EnoT:.
20.12.2008, 20:31
что за пхп4, пхп5, чем они отличаются?
Ну как..новые версии новые возможности..добавлены новые функции, некоторые удалены, пофичены баги. Но главным я думаю для php5 стало расширение ООП.
Shaitan-Devil
21.12.2008, 01:28
Есть сайт.Он выдает инфу после того как нажимаешь на кнопку ЖабаСкрипт
<form id="searchform" name="searchform" action="/" onsubmit="return onSearch(event);"><label for="q">Type search term</label><label for="go"> Search </label><span class="sc"><input class="q" id="q" name="q" value="" maxlength="32" onfocus="return onFocus(event);" onkeydown="onFocus();" onblur="onFocus();" onkeyup="onFocus();" onchange="onFocus();"><input id="s" name="s" value="md5" type="hidden"><input name="go" id="go" class="go" src="/images/search_go_g1.gif" value="Search" align="middle" type="image"></span></form>
Как это можно имитировать на курле?
сайт в студию
посмотри в http пакетах запросы
!{ra!{e/\/
21.12.2008, 01:34
юзай Naviscope и узнай какие пакеты отсылаются на сервер.
spamoney
21.12.2008, 14:11
Всем привет! Есть такой вопрос, возможно немного не по теме, но не знал куда запостить:
Такая проблема, если я у себя на сайте указываю ссылку на какой-либо документ в формате pdf, то при переходе по этой ссылке документ начинает грузится прямо в окне браузера, у некоторых пользователей не установлен плагин для браузера Adobe acrobat, поэтому, как сделать средствами php, либо еще как-то так, что бы при скачке пользователем файла с разрешением pdf (допустим www.site.ru/document.pdf) ему выдовалось стандартное/обычное окошко (как при скачке zip, rar и др файлов) сохранения файла на его компьютер?
P.S
Пробывал в .htaccess добавлять:
AddType application/pdf .pdf
но это проблему не решило..(
Средствами php так:
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="файл.pdf"');
header('Content-Transfer-Encoding: binary');
header('Content-Type: application/octet-stream');
//потом просто выдаём содержимое файла в браузер.
В апаче можно так попробовать:
AddType application/octet-stream .pdf
или
AddType application/octet-stream *.pdf
Первый способ должен 100% работать, второй может игнорироваться браузерами некоторыми.
MafiaBoy3
21.12.2008, 14:57
Как сделать подгрузку полей ввода, как например при регистрации на Вконтакте?
То есть по мере заполнения полей и выбора списков - добавлять ещё поля ввода.
С помощью AJAX. Более подробного ответа не будет, это зависит от конкретной задачи.
spamoney
21.12.2008, 16:23
Средствами php так:
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="файл.pdf"');
header('Content-Transfer-Encoding: binary');
header('Content-Type: application/octet-stream');
//потом просто выдаём содержимое файла в браузер.
Спасибо, сделал так:
$filename = "testfile.pdf";
$file_dir ="upload/$filename";
if (file_exists($file_dir)) {
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.$filename.'');
header('Content-Transfer-Encoding: binary');
header('Content-Type: application/octet-stream');
$handle = fopen($file_dir, "r");
$contents = fread($handle, filesize($file_dir));
fclose($handle);
echo $contents;
}
И еще такой вопрос не возрастет ли нагрузка на сервер если я буду отдавать файлы pdf таким образом (средний размер файла 3-6 Mb)??
Возрастет, поэтому лучше попробуй вариант с AddType
Можно выдавать большие файлы кусками в браузер, чтобы не хранить очень много данных в переменной $contents:
...
$handle = fopen($file_dir, "r");
while(!feof($handle))
{
echo fread($handle,1024);
flush();
@ob_flush();
}
fclose($handle);
Я таким образом скачивал 100+ мб.
InfernoNet
21.12.2008, 17:12
Написал скрипт отправки сообщения на e-mail (обратная связь в общем). Но вот сообщения доходят не сразу же после отправки, а иногда с задержкой в 10-15 минут. Использую отправку/прием сообщений сервиса mail.ru. Это проблема со стороны сервера mail.ru или со стороны моего хостинга?
GreenBear
21.12.2008, 17:14
на мыло ру иногда и через час приходят
InfernoNet
21.12.2008, 17:26
Есть у меня форма textarea, при ее заполнение например текстом:
Привет
Я
Ухожу
От сюда
Приходит на e-mail Привет Я Ухожу От сюда
Как сделать, чтоб enter=<br>?
GreenBear
21.12.2008, 17:27
или в content-type: plain/text, или $text = nl2br($text);
Pashkela
21.12.2008, 17:55
Есть у меня форма textarea, при ее заполнение например текстом:
Приходит на e-mail
Как сделать, чтоб enter=<br>?
<?
$mess='
1
2
3
4';
$to = '321@yandex.ru';
$ot = '123@mail.ru';
$subj = 'Test';
mail($to, $subj, "$mess\r\n", "From: ".$ot);
echo 'Done';
?>
Приходит на e-mail
Как сделать, чтоб enter=<br>
$message = str_replace("\n", '<br />', $message);
Чем Вам nl2br не понравилось? GreenBear же написал выше.
Тем более, если использовать html-теги в теле e-mail'а, то следует отправить заголовок
Content-type: text/html; charset=кодировка.
форму свою делаешь локальную на сайте с автосабмитом и даешь ссылку на неё тому, кому надо (хоть себе):)
Да, ты специалист по чрезжопным методам
print_r() выводит информацию о переменной в удобочитаемом виде.
echo — Выводит одну или более строк
foreach($arr as $val) { echo $val.'<br />'; }
Чувак, RTFM, не учи, если сам еще не разобрался! print_r предназначена для вывода МАССИВОВ любой вложенности
Как сделать подгрузку полей ввода, как например при регистрации на Вконтакте?
То есть по мере заполнения полей и выбора списков - добавлять ещё поля ввода.
Вопрос явно не по теме, посмотри в темы про верстку и про АДЖАХ
$message = str_replace("\n", '<br />', $message);
Почему ты не учитываешь, что \n - это окончание строки по традициям UNIX, в Windows строка заканчивается \r\n, например.
Работать-то оно будет, но, в случае Винды, у тебя будет телипаться еще один символ!
Pashkela
21.12.2008, 20:04
Чем Вам nl2br не понравилось? GreenBear же написал выше.
Тем более, если использовать html-теги в теле e-mail'а, то следует отправить заголовок
Content-type: text/html; charset=кодировка.
Мой вариант самый простой и без предварительной какой-либо обработки сообщения и вставки тегов и заголовков всяческих. Советую проверить
ss88 http://il2.php.net/manual/ru/function.print-r.php
print_r() выводит информацию о переменной в удобочитаемом виде.
© php.net
Смысл употребления RTFM буквально таков: «Да прочитай же, в конце концов, это долбаное руководство и перестань задавать глупые вопросы»
© wikipedia.org
Почему ты не учитываешь, что \n - это окончание строки по традициям UNIX, в Windows строка заканчивается \r\n, например.
Работать-то оно будет, но, в случае Винды, у тебя будет телипаться еще один символ!
ну проверяй тогда на наличие \r .. бред .. тебе мешает +1символ??
groundhog
21.12.2008, 20:16
Делайте trim от строки, и никаких пробельных символов телепаться не будет ни в начале, ни в конце...
Почему ты не учитываешь, что \n - это окончание строки по традициям UNIX, в Windows строка заканчивается \r\n, например.
Работать-то оно будет, но, в случае Винды, у тебя будет телипаться еще один символ!думаешь на яндексе или на мейле винда стоит? это раз. два - этот символ невидимый ;) три - у тебя сервер на винде?
InfernoNet
21.12.2008, 22:31
думаешь на яндексе или на мейле винда стоит?
А тут разве зависит от сервера на котором мыло зарегено? Мне казалось, что зависит от сервера с которого посылается запрос (хостинг).
А тут разве зависит от сервера на котором мыло зарегено? Мне казалось, что зависит от сервера с которого посылается запрос (хостинг).
если сервер с виндой - отошлётся \r\n, а принимающий серв, хоть он на никсах, хоть на винде воспримет всё ок.
InfernoNet
21.12.2008, 22:40
если сервер с виндой - отошлётся \r\n, а принимающий серв, хоть он на никсах, хоть на винде воспримет всё ок.
Когда я только начал изучать работоспособность php с функцией mail(), то мне запомнилась фраза "Если сообщение не отправляется, попробуйте использовать символ \n вместо \r\n."
Такая неоднозначность взоникает из-за того, что некоторые программы для работы с почтой автоматически конвертируют \n в \r\n.
думаешь на яндексе или на мейле винда стоит? это раз. два - этот символ невидимый ;) три - у тебя сервер на винде?
Связка AMP на винде - это, конечно, извращение, у меня вся работа связанная с веб-разработкой происходит под Debian Etch. Хоть символ и невидимый, но он есть (читать как "бывает" :) )... Это из разряда "Видишь суслика? Нет? А он есть..."
если сервер с виндой - отошлётся \r\n, а принимающий серв, хоть он на никсах, хоть на винде воспримет всё ок.
Шота я не совсем понял, каким образом сервер относится к тому, что отсылается браузером в POST?
Вопрос???
есть код
<?php include("db.php");
header('Content-type: image/jpeg');
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)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);
$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$name = "avat".$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);
imagejpeg($im,"avatar/$name");
}
else
{
exit();
}
?>
Почему функция imagejpeg($im,"avatar/$name");
не отоброжает картинку в браузере но сохроняет??
на какую функцию её можно поменять чтобы она только сохроняла?(без вывода в браузер??? )
>>>не отоброжает картинку в браузере но сохроняет??
на какую функцию её можно поменять чтобы она только сохроняла?(без вывода в браузер??? )
ты же сам говоришь, что не выводет оО
попробуй заголовок не отправлять...
Почему функция imagejpeg($im,"avatar/$name");
не отоброжает картинку в браузере но сохроняет??
на какую функцию её можно поменять чтобы она только сохроняла?(без вывода в браузер??? )
ты противоречишь самому себе
читай http://php.net/imagejpeg
Вопрос???
Почему функция imagejpeg($im,"avatar/$name");
не отоброжает картинку в браузере но сохроняет??
на какую функцию её можно поменять чтобы она только сохроняла?(без вывода в браузер??? )
Да потому что эта функция будет выводить изображение в выходной поток браузера только в случае НЕ ЗАДАННОГО ВТОРОГО ПАРАМЕТРА.
Ты передаешь MIME-тип image/jpeg, значит, ты хочешь чтобы картинка вывелась в браузер, тогда не указывай имя файла и все. Я так и не понял, зачем ты его указываешь, если ты передаешь РЕСУРС???
+один личный вопрос. ruseller.com - это твой сайт? если да, то...... как минимум, некоторые из платных обучающих курсов вызывают ОЧЕНЬ большое подозрение.... :cool:
']ты противоречишь самому себе
читай http://php.net/imagejpeg
)))) ещё раз для вас!
мне надо сахранять картинку в папке аватар!
функция imagejpeg(); не выводит картинку потому что она сохроняется на сервере а imagejpeg подгружает картинку с темпа в котором его уже нету!
мне нужна функция за место imagejpeg() которая не будет выводить а будет просто сохранять и всё???? :confused:
Да потому что эта функция будет выводить изображение в выходной поток браузера только в случае НЕ ЗАДАННОГО ВТОРОГО ПАРАМЕТРА.
Ты передаешь MIME-тип image/jpeg, значит, ты хочешь чтобы картинка вывелась в браузер, тогда не указывай имя файла и все. Я так и не понял, зачем ты его указываешь, если ты передаешь РЕСУРС???
+один личный вопрос. ruseller.com - это твой сайт? если да, то...... как минимум, некоторые из платных обучающих курсов вызывают ОЧЕНЬ большое подозрение.... :cool:
не это сайт моего препода в москве у которого я учился (((=
)))) ещё раз для вас!
мне надо сахранять картинку в папке аватар!
функция imagejpeg(); не выводит картинку потому что она сохроняется на сервере а imagejpeg подгружает картинку с темпа в котором его уже нету!
мне нужна функция за место imagejpeg() которая не будет выводить а будет просто сохранять и всё???? :confused:
ТЫ ВЗРЫВАЕШЬ МОЙ ПЬЯНЫЙ МОСК, ТЫ ЖЕ ТОЛЬКО ЧТО ЖАЛОВАЛСЯ НА ТО, ЧТО НЕ ВЫВОДИТСЯ, ТЕПЕРЬ ГОВОРИШЬ, НЕ СОХРАНЯЕТСЯ.... Я ФШОКЕ...
Если тебе нужно вывести - передавай функии только ресурс изображения, если тебе надо сохранить - передавай оба параметра (это ничего не передаст в браузер). Если надо и то и другое делай очередности использования функции с такими параметрами...
Например, сначала сохранить а потом вывести - это будет первый вызов с двумя параметрами, второй следом за ним с одним.... ну и хэдэр для пущей серьезности тоже передавай...
Pashkela
22.12.2008, 00:54
<?
$im = ImageCreateFromPng("dss.png");
$c1 = ImageColorAllocate($im, 0, 0, 0);
$string = "lolololol";
ImageString($im,3,20,20,$string,$c1);
ImagePng($im);
imageGif($im,"dss100.png");
ImageDestroy($im);
?>
ТЫ ВЗРЫВАЕШЬ МОЙ ПЬЯНЫЙ МОСК, ТЫ ЖЕ ТОЛЬКО ЧТО ЖАЛОВАЛСЯ НА ТО, ЧТО НЕ ВЫВОДИТСЯ, ТЕПЕРЬ ГОВОРИШЬ, НЕ СОХРАНЯЕТСЯ.... Я ФШОКЕ...
Если тебе нужно вывести - передавай функии только ресурс изображения, если тебе надо сохранить - передавай оба параметра (это ничего не передаст в браузер). Если надо и то и другое делай очередности использования функции с такими параметрами...
Например, сначала сохранить а потом вывести - это будет первый вызов с двумя параметрами, второй следом за ним с одним.... ну и хэдэр для пущей серьезности тоже передавай...
Да нет мне надо просто сохронить! imagejpeg()
выводит пустую картинку как будто она не загрузилась как это убрать? мне не надо ничего выводить, мне надо тока сохронить! возможно это зделать ето через upload ???
<?
$im = ImageCreateFromPng("dss.png");
$c1 = ImageColorAllocate($im, 0, 0, 0);
$string = "lolololol";
ImageString($im,3,20,20,$string,$c1);
ImagePng($im);//выводит а мне это не надо!
imageGif($im,"dss100.png");//аналогично
ImageDestroy($im);
?>
так что не потходит!
Pashkela
22.12.2008, 01:23
так что не потходит!
А у меня подходит. И прекрасно подходит. Хеадер удали нафинг, чтобы браузер правильно понимал, что это скрипт php, а не эмуляция картинки
И вообще, прежде чем кричать, возьми чисто мой скрипт (без своих гениальных попыток сразу вставить в свой), и попробуй запустить (проверить тсказать). Ну только имя картинки свою вставь, которая есть (вместо dss.png)
А у меня подходит. И прекрасно подходит. Хеадер удали нафинг, чтобы браузер правильно понимал, что это скрипт php, а не эмуляция картинки
И вообще, прежде чем кричать, возьми чисто мой скрипт (без своих гениальных попыток сразу вставить в свой), и попробуй запустить (проверить тсказать). Ну только имя картинки свою вставь, которая есть (вместо dss.png)
хедер удалять не надо...
хедер сообщает браузеру что это не "эмуляция картинки" а что следующая последовательность байтов это не текст или еще чо а картинка
А у меня подходит. И прекрасно подходит. Хеадер удали нафинг, чтобы браузер правильно понимал, что это скрипт php, а не эмуляция картинки
И вообще, прежде чем кричать, возьми чисто мой скрипт (без своих гениальных попыток сразу вставить в свой), и попробуй запустить (проверить тсказать). Ну только имя картинки свою вставь, которая есть (вместо dss.png)
умник нафига мне твой скрипт вот мой!!!
<?php include("db.php");
header('Content-type: image/jpeg');
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)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);
$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$name = "avat".$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);
imagejpeg($im,"avatar/$name");
}
else
{
exit();
}
?>
100% работает! только мне надо конец поменять!
не понятно чего ты от своего скрипта хочешь?
Pashkela
22.12.2008, 01:34
хедер удалять не надо...
хедер сообщает браузеру что это не "эмуляция картинки" а что следующая последовательность байтов это не текст или еще чо а картинка
И нафига это надо, если ему не надо вывод в браузер? Или надо? Перечитал его вопрос, сам опух, ыыыыыы
похоже я понял че он хочет
<?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)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);
$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$name = "avat".$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);
imagejpeg($im,"avatar/$name");
}
else
{
exit();
}
?>
умник нафига мне твой скрипт вот мой!!!
<?//фигня на постном масле
?>
100% работает! только мне надо конец поменять!
ты уж если спрашиваешь совета, то хоть не дерзи тем, кто отвечает на твои вопросы, это, по меньшей мере, некультурно.
Если хочешь знать, то скрипты твои во много раз хуже, чем у того же Пашкелы, который, как я вижу, любит минимализм в коде, но у него он хотя бы в порядке и делает то, что задумывалось...
Вобщем, если спрашиваешь, то слушай, ответ или не спрашивай вообще
не понятно чего ты от своего скрипта хочешь?
нужно чтоб картинка сохронялась без imagejpeg !как это зделать???
ты уж если спрашиваешь совета, то хоть не дерзи тем, кто отвечает на твои вопросы, это, по меньшей мере, некультурно.
Если хочешь знать, то скрипты твои во много раз хуже, чем у того же Пашкелы, который, как я вижу, любит минимализм в коде, но у него он хотя бы в порядке и делает то, что задумывалось...
Вобщем, если спрашиваешь, то слушай, ответ или не спрашивай вообще
ты чё вобще офигел! Я ему пишу одно а он мне другое вобще! вот я и ответил! а ты чё вобще по жизни тоже за его касяки отвечаешь??? я php за 3 месяца выучил и всего до конца не знаю и на антике по более тебя сидел так чё мне терь из за таких как ты со всеми кипишевать! я ему ответил точка всё! так что не влазь в разговор!
нужно чтоб картинка сохронялась без imagejpeg !как это зделать???
наверное никак..
а чем тебе не нравится imagejpeg?
geforce, смотри мой пост выше!
Pashkela
22.12.2008, 01:56
2 [dei]:
твой вариант тоже вряд ли сработает, где ImageDestroy($im); ???
Зачем imagedestroy?
When the script stop PHP will automatic destory ANY
resources, this goes for aswell for images, thus in the
case the user clicks the stop button, php will automatic
clear the resource.
thus imagedestroy is used to clear the memory BEFORE
the script ends. this is usefull to keep memory usage
DURING the script to an acceptable level.
ты чё вобще офигел! Я ему пишу одно а он мне другое вобще! вот я и ответил! а ты чё вобще по жизни тоже за его касяки отвечаешь??? я php за 3 месяца выучил и всего до конца не знаю и на антике по более тебя сидел так чё мне терь из за таких как ты со всеми кипишевать! я ему ответил точка всё! так что не влазь в разговор!
не знаю насчет "косяков", но он привел законченный пример работы с ресурсом, в данном случае изображением, что еще нужно, чтобы допереть до того, о чем ты спрашивал? Хотя, по-моему, так толком никто и не понял, о чем. Пускай, он иногда приводит неоптимальные примеры или отвечает не лучше тебя (а то и похуже), когда его вариант оказывается неподходящим или неоптимальным, но, во всяком случае, он не ленится писать эти варианты.
И что с того, что ты на форуме сидел больше меня??? Вообще РАЗРЫВНОЙ аргумент, не лучше, чем "я раньше купил эту книжку, пох**, что я ее не читал".
Насчет кипишевать я шота недопонял, ты бы просто свои вопросы четко задавал ("правильно поставленный вопрос - это 50% ответа").
"Не влазь в разговор", форум - это не приватная беседа в 99% случаев, на то он и форум, что здесь высказываются все.
heretic1990
22.12.2008, 15:59
нужен скрипт по переводу текста с русской раскладки клавиатуры на английскую, и наоборот
В общем есть 2 скрипта.Один с формой,для клиента,второй обработчик.Мне нужно их состыковать так, чтобы action = "" было пусто,тоесть без ссылки на обработчик,но в тоже время,чтоб все ето находилось в 2 файлах.Если ето будет выглядеть так,ето будет работать?
<Формо>
include('обработчик.php')
print <<<HERE
<form method = "POST">
<input type = "text" name = "login">
<input type = "password" name = "password">
<input type = "submit">
</form>
HERE;
echo $result;
(Это пример,так что тут наверно полно ошибок,смамое главное сам метод..)
<обработчик.php>
$login = $_POST('login');
$pass = $_POST('password');
И тут какаято функция...
$result = (ресультат выполнения функции.)
1) Рабочий ли ето метод,и возможно ли так сделать.ТОесть чтобы переменная из инклудного документа, принимала значение формы.
2) Можно ли потом сделать обратную оперцию.После того как обработчик все сделат,пускай он выведет $result, смогу ли я,использовать ету переменную в <Форме>???
Вопрос возможно не совсем коректно построен,но если что я постараюсь объяснить поподробнее.
нужен скрипт по переводу текста с русской раскладки клавиатуры на английскую, и наоборот
Погугли,когда то сам такой находил.Ищи чтото вроде Скрипт транслита. Ну чтото вроде.Либо извращенство, писать код,и указывать чтобы каждая буква заменялась соответствующей.И наоборот.Но ето изврат,если всебуквы в ручную.Должен быть способ и попроще...
groundhog
22.12.2008, 16:17
да возможно, только error_reporting в 0 поставь, чтобы он не кричал при отрисовке формы варнингами, что переменная не установлена.
нужен скрипт по переводу текста с русской раскладки клавиатуры на английскую, и наоборот
<?
function rustolat($tr)
{
$rus = array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л",
"м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы",
"ь", "э", "ю", "я");
$rus_lat = array("a", "b", "v", "g", "d", "e", "e", "zh", "z", "i", "i", "k",
"l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "c", "ch", "sh", "sh",
"'", "y", "'", "e", "yu", "ya");
$trl = strtolower($tr);
return str_replace($rus, $rus_lat, $trl);
}
echo rustolat("Превед");
?>
писал когда только начал узучать php,так что не пинайте.
2 heretic1990 если тебе не конкретно под пыху, а для сайта итд, то советуюю заюзать жабо-версию.. пример тут - http://translit.ru/
2 rushter
думаю удобнее будет с ассоциативным массивом .. типо 'm' = > 'м'
heretic1990
22.12.2008, 16:28
rushter Спасибо, подгоню под себя))
Хм,кто подскажет.Почимуто после добавления инклуда,появляеться просто белая страница :(
Воть код:
<?
include('mail.php');
echo '
<center>
<form method = "POST">
Email:<br><input type = "text"
name = "login">
<br>
Password:<center><input type = "password"
name = "password"></center>
<br>
<input type = "submit">
</form>';
//echo file_get_contents('mail.log');
?>
Чет ту код каряво встал,ну думаю разобраца можно ;)
а что в mail.php ?? можт в конце скрипта там exit стоит :D
groundhog
22.12.2008, 17:16
А файл вообще инклудится? Читается?
Да в том то и дело что не чтоит :)
Собственно скрипт от предатора,чекер мыл на валидность.А вот и сам скрипт:
http://depositfiles.com/files/crvdcpihl
Я его немного передала(в архиве оригинал)чтоб он переменные логин и пасс ббрал из формы,а в остальном я его не трогал.
Там похоже проверка на существование переменных :)
А файл вообще инклудится? Читается?
а енто тут причём ? еси даже не инклудится, то выдаст ошибку макс.
Да в том то и дело что не чтоит :)
Собственно скрипт от предатора,чекер мыл на валидность.А вот и сам скрипт:
http://depositfiles.com/files/crvdcpihl
Я его немного передала(в архиве оригинал)чтоб он переменные логин и пасс ббрал из формы,а в остальном я его не трогал.
Там похоже проверка на существование переменных :)
во первых, мог у автора спросить .. а во вторых, ты в mail.php заглядывал ???
энто чо такое ?
if(mail_check($login,$password))
{
global $error,$server_reply;
$result="OK";
echo $result;
mail_check_log($result);
} else {
$result="FAIL: $error";
if(strlen($server_reply)>1) { $result.=", SERVER REPLY: '$server_reply'";}
echo $result;
mail_check_log($result);
}
конечно буит сначала чекатся ..
Автора нет в асе,я б спросил,не первый день с ним связан.Скрипт толком не рассмотрел.Просто смутило вот ето: if(mail_check..
C самописными функциями дела еще не имел,и побоялся удалять,мало ли :)
Убрал етот код,проблема не решилась.Просматриваю скрипт,исчу :) В общем можно по идее его совсем уменьшеть просто,и переписать под свои нужды,если никто не смогет помочь,так и придеца поступить :D
удалив это кусок, ты там оставил одни ф-ии без вызовоу оных ..
что значит проблемма не решилась ??
Просто смутило вот ето: if(mail_check..
C самописными функциями дела еще не имел,и побоялся удалять,мало лиэнто вызов ф-ии а не функция ..
ты вообще код хоть немного читать умеешь то? я чтото не осознал :D
.зы пиши лучше сам .. свой код всегда прятнее ;)
Ех,опять до ночи не спать :(
Я в его коде до завтра буду разбираа,для мня он слишком сложный,будем нарабатывать опыть :)
Я сломал моск.Решил попробывать воть так.Объединил скрипт и формы в один файл.
Форма:
<html>
<head>
<title> Chek </title>
</head>
<body>
<form method = "POST">
<input type = "text"
name = "login">
<br>
<input type = "text"
name = "password">
<br>
<input type = "submit">
</form>
</body>
</html>
И ниже идет сам скрипт который я выше давал.Переменным $login and $password даю значения:
.....
$login = $_POST('login');
$password = $_POST('password');
.....
И ничерта не работает :) Но если пропишу значения у переных точное,тоесть мыло и пасс,то все норм,чекает.А вот так откзываеться.Чтот я совсем спать хочу,моск не работает.Опять наверно бональная ошибка в синтаксисе у меня :(
groundhog
22.12.2008, 18:05
m0Hze, а ты смотрел вообще в логи? Что там появляется при вызове твоего скрипта? Убери error_reporting(0) посмотри какие ошибки валятся... Просто если у тебя выключен репорт ошибок, то любая ошибка, которая прерывает действие скрипта его прервёт, но ты не будешь лицезреть никаких сообщений - только белый экран...
Я сломал моск.Решил попробывать воть так.Объединил скрипт и формы в один файл.
Форма:
<html>
<head>
<title> Chek </title>
</head>
<body>
<form method = "POST">
<input type = "text"
name = "login">
<br>
<input type = "text"
name = "password">
<br>
<input type = "submit">
</form>
</body>
</html>
И ниже идет сам скрипт который я выше давал.Переменным $login and $password даю значения:
.....
$login = $_POST('login');
$password = $_POST('password');
.....
И ничерта не работает :) Но если пропишу значения у переных точное,тоесть мыло и пасс,то все норм,чекает.А вот так откзываеться.Чтот я совсем спать хочу,моск не работает.Опять наверно бональная ошибка в синтаксисе у меня :(
Надо
.....
$login = $_POST['login'];
$password = $_POST['password'];
.....
Точно,я ж сказал.2 сутки за компом сказываються! спс друган!
function keypass($pass , $num )
{
$xc = md5($pass) ."\n";
$zs = mt_srand(time()* $num * microtime() ) ;
$de = crypt($x , $zs)."\n";
return $de;
}
echo keypass("megapass" ,"1284756");
второй аргумент образуеться при вводе капчи с рисунка.
вопрос как потом мне проверить что пароли совпадают?
Nightmarе
22.12.2008, 22:35
Дайте плиз php код шифровка\дешифровка текста с открытым ключём. Какой попроще
Дайте плиз php код шифровка\дешифровка текста с открытым ключём. Какой попроще
http://ru2.php.net/manual/ru/mcrypt.examples.php
Дайте плиз php код шифровка\дешифровка текста с открытым ключём. Какой попроще
http://ua2.php.net/manual/ru/function.base64-encode.php
Nightmare, http://ru.wikipedia.org/wiki/RC4
http://ru2.php.net/manual/ru/ref.mcrypt.php
astrologer
23.12.2008, 00:03
Nightmare, http://ru.wikipedia.org/wiki/RC4
http://ru2.php.net/manual/ru/ref.mcrypt.php Дааа, RC4 только с открытым ключом и использовать
Namelles One
23.12.2008, 11:49
ОМФГ, Исис, ты хоть знаешь, что такое открытый ключ? =\\\
http://ru.wikipedia.org/wiki/RSA
http://www.phpclasses.org/browse/package/4121.html
Я написал админку для сайта, как её можно запаролить?
Если не трудно дайте примеры
http://www.softtime.ru/article/index.php?id_article=27
Я написал админку для сайта, как её можно запаролить?
Если не трудно дайте примеры
Если ты ее написал то в чем проблема то? Не написать простую логинку? :)
<?php
if($_GET['pass'] != '1234')
{
header('Location: index.php');
exit('Тебе тут нечего делать :-p');
}
//код админки
?>
Как ты понял пароль передаётся гетом
Так отлично а если у меня админку загружать отдельным скриптом...
Допустим:
<?php
if($_GET['pass'] != '1234')
{
header('Location: index.php');
exit('Тебе тут нечего делать :-p');
}else{
require_once("adminka.php");
}
?>
То как поставить проверку скрипту adminka.php
Чтоб нельзя было в него просто зайти...
GreenBear
23.12.2008, 18:49
ну так сделай
else {
define('IN', true);
require...
}
в самом файле if(!defined('IN')){exit;} - как стандарт
ну так сделай
else {
define('IN', true);
require...
}
в самом файле if(!defined('IN')){exit;} - как стандарт
Этот способ мне не подойдёт...мне нужно чтоб именно станица adminka.php открывалась...
Там ссылок много...когда по ним щёлкаешь всё сбрасывается...
Может в Куки пасс записать просто?
GreenBear
23.12.2008, 19:19
да тут логики со 2 класса хватит. как хочешь так и делай.
Этот способ мне не подойдёт...мне нужно чтоб именно станица adminka.php открывалась...
Там ссылок много...когда по ним щёлкаешь всё сбрасывается...
Может в Куки пасс записать просто?
Ну можно, я предпочитаю сессии:
secure.php:
<?php
@session_start();
if(@$_SESSION['pass'] != '1234')
{
if(isset($_POST['submit']))
{
$_SESSION['pass'] = $_POST['pass'];
header('Location: '.$_SERVER['PHP_SELF']);
}
else
{
?>
<form method='post'><input name='pass'><input name='submit' type='submit'></form>
<?php
}
die();
}
?>
А в файлы куда надо вставить защиту пишешь в самое начало файла:
include('secure.php');
Идея слудующая:
проверяется наличие валидного пасса в сессии, если он верен то отображаетс админка, если нет, то вылазиет форма авторизации.
P.S код не тестил, писал в браузере
Код файла login.php
<?php
define("LOGIN", "demo");
define("PASSWORD", "demo");
define("MODE", TRUE); // TRUE - сравнивать логин и пароль без учёта регистра, FALSE - с учётом
if(isset($_POST['log']) && isset($_POST['passwd']) && is_logined(MODE)) {
setcookie('login', $_POST['log'], time()+31536000);
setcookie('passwd', $_POST['passwd'], time()+31536000);
}
function is_logined($register) {
if($register == false) {
if(($_COOKIE['login'] == LOGIN && $_COOKIE['passwd'] == PASSWORD) || ($_POST['log'] == LOGIN && $_POST['passwd'] == PASSWORD)) {
return true;
}
} else if($register == true) {
if((strcasecmp($_COOKIE['login'],LOGIN)==0&&strcasecmp($_COOKIE['passwd'],PASSWORD)==0) || (strcasecmp($_POST['log'],LOGIN)==0&&strcasecmp($_POST['passwd'],PASSWORD)==0)) {
return true;
}
}
return false;
}
$form=<<<FORM
<html>
<head>
<title>Авторизация</title>
<style>
body
{
padding-left:350px;
font-family:tahoma, verdana, arial;
font-size:11px;
text-align:center;
color:#000000;
}
table
{
border:1px solid #D1D1E1;
margin:50px;
padding:10px;
}
tr
{
text-align:center;
}
input
{
text-align:center;
pargin:2px 0;
padding-right:10px;
padding-left:20px;
border:1px solid #D1D1E1;
background:#ffffff;
padding:2px;
}
</style>
</head>
<body>
<table>
<form method="post">
<tr>
<td>
<br/>
Login:<input type="text" title="Введите Login" name="log" />
<br/>
<br />
Password:<input type="password" title="Введите пароль" name="passwd" />
<br/>
<br />
<center><input type="submit" name="sub" value=" Login " /></center>
<br/>
</td>
</tr>
</form>
</table>
</body>
</html>
FORM;
if(is_logined(MODE)) {
require_once('info.php');// страница для которой надо открыть доступ
} else
{
echo $form;
}
?>
Для открытия доступа к другим страницам, вначале страницы пропиши
<?php
require_once('login.php');
if(!is_logined(MODE)) {
exit();
}
?>
.:EnoT:.
23.12.2008, 23:41
господа, имхо вы занимаетесь выковыриванием соплей из жопы.
пример с константами, который привёл GreenBear помоему самый адекватный.
Или ещё как вариант защитить паролем через .htaccess
AuthName "PREVED MEDVED"
AuthType Basic
AuthUserFile /www/.htpasswd
require valid-user
и соответственно файл .htpasswd с логинами и паролями.
Фаил .htpasswd я создал и занёс пароли через прогу
Но почемуто пароль не подходит...
Писал так:
C:\adenki.ru\htpasswd.exe -mc .htpasswd user
там вводил пароль :123456
В фойле получилось такое:
user:$apr1$Q/2.....$xkh4ilfOTuG4z7Ym0Jkda1
http://www.ifstudio.org/seo/crypt.php
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot