PDA

Просмотр полной версии : [php] Новичкам: задаем вопросы


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

diznt
31.01.2009, 00:34
mff и так, и так интересует

Gin
31.01.2009, 00:37
2oRb
Огромное спасибо!!!

Gin
31.01.2009, 01:44
Возник следующий вопрос пишукеемешалку (ну назовм это так) выдает какую-то абракадабру посмотрите плз

<?
$f=fopen('key.txt','r') or die ("Ощибка открытия файла");
$key=array();
while(!feof($f)){
$key=fgets($f);
}
fclose($f);
$words=explode(" ",$key);

for($j=0;$j<sizeof($words)-1;){
for($i=0;$i<sizeof($words)-1;){
$words2[]="\r\n"." ".$words[$j].' '.$words[$i];
$i++;
}
$j++;
}
$f=fopen('result.txt','w') or die(" Не могу открыть файл");
foreach($words2 as $k=>$val){
fwrite($f,$val);
$i++;
}
fclose($f);
?>

Chaak
31.01.2009, 01:56
$key .= fgets($f);

Gin
31.01.2009, 02:18
2ChaaK
Я старый листинг закинул так-то я прописал $key.=fgets($f);
Там в самом результат траблы в выходном файле появляются левые проблемы, бардак какаой-то сколько не бился ничего не получается.

AkyHa_MaTaTa
31.01.2009, 02:37
Приведи пример входного файла и что должно быть во втором файле на выходе, а то не пойму что ты хочешь зделать, как ты сам заметил бардак.

Gin
31.01.2009, 02:48
в выходном файле должны быть по два слова выстроенные в колонку.
Щас выложу что уменя выходиит
http://slil.ru/26601295
тут два файла собсно key.txt и results.txt

geforce
31.01.2009, 05:59
Почему не рабртает? Не могу понять в чём проблема??

<?php
$im = imagecreatetruecolor(400, 30);
$text = "Welcome!";
$fout = "arial.ttf";
$color = imagecolorallocate($im, 255, 0, 0);
imagettftext($im,11,0,0,0,$color,$font,$text);
imagejpeg($im);
header("Content-type: image/jpeg");
?>

Pashkela
31.01.2009, 06:18
Ну вообще последовательность такая по идее должна быть:

header('Content-type: image/jpeg'); // Показываем, что картинка (лучше делать в начале)
$im = ImageCreateFromPng("123.png"); // СОЗДАЕМ ИЗ какой-то РИАЛ КАРТИНКИ (у тебя такой строки нет, или ты просто текст в браузер вывести какой-то хочешь???)

ну а дальше вроде всё норм

Chode
31.01.2009, 06:23
Почему не рабртает? Не могу понять в чём проблема??

imagejpeg($im);
header("Content-type: image/jpeg");

сначала картинку выводишь, а потом говоришь после этого типа ааа...похоже там картинка была


header("Content-type: image/jpeg");
imagejpeg($im);

geforce
31.01.2009, 06:58
Все равно не работает!
<?php
header("Content-type: image/jpeg");
$im = imagecreatefromjpeg("123.jpeg");
$text = "Welcome!";
$fout = "arial.ttf";
$color = imagecolorallocate($im, 255, 0, 0);
imagettftext($im,11,0,0,0,$color,$font,$text);
imagejpeg($im);
?>
Пишет:
Warning: imagettftext() [function.imagettftext]: Could not find/open font in G:\home\img.ru\www\text.php on line 7
яШяаJFIFяю>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality яЫC    $.' ",#(7),01444'9=82<.342яЫC  2!!

blaga
31.01.2009, 07:27
geforce, вроде не может найти шрифт. он у тебя там же в папке лежит?

mailbrush
31.01.2009, 10:22
geforce, у тя $foUt = "arial.ttf"; а тут imagettftext($im,11,0,0,0,$color,$foNt,$text);

mailbrush
31.01.2009, 10:38
Вот скрипт без создания текста на какойто картинке, как грил пашкелла:
<?php
$im = imagecreatetruecolor(520, 50); //создаем фон
$text = "Welcome!"; // текст
$font = "arial.ttf"; // шрифт (либо лежит в папке со скриптом, либо полный путь
$color = imagecolorallocate($im, 74, 74, 199); // цвет текста
imagettftext($im,20,0,30,30,$color,$font,$text); // собсна сама картинка
header("Content-type: image/jpeg"); // ставим контент тип - картинку
imagejpeg($im); // выводим картинку
?>
Вот, вроде в комментах...

#Wolf#
31.01.2009, 12:08
помогите чуть-чуть
нужно генерилку xml
xml такого вида:

<?xml version="1.0" encoding="windows-1251"?>
<b>
<i><n>название_картинки_без_расш рения</n><a>полный_урл</a><t>альтерн_текст_для_картинки</t></i>
...................
............
......
.. и т.д
</b>

Pashkela
31.01.2009, 12:30
<?php

$a = "название_картинки_без_расш рения";
$b = "полный_урл";
$c = "альтерн_текст_для_картинки";

$fout=fopen('123.xml','w');
fwrite ($fout,'<?xml version="1.0" encoding="windows-1251"?>' . "\r\n");
fwrite ($fout,'<b>' . "\r\n");
fwrite ($fout,'<i><n>'.$a.'</n><a>'.$b.'</a><t>'.$c.'</t></i>' . "\r\n");
fwrite ($fout,'............' . "\r\n");
fwrite ($fout,'</b>' . "\r\n");
fclose($fout);
?>

ikolla$$
31.01.2009, 12:31
ожеш засунуть все это в текстовик,затем открывать его хоть темже филе_гет_контентс,и делать str_replace "название_картинки_без_расш рения"и прочего на нужную переменную,и делать эхо.

#Wolf#
31.01.2009, 13:51
а вот скажите, будет ли большая нагрузка?
будет выборка из бд, потом будет генерится хмл, а потом яваскрипт будет выводить это все.
получается что скрипт будет работать при каждом обращении к странице.

Nightmarе
31.01.2009, 14:18
Вот тут у меня вопрос возник, а как вывести на экран содержимое рядом лежащей со скриптом папки, ну скажем ./files/, не системными командами, и чтобы файлы были в виде ссылок:
<a href=http://lol.ru/>file.exe</a>
<a href=http://lol.ru/>file2.exe</a>
<a href=http://lol.ru/>file3.exe</a>
ну и т.д...

Dr.Frank
31.01.2009, 14:26
$folder=opendir("./files");
while(false !== ($k = readdir($folder))){
if($k!="." && $k!="..")
echo "<a href=http://lol.ru/>$k</a>\r\n";
}

[dei]
31.01.2009, 14:36
foreach(glob('*.exe') as $f)
echo '<a href=http://lol.ru/'.$f.'>'.$f.'</a>'."\n";

Pashkela
31.01.2009, 16:25
а вот скажите, будет ли большая нагрузка?
будет выборка из бд, потом будет генерится хмл, а потом яваскрипт будет выводить это все.
получается что скрипт будет работать при каждом обращении к странице.

а надо задачу сразу озвучивать, а надо посмотреть. Если тебе надо только эмулировать .xml формат вывода какой-то инфы на экран, а сам файл .xml потом не понадобиться никогда, тогда конечно и файл .xml записывать не надо, а сразу просто выводить на экран, посредством

echo 'бла-бла'.$a.'бла-бла'.$b.'бла-бла'.$c

в общем тоже самое, но без записи в файл

diznt
31.01.2009, 16:54
<html>
<?php
die();
?>

Я тут!
</html>

если я в начале кода всего напишу между тегами "die();"
то значит и то что после тега php(<?php ?>) отпадает все? Или то что между тегами php отпадает?

#Wolf#
31.01.2009, 17:08
а надо задачу сразу озвучивать, а надо посмотреть. Если тебе надо только эмулировать .xml формат вывода какой-то инфы на экран, а сам файл .xml потом не понадобиться никогда, тогда конечно и файл .xml записывать не надо, а сразу просто выводить на экран, посредством

echo 'бла-бла'.$a.'бла-бла'.$b.'бла-бла'.$c

в общем тоже самое, но без записи в файл
просто у меня яваскрипт , парсит хмл, а яваскрипт переписывать гемор....

astrologer
31.01.2009, 17:52
просто у меня яваскрипт , парсит хмл Если это происходит на клиенте, то движок браузера прекрасно (и быстро) умеет парсить xml.

Chaak
31.01.2009, 18:01
diznt, сам видишь, что да.

Dimaus
01.02.2009, 00:22
Помогите найти ошибочку))
<?php
if(isset($_POST['content']))
{
$fd=@fopen($_POST['firstname'],"w");
if(!$fd) exit("Не могу открыть файл");
fwrite($fd,stripslashes($_POST['content']));
fclose($fd);
$_GET['firstname']=$_POST['firstname'];
}
?>
<html>
<head>
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="edit.php" name="first" method="get">
Имя файла:
<input type="text" name="firstname" value="<?php echo $_GET['firstname']; ?>">
<br>
</form>
<?php
if(isset($_GET['firstname']))
$fd=@fopen($_GET['firstname'],"r");
if(!$fd) exit("Такой файл отсутствует");
$bufer=fread($fd,filesize($_GET['firstname']));
fclose($fd);
?>
<form action="edit.php" name=second method="post">
<textarea cols=76 rows=10 name="content">
<?php echo $bufer; ?>
</textarea><br>
<input type="hidden" name=ferstname value="<?php echo $_GET['firstname']; ?>" >
<input type="submit" value="Редактировать">
</form>
</body>
</html>

rushter
01.02.2009, 00:30
Помогите найти ошибочку))
<?php
if (isset($_POST['content'])) {
$fd = @fopen($_POST['firstname'], "w");
if (!$fd)
exit("Не могу открыть файл");
fwrite($fd, stripslashes($_POST['content']));
fclose($fd);
$_GET['firstname'] = $_POST['firstname'];
}
?>
<html>
<head>
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="edit.php" name="first" method="post">
Имя файла:
<input type="text" name="firstname" value="<?php echo $_POST['firstname']; ?>">
<br>
</form>
<?php
if (isset($_POST['firstname']))
$fd = @fopen($_POST['firstname'], "r");
if (!$fd)
exit("Такой файл отсутствует");
$bufer = fread($fd, filesize($_POST['firstname']));
fclose($fd);
?>
<form action="edit.php" name=second method="post">
<textarea cols=76 rows=10 name="content">
<?php echo $bufer; ?>
</textarea><br>
<input type="hidden" name=ferstname value="<?php echo $_POST['firstname']; ?>" >
<input type="submit" value="Редактировать">
</form>
</body>
</html>
хоть бы в нормальный вид привёл

Dimaus
01.02.2009, 00:35
не..не работает....ошибку выдает.....

rushter
01.02.2009, 00:43
Ты бы хоть сказал какую...,мне сейчас не проверить просто.

[dei]
01.02.2009, 00:47
Dimaus

<?php
if (isset($_POST['content'])) {
$fd = @fopen($_POST['firstname'], "w");
if (!$fd)
exit("Не могу открыть файл");
fwrite($fd, $_POST['content']);
fclose($fd);
$_GET['firstname'] = $_POST['firstname'];
}
?>
<html>
<head>
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="edit.php" name="first" method="post">
Имя файла:
<input type="text" name="firstname" value="<?php echo $_POST['firstname']; ?>">
<br>
</form>
<?php
if (isset($_POST['firstname']))
$fd = @fopen($_POST['firstname'], "r");
if (!$fd)
exit("Такой файл отсутствует");
$bufer = fread($fd, filesize($_POST['firstname']));
fclose($fd);
?>
<form action="edit.php" name=second method="post">
<textarea cols=76 rows=10 name="content">
<?=htmlspecialchars($bufer)?>
</textarea><br>
<input type="hidden" name="firstname" value="<?php echo $_POST['firstname']; ?>" >
<input type="submit" value="Редактировать111">
</form>
</body>
</html>

Dimaus
01.02.2009, 00:48
Ошибка
Имя файла:

Notice: Undefined variable: fd in z:\home\dima.ru\www\edit.php on line 23
Такой файл отсутствует

mailbrush
01.02.2009, 00:51
А так?
<?php
if (isset($_POST['content'])) {
$fd = @fopen($_POST['firstname'], "w");
if (!$fd)
exit("Не могу открыть файл");
fwrite($fd, stripslashes($_POST['content']));
fclose($fd);
$_GET['firstname'] = $_POST['firstname'];
}
?>
<html>
<head>
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="edit.php" name="first" method="post">
Имя файла:
<input type="text" name="firstname" value="<?php echo $_POST['firstname']; ?>">
<br>
</form>
<?php
if (isset($_POST['firstname'])) {
$fd = @fopen($_POST['firstname'], "r");
if (!$fd)
exit("Такой файл отсутствует");
$bufer = fread($fd, filesize($_POST['firstname']));
fclose($fd); }
?>
<form action="edit.php" name=second method="post">
<textarea cols=76 rows=10 name="content">
<?php echo $bufer; ?>
</textarea><br>
<input type="hidden" name=ferstname value="<?php echo $_POST['firstname']; ?>" >
<input type="submit" value="Редактировать">
</form>
</body>
</html>

Dimaus
01.02.2009, 00:56
Все окей!!!
А что ты изменил??

mailbrush
01.02.2009, 01:31
Поставил {} тут
if (isset($_POST['firstname'])) {
$fd = @fopen($_POST['firstname'], "r");
if (!$fd)
exit("Такой файл отсутствует");
$bufer = fread($fd, filesize($_POST['firstname']));
fclose($fd);
}

Nightmarе
01.02.2009, 03:58
Подскажите как в параметре $lol сделать массовую автосмену символов???
Вот: Ч=Ch
Ш=Sh
Щ=Sch
Ю=Yu
Я=Ya
ч=ch
ш=sh
щ=sch
ю=yu
я=ya
А=A
Б=B
В=V
Г=G
Д=D
Е=E
Ё=E
Ж=J
З=Z
И=I
Й=Y
К=K
Л=L
М=M
Н=N
О=O
П=P
Р=R
С=S
Т=T
У=U
Ф=F
Х=H
Ц=C
Ъ="
Ы=Y
Ь='
Э=E
а=a
б=b
в=v
г=g
д=d
е=e
ё=e
ж=j
з=z
и=i
й=y
к=k
л=l
м=m
н=n
о=o
п=p
р=r
с=s
т=t
у=u
ф=f
х=h
ц=c
ь='
ы=y
ъ="
э=e
Приведите пример как это можно сделать желательно одной командой.

Pashkela
01.02.2009, 04:10
Одной командой точно не получится. Тут по любэ работа с массивами. Устроит - накалякаю.

Nightmarе
01.02.2009, 04:38
Да коненчо устроит, главное пример покажите!!!

AkyHa_MaTaTa
01.02.2009, 04:39
2 Nightmarе если я правильно понял то нужно например
Ж заменить на J, то делаешь массив значения где индексы массива это что менять а соответствующие значения - как строки замены,вот

function transliteral($text=null){

$maska=array('Ч'=>'Ch','Ш'=>'Sh','Щ'=>'Sch','Ю'=>'Yu'
,'ш'=>'sh','щ'=>'sch','ю'=>'yu','я'=>'ya'
,'А'=>'A','Б'=>'B','В'=>'V','Г'=>'G'
,'Д'=>'D','Е'=>'E','Ё'=>'E','Ж'=>'J'
,'З'=>'Z','И'=>'I','Й'=>'Y','К'=>'K'
,'Л'=>'L','М'=>'M','Н'=>'N','О'=>'O'
,'П'=>'P','Р'=>'R','С'=>'S','Т'=>'T'
,'У'=>'U','Ф'=>'F','Х'=>'H','Ц'=>'C'
,'Ъ'=>'"','Ы'=>'Y','Ь'=>'\'','Э'=>'E'
,'а'=>'a','б'=>'b','в'=>'v','г'=>'g'
,'д'=>'d','е'=>'e','ё'=>'e','ж'=>'j'
,'з'=>'z','и'=>'i','й'=>'y','к'=>'k'
,'л'=>'l','м'=>'m','н'=>'n','о'=>'o'
,'п'=>'p','р'=>'r','с'=>'s','т'=>'t'
,'у'=>'u','ф'=>'f','х'=>'h','ц'=>'c'
,'ь'=>'\'','ы'=>'y','ъ'=>'"','э'=>'e'
,'Я'=>'Ya','ч'=>'ch');

return !empty($text) ? strtr($text,$maska) : null;

}

echo transliteral("Ема ее");

kraken
01.02.2009, 10:23
<?php

// функция превода текста с кириллицы в траскрипт

function encodestring($st)

{

// Сначала заменяем "односимвольные" фонемы.

$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ _ ",

"abvgdeeziyklmnoprstufh'iei-");

$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ _",

"ABVGDEEZIYKLMNOPRSTUFH'IEI");

// Затем - "многосимвольные".

$st=strtr($st,

array(

"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",

"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",

"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",

"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",

"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"

)

);

// Возвращаем результат.

return $st;

}
echo encodestring("Привет **** жлоб пиздец");
?>

mailbrush
01.02.2009, 14:45
Прилепил форму. Кракен +5!
<?php
$text=$_POST['text'];
echo '<b>Source:</b> <br /><form name="" action="" method="post">
<textarea name=text></textarea> <br />
<input type="submit" value="Translit">
</form>';
// функция превода текста с кириллицы в траскрипт

function encodestring($st)

{

// Сначала заменяем "односимвольные" фонемы.

$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ _ ",

"abvgdeeziyklmnoprstufh'iei-");

$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ _",

"ABVGDEEZIYKLMNOPRSTUFH'IEI");

// Затем - "многосимвольные".

$st=strtr($st,

array(

"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",

"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",

"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",

"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",

"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"

)

);

// Возвращаем результат.

return $st;

}
$func=encodestring($text);
if (isset($_POST[text])){
echo "<b>Result:</b> <br /><textarea>$func</textarea>";
}
?>

waik
01.02.2009, 19:01
привет можно ли как-то организовать ,я вставил на свою страничку ифрейм на сайт vkontakte и можно как-то сзделать что бы при заходе на мою страничку с ifame выгружалась страничка пользователя но там был нарисован другой рейтинг.Вроде так сделать нельзя.

vikseriq
01.02.2009, 19:06
можно. правкой тега с рейтингом с помощью js. так как фрейм, то вообще кул = window.frame[0].reit.value="0" Вот примерно так (код не рабочий, чисто сэмпл). ПХП тут не нужен )

waik
01.02.2009, 19:09
надо будет у себя локально изменить теги с рейтингм ,но веть у меня на хосте только iframe а всё остальное выгружается у пользователя

Whirt
01.02.2009, 19:20
если id у тэга, то по идее можно так..
( у меня получалось ), с ифреймом тоже должно прокатить.

<script language="javascript">document.getElementById("id_элемента").innerHTML = "значение"</script>

waik
01.02.2009, 19:49
я вот всё думаю как это сделать но чет даже принцип не догоняю,а до самого когда мне такими темпами еще далеко.
Whirt
стукни в асю 3-семь-семь-шесть-6-девять-9-25

ну вот кусок кода Вконтакте главной страницы пользователя где пишут про рейтинг
<a style='text-decoration:none' href='rate.php'>
<div id="rateGold">
<div id="percentGold">120</div>
<div class="clearFix">
<div id="rateLeftGold" style="width:24px">&nbsp;
</div>
<div id="rateRightGold" style="width:175px">&nbsp;
</div>
</div>
</div>
</a>

Whirt
01.02.2009, 21:38
тебе нужно будет скриптом это делать, потому что если рейт не золотой, а <101 , то там будет называться не percentGold, а как-то по другому. Ну хз, изворачивайся уж как нить. Можно с пхп извратиться, чтобы определялся тип рейтинга, или джавой как нить ( я в ней не силен ), тут уже фантазию подключай.)) Общий принцип я тебе уже написал выше, должно сработать по идее.

kraken
01.02.2009, 21:44
waik
JS не силен. Посредством php можно брать с нужной страницы html код и заменить рейтинг и вывести. Если уустраивает то могу помочь

AkyHa_MaTaTa
01.02.2009, 22:04
можно. правкой тега с рейтингом с помощью js. так как фрейм, то вообще кул = window.frame[0].reit.value="0" Вот примерно так (код не рабочий, чисто сэмпл). ПХП тут не нужен )

Ну наверно из parenta ты не достучишся непосредствено до фрейма потому как Permission denied to get property Window.documen, то есть когда в iframe/frame ты загружаешь внешню страницу(находяшиюся на другом хосте) то у тебя из парента непосредствено нету доступа, другое дело что из ифрейма можешь достучаться до парента и его обьектной модели.

kevmen
01.02.2009, 22:16
Здравствуйте,пытаюсь написать скрипт для перемещения файла,но что-то не выходит,помогите :) ,буду благодарен!<?
if(!isset($_POST['sub']))
{
echo <<<HERE
<center><form action="up.php" method="post" enctype="multipart/form-data">
Закачка файла:<br>
<input type="file" name="file"><br>
<input type="submit" name="sub">
</form></center>
HERE;
}
else{
if($_POST['file']=="none")
{
echo "Вы забыли указать файл";
}
elseif(copy($_POST[file],folder/$_POST[file]))
{
echo "OK";
}
else
{
echo "Файл не был загружен";
}
}
?>


Warning: Division by zero in K:\home\localhost\www\php\up.php on line 26
То есть файла нет?

Pashkela
01.02.2009, 22:24
up.php в студию, ты там на ноль делишь, о чем тебе на чистом английском и сообщают

и второе, это чо???


if($_POST['file']=="none")


надо так (как минимум):


if(empty($_POST['file']))

AkyHa_MaTaTa
01.02.2009, 22:26
elseif(copy($_POST['file'],"folder/$_POST[file]"))

kevmen
01.02.2009, 22:27
up.php в студию, ты там на ноль делишь, о чем тебе на чистом английском и сообщают

это и есть up.php,один и тот же файл принимает и обрабатывает!

Pashkela
01.02.2009, 22:29
это и есть up.php,один и тот же файл принимает и обрабатывает!


Зашибись

Когда весь код в одном файле, action явно нах...й не нужен

kevmen
01.02.2009, 22:29
elseif(copy($_POST[file],"folder/$_POST[file]"))
пишет Вы забыли указать файл)

Mirella
01.02.2009, 22:30
здравствуйте проблемма такова ...
1.не работает почему то скрипт для вывода статов героя про их распределению.
2. не выходит сделать кроссбраузерную кнопку (сохранить)
3. он включает php и js сразу
<?php
echo "<tr><td class='param'>Сила <div id=si></div><td class='st'>".$tmpparams["si"];
if ($tmpparams["dsi"]<>0) {if($tmpparams["dsi"]>0) {echo "+".$tmpparams["dsi"]; }else{ echo $tmpparams["dsi"];}}
echo"<tr><td class='param'>Ловкость <div id=lo></div><td class='st'>".$tmpparams["lo"];
if ($tmpparams["dlo"]<>0) {if($tmpparams["dlo"]>0) {echo "+".$tmpparams["dlo"]; }else{ echo $tmpparams["dlo"];}}
echo"<tr><td class='param'>Интуиция <div id=ud></div><td class='st'>".$tmpparams["ud"];
if ($tmpparams["dud"]<>0) {if($tmpparams["dud"]>0) {echo "+".$tmpparams["dud"]; }else{ echo $tmpparams["dud"];}}
echo"<tr><td class='param'>Здоровье <div id=zd></div><td class='st'>".$tmpparams["zd"];
if ($tmpparams["dzd"]<>0) {if($tmpparams["dzd"]>0) {echo "+".$tmpparams["dzd"]; }else{ echo $tmpparams["dzd"];}}
echo"<tr><td class='param'>Знания <div id=zn></div><td class='st'>".$tmpparams["zn"];
if ($tmpparams["dzn"]<>0) {if($tmpparams["dzn"]>0) {echo "+".$tmpparams["dzn"]; }else{ echo $tmpparams["dzn"];}}
echo"<tr><td class='param'>Божественность <div id=bo></div><td class='st'>".$tmpparams["bo"];
if ($tmpparams["dbo"]<>0) {if($tmpparams["dbo"]>0) {echo "+".$tmpparams["dbo"]; }else{ echo $tmpparams["dbo"];}}
echo"<br><div id=ups></div>";
echo "<SCRIPT LANGUAGE='JavaScript' SRC='/js/st.js'></SCRIPT><script language=JavaScript>
st(".$user["si"].",".$user["lo"].",".$user["ud"].",".$user["zd"].",".$user["zn"].",".$user["bo"].",".$user["nstats"].");
</script>";
if ($user["nstats"]>0)
echo '<br><center><a onclick="save()" style = "cursor:hand">Сохранить</a></center>';

?> var si = 1;
var lo = 1;
var ud = 1;
var zd = 1;
var zn = 1;
var bo = 1;
var ups = 0;
var ssi = 1;
var slo = 1;
var sud = 1;
var szd = 1;
var szn = 1;
var sbo = 1;
var nym = 0;
var nmym = 0;
var nsym = 0;


function st (ssi,slo,sud,szd,szn,sbo,sup)
{
si = ss;
lo = sl;
ud = su;
zd = szd;
zn = szn;
bo = sp;
ups = sup;
ssi = ss;
slo = sl;
sud = su;
szd = szd;
szn = szn;
sbo = sp;
if (ssi<1) ssi=1;
if (slo<1) slo=1;
if (sud<1) sud=1;
if (szd<1) szd=1;
if (szn<1) szn=1;
if (sbo<1) spbo=1;
if (ups>0){
top.frames['main_top'].document.all('si').innerHTML = ssi+'<a onclick="stupsi(1)" style = "cursor:hand">+</a><a onclick="stupsi(-1)" style = "cursor:hand">-</a>';
top.frames['main_top'].document.all('lo').innerHTML = slo+'<a onclick="stuplo(1)" style = "cursor:hand">+</a><a onclick="stuplo(-1)" style = "cursor:hand">-</a>';
top.frames['main_top'].document.all('ud').innerHTML = sud+'<a onclick="stupud(1)" style = "cursor:hand">+</a><a onclick="stupud(-1)" style = "cursor:hand">-</a>';
top.frames['main_top'].document.all('zd').innerHTML = szd+'<a onclick="stupzd(1)" style = "cursor:hand">+</a><a onclick="stupzd(-1)" style = "cursor:hand">-</a>';
top.frames['main_top'].document.all('zn').innerHTML = szn+'<a onclick="stupzn(1)" style = "cursor:hand">+</a><a onclick="stupzn(-1)" style = "cursor:hand">-</a>';
top.frames['main_top'].document.all('bo').innerHTML = sbo+'<a onclick="stupbo(1)" style = "cursor:hand">+</a><a onclick="stupbo(-1)" style = "cursor:hand">-</a>';
}
if (ups==0){
top.frames['main_top'].document.all('si').innerHTML = ssi;
top.frames['main_top'].document.all('lo').innerHTML = slo;
top.frames['main_top'].document.all('ud').innerHTML = sud;
top.frames['main_top'].document.all('zd').innerHTML = szd;
top.frames['main_top'].document.all('zn').innerHTML = szn;
top.frames['main_top'].document.all('bo').innerHTML = sbo;
}
if (ups != 0) top.frames['main_top'].document.all('ups').innerHTML ='Повышений: '+ups;
}

function stupsi (up) {
if ((up==-1 && si > ssi) | (up==1))
if (up==-1 | ups>0) {
si += up;
top.frames['main_top'].document.all('si').innerHTML =si+'<a onclick="stupsi(1)" style = "cursor:hand">+</a><a onclick="stupsi(-1)" style = "cursor:hand">-</a>' ;
ups -= up;
if (ups != 0) top.frames['main_top'].document.all('ups').innerHTML ='Повышений: '+ups;
if (ups == 0) top.frames['main_top'].document.all('ups').innerHTML = '';
}}
function stuplo (up) {
if ((up==-1 && lo > slo) | (up==1))
if (up==-1 | ups>0) {
lo += up;
top.frames['main_top'].document.all('lo').innerHTML = lo+'<a onclick="stuplo(1)" style = "cursor:hand">+</a><a onclick="stuplo(-1)" style = "cursor:hand">-</a>' ;
ups -= up;
if (upsi != 0) top.frames['main_top'].document.all('ups').innerHTML ='Повышений: '+ups;
if (upsi == 0) top.frames['main_top'].document.all('ups').innerHTML = '';
}}
function stupud (up) {
if ((up==-1 && ud > sud) | (up==1))
if (up==-1 | ups>0) {
ud += up;
top.frames['main_top'].document.all('ud').innerHTML = ud+'<a onclick="stupud(1)" style = "cursor:hand">+</a><a onclick="stupud(-1)" style = "cursor:hand">-</a>' ;
ups -= up;
if (ups != 0) top.frames['main_top'].document.all('ups').innerHTML ='Повышений: '+ups;
if (ups == 0) top.frames['main_top'].document.all('ups').innerHTML = '';
}}
function stupzd (up) {
if ((up==-1 && zd > szd) | (up==1))
if (up==-1 | ups>0) {
zd += up;
top.frames['main_top'].document.all('zd').innerHTML = zd+'<a onclick="stupzd(1)" style = "cursor:hand">+</a><a onclick="stupzd(-1)" style = "cursor:hand">-</a>' ;
ups -= up;
if (ups != 0) top.frames['main_top'].document.all('ups').innerHTML ='Повышений: '+ups;
if (ups == 0) top.frames['main_top'].document.all('ups').innerHTML = '';
}}
function stupzn (up) {
if ((up==-1 && zn > szn ) | (up==1))
if (up==-1 | ups>0) {
zn += up;
top.frames['main_top'].document.all('zn').innerHTML = zn+'<a onclick="stupzn(1)" style = "cursor:hand">+</a><a onclick="stupzn(-1)" style = "cursor:hand">-</a>' ;
ups -= up;
if (ups != 0) top.frames['main_top'].document.all('ups').innerHTML ='Повышений: '+ups;
if (ups == 0) top.frames['main_top'].document.all('ups').innerHTML = '';
}}
function stupbo (up) {
if ((up==-1 && bo > sbo) | (up==1))
if (up==-1 | ups>0) {
bo += up;
top.frames['main_top'].document.all('power').innerHTML = bo+'<a onclick="stupbo(1)" style = "cursor:hand">+</a><a onclick="stupbo(-1)" style = "cursor:hand">-</a>' ;
ups -= up;
if (ups != 0) top.frames['main_top'].document.all('ups').innerHTML ='Повышений: '+ups;
if (ups == 0) top.frames['main_top'].document.all('ups').innerHTML = '';
}}
function save () {
top.frames['main_top'].document.all('si').innerHTML = '';
top.frames['main_top'].document.all('si').innerHTML = '<form method=post action=main.php name=stats>'+'<input type=hidden name=si value='+si+'>'+'<input type=hidden name=lo value='+lo+'>'+'<input type=hidden name=ud value='+ud+'>'+ '<input type=hidden name=zd value='+zd+'>' + '<input type=hidden name=zn value='+zn+'>'+'<input type=hidden name=bo value='+bo+'>' + '<input type=hidden name=ups value='+ups+'>' + '</form>'+si+'<a onclick="stupsi(1)" style = "cursor:hand">+</a><a onclick="stups(-1)" style = "cursor:hand">-</a>';
top.frames['main_top'].document.stats.submit();
}

если можно как то упростить и исправить . буду очень благодарен

должно быть так (пример: Сила 1 и если есть лишние навыки то высвечивается + напротив каждого стата
и внизу их свободное количество)

blaga
01.02.2009, 22:31
фигня какаято
1 у тебя никогда не будет $_POST['file']=="none"
2 if (is_uploaded_file($_FILES['file']['tmp_name']))
{
move_uploaded_file($_FILES['filen']['tmp_name'], "/img/wallpaper".$name_image."");

}

Pashkela
01.02.2009, 22:33
"пишет файл не указан!)"

ты загрузить хочешь (с нуля) или скопировать существующий файл? Если файла нет (локально) - конечно выдаст ошибку. Если ты пытаешься сделать загрузку файла на сервер со стороны клиента - это вовсе не так делается

в общем понятно, скорее всего загрузить файл на сервер со стороны клиента, вот тебе скрипт, который не особо мною проверен на безопасность, но функционален хотя бы (если речь вообще идет о файлообменнике типо):

http://slil.ru/26605500

код скрипта сюда не вставляется, похоже за шелл принимает:))

[/php]

AkyHa_MaTaTa
01.02.2009, 22:33
я не пойму че ты пытаешься зделать kevmen копирования сушествуюших на сервере файлов или загрузку новых файлов, потому как у тебя полная каша
<input type="file" name="file"><b

а здеся же

elseif(copy($_POST[file],folder/$_POST[file]))

определися.

kevmen
01.02.2009, 22:37
folder/$_FILES[file])

ошибся!

kevmen
01.02.2009, 22:45
<?
if(!isset($_POST['sub']))
{
echo <<<HERE
<center><form action="up.php" method="post" enctype="multipart/form-data">
Введите пароль:
<input type="password" name="pass"><br>
<br>
<br>
<br>
Закачка файла:<br>

<input type="file" name="file"><br><br>
<br>

<input type="submit" name="sub"><br>

</form></center>
HERE;
}
else{
if ($_FILES['file']['name']=="none") {echo ("Вы забыли указать файл...");}
elseif
(copy($_FILES['file']['tmp_name'], "folder/".$_FILES['file']['name']))
{echo ("Файл ".$_FILES['file'] ['name'] ." размером ".$_FILES['file']['size']." байт успешно скопирован!");}
else
echo("He удалось скопировать ".
$_FILES['file']['name']);} ?>

вот,получилось!Спасибо

Gifts
01.02.2009, 22:58
kevmen Боюсь, что вы глубоко ошибаетесь $_POST['file']=="none" - означает сравнение перменной $_POST['file'] и СТРОКИ none. Пустая строка - это '' или "". В крайнем случае empty($_POST['file'])

mailbrush
01.02.2009, 22:58
если он отсутствует,значит не определен!=> none
Ха-ха. Лол. В пхп нету такого понятия none, есть <?
if(empty($_POST['file']) or ($_POST['file']==""))
{
echo "File is not selected";
}
?>
А $_POST['file']=none будет только если в форме ввести none =)

mailbrush
01.02.2009, 23:06
вот,получилось!Спасибо
Если не веришь - попробуй запусти свой скрипт и не введи файл, и увидишь, что напишет He удалось скопировать а не Вы забыли указать файл...

kevmen
01.02.2009, 23:08
Если не веришь - попробуй запусти свой скрипт и не введи файл, и увидишь, что напишет He удалось скопировать а не Вы забыли указать файл...
так и сделал)
Исправлюсь!
Спасибо!

geforce
01.02.2009, 23:24
Вот скрипт без создания текста на какойто картинке, как грил пашкелла:
<?php
$im = imagecreatetruecolor(520, 50); //создаем фон
$text = "Welcome!"; // текст
$font = "arial.ttf"; // шрифт (либо лежит в папке со скриптом, либо полный путь
$color = imagecolorallocate($im, 74, 74, 199); // цвет текста
imagettftext($im,20,0,30,30,$color,$font,$text); // собсна сама картинка
header("Content-type: image/jpeg"); // ставим контент тип - картинку
imagejpeg($im); // выводим картинку
?>
Вот, вроде в комментах...


Спасибо! ;)

mailbrush
01.02.2009, 23:52
Незачто, но для спасибо есть такая кнопочка зелененкая ± (http://forum.antichat.ru/reputation.php?p=1094015)

diznt
02.02.2009, 00:05
Установил денвер
какой пароль и юзер от Mysql ? м? сам не назначал и сам не знаю где посмотреть, на все потыкал в папке mysql в денвере

AkyHa_MaTaTa
02.02.2009, 00:06
2 diznt -
user - root
pass- ""

mailbrush
02.02.2009, 00:14
AkyHa_MaTaTa, немножко неправильно написал =) Некоторые могут не понять. Пароль не "" а пустой, т.е. его нет. ЗЫ: Не советую юзать денвер, установи лутше TopServer или Apache Web Server =)

AkyHa_MaTaTa
02.02.2009, 00:35
AkyHa_MaTaTa, немножко неправильно написал =) Некоторые могут не понять. Пароль не "" а пустой, т.е. его нет. ЗЫ: Не советую юзать денвер, установи лутше TopServer или Apache Web Server =)
А как ты указываешь в скриптах пустой пароль? '' или "".

kraken
02.02.2009, 00:39
AkyHa_MaTaTa "нет пароля" :D

m0Hze
02.02.2009, 00:42
Товариши,чет бошка под чечер не варет,ннужно чтобы число уножалось на число,пока не станет например меньше или равным другому числу,тоесть какбе цикл.Чтото я с for мутил,мутил,но особо хорошо не получилось,отказыаеться умножать,либо прыгает выше ответа нужного.

oRb
02.02.2009, 00:45
m0Hze
<?
$x = 1;
while($x < 100)
$x *= 10;
echo $x;
?>

m0Hze
02.02.2009, 00:47
Если требуеться выполнять действие ДО определенного условия, используеться цикл do while а не фор)
Ну говорю же,совсем не варит голова у меня :(
Нужно в отпуск мне :)

mailbrush
02.02.2009, 00:52
AkyHa_MaTaTa, ну если ты так углубляешся в пхп, то после каждой переменной надо ; ставить =)

diznt
02.02.2009, 01:08
нужно проверить есть ли подкл к БД то есть если не прошол конект к БД то высветилась не ошибка типа "Нету конекта с БД"
Как это сделать?

b3
02.02.2009, 01:11
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
or die("Could not connect: " . mysql_error());
print ("Connected successfully");
mysql_close($link);
?>

mailbrush
02.02.2009, 01:13
Всмысле? Где ты без ; видел ?
Неск постов назад на 836 странице в конце.
ЗЫ: И перед каждой переменной $ ставится =\
ЗЫ: Не углубляйся в пхп, и не будем спорить, я просто объяснил "тугодумам".

Pashkela
02.02.2009, 01:13
<?
$servername=''; // Your MySql Server Name or IP address here
$dbusername=''; // Login user id here
$dbpassword=''; // Login password here
$dbname=''; // Your database name here


function connecttodb($servername,$dbname,$dbuser,$dbpasswor d)
{
$link=mysql_connect ("$servername","$dbuser","$dbpassword");
if(!$link){die("Could not connect to MySQL");}
mysql_select_db("$dbname",$link) or die ("could not open db");
}

connecttodb($servername,$dbname,$dbusername,$dbpas sword);
?>

Chaak
02.02.2009, 01:24
Неск постов назад на 836 странице в конце.
ЗЫ: И перед каждой переменной $ ставится =\
ЗЫ: Не углубляйся в пхп, и не будем спорить, я просто объяснил "тугодумам".
аха, конечно ты не прав akyha сказал пароли а не привел скрипт.

В php

Null == false == 0 == "" == '' == !1 == !true

Ровно как в си :)
Подъеб не удался

mailbrush
02.02.2009, 01:32
diznt, переделаный от b3 только с формой...
<?php
error_reporting(0);
echo "<form method=post><table border=1><tr><td><b>Host:</b></td><td> <input name=\"host\" type=\"text\"> </td>
<tr><td><b>User:</b></td><td> <input name=\"user\" type=\"text\" value=\"\"></td>
<tr><td><b>Password:</b></td><td><input name=\"pass\" type=\"text\" value=\"\"></td></table>
<input type=submit value=Connect!><br /><br />";
if (isset($_POST['host']) && isset($_POST['user']) && isset($_POST['pass'])){
$link = mysql_connect($_POST['host'], $_POST['user'], $_POST['pass'])
or die("<b>Could not connect:</b> " . mysql_error());
echo ("<b>Connected successfully</b>");
mysql_close($link); }
?>

Kaimi
02.02.2009, 01:36
Null == false == 0 == "" == '' == !1 == !true

Ровно как в си

Ээ, по-моему в си равенства null, false, 0 с "" и '' не выполняются

m0Hze
02.02.2009, 01:50
Нужен подсчет колва символов в переменной.
Имеем $a = '11112222';
На выходе имеем $b = 8; - колво символов в $a

AFoST
02.02.2009, 01:56
$b = strlen($a); // $a-string
echo $b;

Chaak
02.02.2009, 01:58
Kaimi, да, но не для '' и "", не дописал

m0Hze, не понимаю зачем ты в роа хочешь, не зная даже элементарного.
strlen используй

astrologer
02.02.2009, 02:58
m0Hze
<?
$x = 1;
while($x < 100)
$x *= 10;
echo $x;
?><pre>
<?php

function compute($ini, $mul, $max)
{
$exp = log($max / $ini, $mul) >> 0;
return $ini * pow($mul, $exp);
}

echo compute(1, 10, 100) . "\n" .
compute(5, 11, 1e7);

Isis
02.02.2009, 15:07
Ээ, по-моему в си равенства null, false, 0 с "" и '' не выполняются
<?php
$a = null;
echo $a;
?>
<?php
$a = 0;
echo $a;
?>

geforce
02.02.2009, 16:59
В чем ошибка??
Пишет:
Warning: imagecolorallocate(): supplied argument is not a valid Image resource in G:\home\img.ru\www\end.php on line 25
Warning: imagettftext() expects parameter 1 to be resource, string given in G:\home\img.ru\www\end.php on line 26
Warning: imagejpeg(): supplied argument is not a valid Image resource in G:\home\img.ru\www\end.php on line 27

вот код:

<?php
// Подсоединяем функции и базу
include("db.php");
include("function.php");
// Проверяем переданые переменные
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
if (isset($_POST['zak'])) { $zak = $_POST['zak'];}
if (isset($_POST['che'])) { $che = $_POST['che'];}
if (isset($_POST['name'])) { $namech = $_POST['name'];}
if (isset($_POST['text'])) { $text = $_POST['text'];}
// Текст к авотарке
$q = "";
if ($text != $q) {
$img = $adres; //создаем фон
$textput = $text; // текст
$font = "arial.ttf"; // шрифт (либо лежит в папке со скриптом, либо полный путь
$color = imagecolorallocate($img, 74, 74, 199); // цвет текста
imagettftext($img,20,0,30,30,$color,$font,$textput ); // собсна сама картинка
imagejpeg($img,"fotos/$namech"); // Сохроняем картинку
}
// Черный или цветной цвет
if ($che == 1) {
$s_file = $adres;
$razm = getimagesize($adres);
$widthch= $razm[0];
$heigthch = $razm[1];
$imch = imagecreatetruecolor($widthch,$heigthch);
imagejpeg($imch,"fotos/ch_".$namech);
imagedestroy($imch);
$r_file="fotos/ch_".$namech;
wb($s_file,$r_file);
$adres = "fotos/ch_".$namech;
}
// Запрос к базе для выбора картинки
$q = "SELECT * FROM data WHERE id='$vibor'";
$result1 = mysql_query($q,$db);
if (!$result1) {
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0) {
// Создаем аватар
$myrow1 = mysql_fetch_array($result1);
$adres1 = "admin/".$myrow1['url'];

$mas = getimagesize($adres);
$mas1 = getimagesize($adres1);

$width = 215;
$heigth = $mas[1]+$mas1[1]+30;

$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$name = $myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 30);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+30, 0, 0, 215, 350);
// Закруглёные углы
if ($zak == 1) {
ugolki ($im);
}
// Сохроняем и выводим
imagejpeg($im,"avatar/$name");
imagedestroy($im);
}
printf("<img src='avatar/$name' alt=''/><br><a href='get.php?file=avatar/$name'>save</a>");
?>

oRb
02.02.2009, 17:12
вместо
$img = $adres; //создаем фон
надо
$img = imagecreatefromjpeg($adres);
или другие функции imagecreatefrom* в зависимости от типа рисунка

159932
02.02.2009, 17:14
$img = $adres; //создаем фон
не правильный параметр

imagettftext($img,20,0,30,30,$color,$font,$textput ); // собсна сама картинка
не правильная переменная $img, она является стрингом, а должна быть картинка

imagejpeg($img,"/fotos"); // выводим картинку
тоже самое.

--
тебе надо тут почитать
http://www.php.net/manual/ru/ref.image.php

geforce
02.02.2009, 17:42
вместо
$img = $adres; //создаем фон
надо
$img = imagecreatefromjpeg($adres);
или другие функции imagecreatefrom* в зависимости от типа рисунка

Спасибки работает ты прав!

159932

Внимательно пост посмотри я исправил!

geforce
02.02.2009, 17:52
oRb

А почему он рускими буквами не пишет???

Надпись Получается как будто в другой кодировке!!

MaTpOc
02.02.2009, 18:00
Парни, помогите плиз!
Мне нужно с фтп от сервера перекинуть данные на фтп другого сайта :rolleyes:

mailbrush
02.02.2009, 18:13
Уже не надо =). Юзай скрипт от пашкеллы

m0nsieur
02.02.2009, 18:35
2 MaTpOc - cкрипт от Pashkela в полезных статьях ftp2ftp - http://forum.antichat.ru/threadnav65761-60-10.html

Chaak
02.02.2009, 18:35
oRb

А почему он рускими буквами не пишет???

Надпись Получается как будто в другой кодировке!!
$text = iconv("windows-1251","utf-8", $text);

Если не поможет, меняй шрифт

mixkorshun
02.02.2009, 18:41
Парни, помогите плиз!
Мне нужно с фтп от сервера перекинуть данные на фтп другого сайта :rolleyes:

самое простое что накатал по быстрому... должно работать

<?php
$server_source = "source.server.com";
$server_dest = "dest.server.com";
$remotefile = "file.txt";

$hFtp = ftp_connect($server_source, 21);
ftp_login($hFTP, "username", "password");
$hFtp2 = ftp_connect($server_dest, 21);
ftp_login($hFTP2, "username2", "password2");
//соединились и залогинились...

//получаем файл и сохраняем у себя в "remotefile.dat"
ftp_get($hFTP, "remotefile.dat", $remotefile, FTP_BINARY);

//грузим на 2ой ftp
ftp_put($hFTP, $remotefile, "remotefile.dat", FTP_BINARY);


//закрываем соединения
ftp_close($hFTP);
ftp_close($hFTP2);
?>


+ru.php.net/manual/ru/book.ftp.php (http://ru.php.net/manual/ru/book.ftp.php) надеюсь пригодится

blaga
02.02.2009, 18:42
geforce была такая трабла.
помогло только это.

function toUnicodeEntities($text, $from="w")
{
$text = convert_cyr_string($text, $from, "i");
$uni="";
$len=strlen($text);
for($i=0; $i<$len; $i++)
{
$char=$text{$i};
$code=ord($char);
$uni .= ($code>175)? "&#" . (1040+($code-176)) . ";" : $char;
}
return $uni;

}

MaTpOc
02.02.2009, 19:05
Всем спасибо!
Многие мне советовали phpDesigner 2008, но я в нем встретил такую проблему, у меня в браузере русские буквы отображаются так 10Ñóììà âñåõ ÷èñåë îò 1 äî 100 ðàâíà - 5050
Как исправить?

geforce
02.02.2009, 19:07
geforce была такая трабла.
помогло только это.

function toUnicodeEntities($text, $from="w")
{
$text = convert_cyr_string($text, $from, "i");
$uni="";
$len=strlen($text);
for($i=0; $i<$len; $i++)
{
$char=$text{$i};
$code=ord($char);
$uni .= ($code>175)? "&#" . (1040+($code-176)) . ";" : $char;
}
return $uni;

}



Не работает ((((

geforce
02.02.2009, 19:08
А как проверить переную с текстовым содержимым на наличие руских или английских букв??

Chaak
02.02.2009, 19:11
if(preg_match('#^[a-z]+$#i',$var))
echo 'english';

blaga
02.02.2009, 19:11
у меня эта функция отлично работает.
регуляркой ? [a-z][A-Z]

m0Hze
02.02.2009, 19:15
Перейду сразу к делу.
Имеем:

$a = '100';
$b = '9';

Нужна функция,или другая реализаця следющего:
$a должна умножаться сама на себя,пока не станет равна 108,тоесть больше $b,но только на 1-ну $a,тоесть если переменная $b = 91,$a = 9,я должен получить $c = 99.

Chaak
02.02.2009, 19:20
<?php
$a = 2;
$b = 333;

do{
$a *= $a;
}while($a <= $b);
echo $a;

Pashkela
02.02.2009, 19:21
9x9 = 81
81x9 = 729

а теперь скажи условие задачи по русски:)

blaga
02.02.2009, 19:25
Есть такая проблема. Значит есть у меня файл который нужно прочитать, удалить повторки а записать заново, но по условию его нельзя читать сразу всего. То есть прочесть функцией file а потом убрать все повторки через array_unique не получеться.
Как сделал я

<?php
$handle = fopen("res.txt", "r");
$handle2 = fopen("result.txt", "a+");
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo "buffer=".$buffer."<br>";
do {
$buf = fgets($handle2, 4096);
echo "buf=".$buf."<br>";
if($buf != $buffer)
fwrite($handle2,$buffer);
} while (!feof($handle2)) ;

}
fclose($handle);
fclose($handle2);
?>

но выходит какой то глюк. Второй цикл замыкаеться и пишеться бесконечно только первая строка, на проверку не обращает внимания.
Скажите что сделано не так, или наметьте другой путь.
Заранее спасибо.

Велемир
02.02.2009, 19:32
Пипл,как считать из файла последовательность строк,преобразовав в массив ? Вот,например:

Раз
два
три
четыре
пять

Пробовал по всякому,вот только у меня всё это оказывалось в одном элемент массива))

Преобразовать в массив strings,к примеру:)

mixkorshun
02.02.2009, 19:32
blaga
как понял то у тебя 2 вложеных цикла.. причем в первом ты читаешь первую строку, а потом все остальные с ней сравниваешьи пишешь ее.. отсюда и эффект

mixkorshun
02.02.2009, 19:33
сейчас набросать попробую рабочий

mixkorshun
02.02.2009, 19:40
<?php
$handle = fopen("res.txt", "r");
$handle2 = fopen("result.txt", "a+");
$buffer = fgets($handle, 4096);
fwrite($handle2, $buffer);
while (!feof($handle)) {
$buf= fgets($handle, 4096);
if($buf == $buffer)
{
} else
{
$buffer=$buf;
fwrite($handle2, $buffer);
}

}
fclose($handle);
fclose($handle2);
?>

должно работать. с тебя + )) если не работает отпиши в личку

blaga
02.02.2009, 19:41
Велемир file()
mixkorshun интерес в том что бы взять первую строку и проверить со всеми теми что уже в файле есть если такой строки нет то записать.
но почему то первый цикл не перекручивает на вторую строку...

Велемир
02.02.2009, 19:43
$a = array();
$fp = fopen("фаил.txt","r");

while(!feof($fp)) {

$a[] = fgets($fp,4096);

}

print_r($a);




?>

Вроде так...

blaga
02.02.2009, 19:43
работать то она работает, только вот повторки не удаляет. такого эффекта я тоже достиг. :(

велемир перечитай условие. мне нельзя совать файл в массив.

mixkorshun
02.02.2009, 19:47
Велемир file()
mixkorshun интерес в том что бы взять первую строку и проверить со всеми теми что уже в файле есть если такой строки нет то записать.
но почему то первый цикл не перекручивает на вторую строку...

тебе нужно чтобы строка вообще нигде в тексте не повторялась?? жди тогда, ща напишем

Pashkela
02.02.2009, 19:48
2 blaga:

slovar.ini


Результирующий файл:
resultus.txt
--------------------------------
Обрабатываемый файл:
1.txt
--------------------------------
Размер буфера:
4096



slovar.php


<?php
global $len_buffer;
$ipArray = array_map("trim", file("slovar.ini")); //Файл настроек
$res = trim($ipArray[1]);
$file = trim($ipArray[4]);
$len_buffer = trim($ipArray[7]);
$size2 = filesize($file);
echo "Result file file - $res\n";
echo "Adding file - $file, size - $size2 bytes\n";
echo "Buffer - $len_buffer bytes\n";
echo "Start, wait please...\n";
echo "---------------------------------------\n";


Uslovar ($file,$res);




/*Функция поиска повторов строк */
function Ustr ($fp, $str)
{
global $len_buffer;
fseek($fp,0);
while (!feof ($fp)) {
$temp = trim(fgets($fp,$len_buffer));
if ($str == $temp)
return false;
}
return true;
}

/*Функция занесения уникальных слов в результирующий файл*/
function Uslovar ($slovar1,$res)
{
global $len_buffer;
$date = date("d.m.Y H:i");
echo "$date....Start.Wait please.....\n";
$result = fopen($res, 'w+') or die ("Can't open file $res for writing");
$size = filesize ($slovar1);
$fp = fopen ($slovar1, 'r') or die ("No such file - $slovar1");
echo "Size of file " .$size. " bytes\n";
while (!feof ($fp)) {
$temp = trim (fgets ($fp, $len_buffer));
if (Ustr ($result, $temp)) {
fseek ($result, 0, SEEK_END);
fwrite ($result, $temp . "\r\n");
}
}
fclose ($fp);

fclose ($result);
$size1 = filesize ($res);
echo "All results saved in $res ($size1 bytes)\n";
}

?>

mixkorshun
02.02.2009, 19:54
работать то она работает, только вот повторки не удаляет. такого эффекта я тоже достиг. :(

велемир перечитай условие. мне нельзя совать файл в массив.

$buffer = fgets($handle, 4096);
echo "buffer=".$buffer."<br>";
fwrite($handle2,$buffer);// он пустой файл читает иначе!!!!
вроде как в этом ошибка была.... но неуверен... он у тебя пустой файл читать начинал(handle2)

m0Hze
02.02.2009, 20:21
<?php
$a = 2;
$b = 333;

do{
$a *= $a;
}while($a <= $b);
echo $a;
Совсем не то.Мне нужно,чтобы переменная $a умножалась сама на себя,пока она не становиться равной,либо больше $b.Больше только на 1-ну $a
Тоесть.
$a = 9;
$b = 100;
Получиться
$c = 108;
Минимальное число,которое получаеться при умножении $a саму на себя,и больше $b.

Chaak
02.02.2009, 20:26
А если a = 11 ? Бред несешь, зачем это нужно?

m0Hze
02.02.2009, 20:42
Ой пилять :(
В том то и разница,что числа могут быть разные.
$a = 9,$b =100, $a нужно умножать,пока она не станет =,или больше $b.

Велемир
02.02.2009, 20:46
9*9,9*10,9*11,9*12 - ты это имеешь ввиду ?

Если умножать само на себя,то 9*9,10*10,11*11 и т.д.

Я тя чёт не догнал(

<?php

$a = 9;
$b = 100;

while ($a <=$b) {

$a = $a*$a;

$a = $a+1;

if($a <= $b) {

echo "<br>$a</br>";
break;

}

}


?>

Имхо если знак поменять,то бред получится ))))

Isis
02.02.2009, 20:52
То что чак написал, перед вывдом еще раз на $a умножь

m0Hze
02.02.2009, 20:54
НУ к вам еще объяснить то :D
Все элементарно :)
Так,объясню подругому.
Имеем число $a = 2 и $b = 5
Задача,умножать число $a пока оно не станет больше $b,как только оно стало больше выводить результат,в нашем случае 6.
Число $a умнаеться так
$a = $a*$a; - 4
$a = 4*$a; И так далее,н естевственно не таким дебильным способом Ж)

kraken
02.02.2009, 21:06
НУ к вам еще объяснить то :D
Все элементарно :)
Так,объясню подругому.
Имеем число $a = 2 и $b = 5
Задача,умножать число $a пока оно не станет больше $b,как только оно стало больше выводить результат,в нашем случае 6.
Число $a умнаеться так
$a = $a*$a; - 4
$a = 4*$a; И так далее,н естевственно не таким дебильным способом Ж)


$a=2;
$b=3;
while ($a<$b) $a*=$a;
echo $a;


Если правильно тебя понял то так

kraken
02.02.2009, 21:07
m0Hze ты неадекватен 4*2!=6 f 4*2=8

Pashkela
02.02.2009, 21:09
m0Hze

2*2=4
4*2=8

6 ну никак не будет, выкини свой калькулятор

astrologer
02.02.2009, 21:09
$a=2;
$b=3;
while ($a<$b) $a*=$a;
echo $a; <?php

$a = 9;
$b = 100;

while ($a <=$b) {

$a = $a*$a;

$a = $a+1;

if($a <= $b) {

echo "<br>$a</br>";
break;

}

}


?><?php
$a = 2;
$b = 333;

do{
$a *= $a;
}while($a <= $b);
echo $a;Эта задача решается без цикла

kraken
02.02.2009, 21:14
Если без цикла тогда рекурсией
function kraken_YMHbIN($a,$b)
{
$a*=$a;
if ($a<$b) kraken_YMHbIN($a,$b);
return $a
}

m0Hze
02.02.2009, 21:15
В общем забиваем на вопрос выше,сделал в 100 раз проще в 1 операцию,просо я хотел сделать выгоду из этой операции,какбе сложив сразу 2 в одну.
Теперь другой вопрос.
Имееем строку.
$a = '2321';
Определяем сколько там символов,и делим пополам строку,создавая 2 переменные
$a = 23;
$c = 21;
Но вот если в строке $a = '23233'; как разделить чтобы в одну помещалось 3 символа,в дургую 2. 5 символов это пример,их может быть и 15,тоесть нужноделить нечетные числа и развивать в 2 переменные.Помогайте :))

Isis
02.02.2009, 21:15
Я плачу))Чак уже дал ответ, я дописал и проверил)

kraken
02.02.2009, 21:18
В общем забиваем на вопрос выше,сделал в 100 раз проще в 1 операцию,просо я хотел сделать выгоду из этой операции,какбе сложив сразу 2 в одну.
Теперь другой вопрос.
Имееем строку.
$a = '2321';
Определяем сколько там символов,и делим пополам строку,создавая 2 переменные
$a = 23;
$c = 21;
Но вот если в строке $a = '23233'; как разделить чтобы в одну помещалось 3 символа,в дургую 2. 5 символов это пример,их может быть и 15,тоесть нужноделить нечетные числа и развивать в 2 переменные.Помогайте :))
Это тебне для чего...что то мне напоминает задания для того чтоб попасть в ROA я ошибаюсь?

astrologer
02.02.2009, 21:25
Если без цикла тогда рекурсией
function kraken_YMHbIN($a,$b)
{
$a*=$a;
if ($a<$b) kraken_YMHbIN($a,$b);
return $a
}Цитирую (https://forum.antichat.ru/showpost.php?p=1094492&postcount=8378) сам себя с тривиальной правкой =(
<pre>
<?php

function compute($ini, $mul, $max)
{
$pow = ceil(log($max / $ini, $mul));
return $ini * pow($mul, $pow);
}

echo compute(1, 10, 100) . "\n" .
compute(5, 11, 1e7);

m0Hze
02.02.2009, 21:26
Не,задание я по другому буду делать,если ты про числа где считать.
А вот деление строки на части - это да,для него.Я просто некак не пойму,как раздеолить нечетное кол-во символов.

m0Hze
02.02.2009, 21:29
Не,задание я по другому буду делать,если ты про числа где считать.
А вот деление строки на части - это да,для него.Я просто некак не пойму,как раздеолить нечетное кол-во символов.
В общем зря вы это писали,яя как уже сказал это сделал немного проще.Вот только как побить надвое строку с нечетным колвом символов? По 1 думаю побить,но больно много переменных,да и неудобно в БД заносить.

kraken
02.02.2009, 21:30
дели по парно когда окажется что последнее число непарная прицепляй его к предыдущему

m0Hze
02.02.2009, 21:30
Убийство,в мозг приходит только одна идея:
Выдерать первые например 5 символов,а все что осталось в другую переменную пихать.По другому я чтото никак не придумаю :(
Пвроде придумал извращенский способ.
Допустим у нас 27 сиволов. Делим на 2,получаем 13.5.Далее,выдираем у одной переменной .5 и прибалвяем к другой,получаем 14,и13. Вроде как все.Пошел проверять...

kraken
02.02.2009, 21:39
Вот написал для тебя код надеюсь сам разберешься.
После выполнения кода в массиве $b находятся все числа


$a='1234567';
$len=(int)(strlen($a)/2)
for ($i=0;$i<$len;$++) $b[$i]=substr($ch1,$i*2,2);
if ((strlen($a) % 2)!=0) $b[$i].=$a[$i+1];

Gifts
02.02.2009, 22:05
Деление строки пополам
function divide($str)
{
$out=array();
$len=(int)strlen($str)/2;
$out[]=substr($str,0,$len);
$out[]=substr($str,$len);
return $out;
}
$in='abcdefg';
print_r(divide($in));

kraken вроде на каждые два символа не просили делить, и у вас опечатка в инкременте цикла

mailbrush
02.02.2009, 22:47
Никак не могу понять, почему не енкодит то, что после md5
<?php
echo '<title>H@SH Simple EncodeR</title></title><form method="post">
<table border=1><tr><td><b>Слово:</b></td><td> <input name="pass" type="text" value=""> </td>
<tr><td><b>Соль:</b><br /><font size=1>Optionally</font></td><td> <input name="salt" type="text" value=""> </td>
<tr><td><b>Тип:</b></td><td>
<select size="11" name="type">
<option checked value="hex">HEX Encode</option>
<option value="hexde">HEX Decode</option>
<option value="base64">Base64 Encode</option>
<option value="base64de">Base64 Decode</option>
<option value="sha1" name=type>sha1</option>
<option value="md5">MD5</option>
<option value="md5(md5($pass))">md5(md5($pass))</option>
<option value="md5($pass.$salt)">md5($pass.$salt)</option>
<option value="md5(md5($pass.$salt))">md5(md5($pass.$salt))</option>
<option value="md5(md5($salt.$pass))">md5(md5($salt.$pass))</option>
<option value="md5(md5($pass).$salt)">md5(md5($pass).$salt)</option>
</select> </td>
<tr><td><input type="submit" value="Send"></td> </table>
</form>';
if (isset($_POST['pass']) && $_POST['type'])
{ $pass=$_POST['pass'];
$type=$_POST['type'];
$salt=$_POST['salt'];
if ($_POST['type']==hex){$r=hexdec($pass);}
if ($_POST['type']==hexde) {$r=dechex($pass);}
if ($_POST['type']==base64){$r=base64_encode($pass);}
if ($_POST['type']==base64de){$r=base64_decode($pass);}
/*Начиная с этого*/if ($_POST['type']==md5){$r=md5($pass);}
if ($_POST['type']==md5(md5($pass))){$r=md5(md5($pass));}
if ($_POST['salt']){
if ($_POST['type']==md5($pass.$salt)){$r=md5($pass.$salt);}
if ($_POST['type']==md5(md5($salt.$pass))){$r=md5(md5($salt.$pass)); }
if ($_POST['type']==md5(md5($pass).$salt)){$r=md5(md5($pass).$salt); }
if ($_POST['type']==sha1){$r=sha1($pass);}/*Заканчивая этим ничего не хешируется...*/}else{$r="Вы не ввели соль!";}
echo "<br><b>Result:</b><br><textarea cols=40 rows=15>$r</textarea>";;}
?>

mailbrush
02.02.2009, 23:05
а у самого по две , для надежности?
Это ошибка, но скрипт она не меняет =\.
А так - сенк, ша попробую...

ANTIJABBER
02.02.2009, 23:07
Привет Всем! Ребят... нужен простой граббер с myip.ru, что бы вырезал сам ИП... заранее спасибо.

Gifts
02.02.2009, 23:15
mailbrush switch-case не модно уже?

m0Hze
02.02.2009, 23:20
Привет Всем! Ребят... нужен простой граббер с myip.ru, что бы вырезал сам ИП... заранее спасибо.
Тебе нужно узнавать ип-адрес зашедшего на страницу? $_SERVER['REMOTE_ADDR']

ANTIJABBER
02.02.2009, 23:29
Тебе нужно узнавать ип-адрес зашедшего на страницу? $_SERVER['REMOTE_ADDR']
да не, это знаю =) у меня просто ADSL... адрес - динамика... вот так узнавать буду с телефона какой ИП у компа... =)

Парсер myip:

<?php $page = file_get_contents('http://myip.ru/'); preg_match_all('|<TR><TD bgcolor=white align=center valign=middle>(.+)</TD></TR>|',$page,$result); echo $result[1][rand(0,0)]; ?>

ANTIJABBER
02.02.2009, 23:31
В данный момент интересует вопрос... как записать файл который находится на фтп? ЗЫ: к фтп полный доступ... =) а то пробовал... чего-то не получается... :-[ может примерчик подкинете? *смайлик покраснения*

kraken
02.02.2009, 23:40
ANTIJABBER
http://www.softtime.ru/bookphp/gl9_1.php

exaid
02.02.2009, 23:46
Вообщем нужен скриптец :)

есть файл, допустим keywords.txt 50к строк
щщщ
шшш
ггг
...

мне нужно чтобы скрипт выводил 10 строк, по 3 кея из файла рандомно через запятую
ыыы, ццц, ууу
ннн, ммм, ссс
...
заранее большое спасибо! с меня + ;)

Gifts
02.02.2009, 23:49
exaid $arr=file('keywords.txt');
$c=count($arr);
for ($i=1;$i<10;$i++) echo $arr[rand(0,$c)].', '.$arr[rand(0,$c)].', '.$arr[rand(0,$c)]."\r\n"

mailbrush
02.02.2009, 23:49
mailbrush switch-case не модно уже?
Почему же нет? Я сейчас свой квест пишу именно на этом, но это движок. А для обычного хеш-енкодера этого не надо.

Doom123
02.02.2009, 23:53
mailbrush дело не в том нужно или нет делов засирать код или нет =)

m0Hze
02.02.2009, 23:58
Почему же нет? Я сейчас свой квест пишу именно на этом, но это движок. А для обычного хеш-енкодера этого не надо.
Хоть стой,хоть падай.

0verbreaK
03.02.2009, 00:11
Нужна реализация или скрипт, который будет принимать каталог со страницами, будет выдывать ссылки на эти файлы

Chrek625
03.02.2009, 03:07
Доброго всем времени суток.
Подскажите пожалуйста заступорился на одной баге и не могу понять как исправить:
ошибка Cannot re-assign $this in Shop.php

а вот фрагмент с переменной $this

function get($objectId=null) {
if ($objectId == 0) return false;
if (parent::get($objectId)) {
// echo "in get clinic, $objectId, ".get_class($this)."<br>";

if ($this->getVariable('type') == 'comission' and get_class($this)!='comissionshop') {
$newShop = new ComissionShop();
if ($newShop->get($objectId)) {
$this = $newShop;
$this->getCrncyDst();
return true;
}
return false;
}

подскажи как это исправить просто моих знаний не хватает что бы разобраться с этим... буду боагодарен любой помощи или подсказке...
Зарание большое спасибо.

groundhog
03.02.2009, 03:46
Хорошо бы если бы ты написал строку, где ошибка возникает...

AkyHa_MaTaTa
03.02.2009, 04:11
Доброго всем времени суток.
Подскажите пожалуйста заступорился на одной баге и не могу понять как исправить:
ошибка Cannot re-assign $this in Shop.php

а вот фрагмент с переменной $this

function get($objectId=null) {
if ($objectId == 0) return false;
if (parent::get($objectId)) {
// echo "in get clinic, $objectId, ".get_class($this)."<br>";

if ($this->getVariable('type') == 'comission' and get_class($this)!='comissionshop') {
$newShop = new ComissionShop();
if ($newShop->get($objectId)) {
$this = $newShop;
$this->getCrncyDst();
return true;
}
return false;
}

подскажи как это исправить просто моих знаний не хватает что бы разобраться с этим... буду боагодарен любой помощи или подсказке...
Зарание большое спасибо.
Мне кажеться что вот так делать не стоит
$this = $newShop;

groundhog
03.02.2009, 04:13
по-моему такая конструкция хляла в ПХП4, но в ПХП5 уже такое не пройдёт...

RekRut
03.02.2009, 04:29
ппц Chrek625 , ты если код выкладуешь то расставляй хотя бы все скобки на месте нормально, а то ужас просто, спросил одно, а в коде куча другого неправильно

function get($objectId=null) {
if ($objectId == 0) return false;

if (parent::get($objectId))
{
echo "in get clinic, $objectId, ".get_class($this)."<br>";

if ($this->getVariable('type') == 'comission' and get_class($this)!='comissionshop') {
$newShop = new ComissionShop();
if ($newShop->get($objectId)) {
$this -> $newShop;
$this->getCrncyDst();
return true;
}
return false;
}
}

}


вот так должно канать

AkyHa_MaTaTa
03.02.2009, 04:50
$this -> $newShop - эта операция безсмыслена.
2 groundhog по моему этого и в 4 нельзя было делать, в переменой $this содержиться сылка на текуший обьект, наверно нужно выложить весь обьект что бы не гадать.

or1
03.02.2009, 04:54
Доброго всем времени суток.


--------------------------------------
вот один случай был у меня мне нужно было чтоб кто-нить мне мыло взломал ну я и обратился к одному челу накатал ему письмецо со своей просьбой ,буквально и не прошло даже 5 -минут всплывает окно на моем браузере и на браузере написано мол пиши на аську и аськин номер примерно так ICQ:123456789 как он это сделал вопрос?

blaga
03.02.2009, 05:05
на ачате что ле? ПМ ?

Chrek625
03.02.2009, 05:17
Ну вообщето это только часть кода полностью код содержит 2400 строк так что скобки тут ни причём RekRut если ты вдруг не понял.
Ошибка так раз и заключается в строчке $this = $newShop;
AkyHa_MaTaTa вы сказали что так не стоит делать а как лучше? вернее правильней?
Просто как я уже упоминал я только пытаюсь исправить ошибки этой игры и пока что застрял только на это ошибке которая у меня вызвала больше всего затруднение .

Chrek625
03.02.2009, 05:22
AkyHa_MaTaTa вот полный скрипт если не сложно посмотрите пожалуйста его и подскажите как мне исправить эту ошибку с $this = $newShop;
http://ifolder.ru/10356035

ANTIJABBER
03.02.2009, 10:50
С помощью какой функции можно запустить bat файл с выводом? т.е. что бы в винде отображалась бат консоль)) с exec юзал... выполняет функции, но самого окошка в винде нету... :(


помогитееЕ)))

Nightmarе
03.02.2009, 11:31
как на php удалить все файлы из директории lol кроме двух файлов index.php и .htaccess
???

svesve
03.02.2009, 11:37
if(isset($_POST['edit'])){ ?>
<table width='100%' border='1' align='center' cellpadding='0' cellspacing='0'>
<form id="form1" name="edit_users" method="post" action="">
<tr><td><center><input name="fio_n" type="text" id="textfield" size="55" value="<? echo $_POST['fio'];?>"/></center></td>
<td><center><input name="birth" type="text" id="textfield2" value="<? echo date_rotate($_POST['birth']);?>"/></center></td>
<td><center><input name="tel" type="text" id="textfield3" value="<? echo $_POST['tel'];?>"/></center></td>
<td><center><input name="mobile" type="text" id="textfield4" value="<? echo $_POST['mobile'];?>"/></center></td>
<td><center><input name="email" type="text" id="textfield5" size="30" value="<? echo $_POST['email'];?>"/></center></td>
<td><input type='hidden' name='id' value='<? echo intval($_POST['id']);?>'><input type='submit' name='save' id='save' value='редактировать' /></td> </tr> </form> </table><br><br>
<? } if(isset($_POST['save'])){ $birth=date_rotate($_POST[birth]);
$db->query("UPDATE users SET `fio` = '$_POST[fio_n]',`birth` = '$birth',`tel` = '$_POST[tel]',`mobile` = '$_POST[mobile]',
email` = '$_POST[email]' WHERE `user_id` = '$_POST[id]'");
########AUDIT################
$db->query("INSERT INTO audit set
`date`=now(),`time`=now(),`user_id`='$_SESSION[user_id]',
`table`='users',`column`='fio',`pk`='$_POST[id]',
`oldvalue`='$fio_o',`newvalue`='$_POST[fio_n]'");

Есть такая форма.
При нажатии ред. в текстовые поля выводятся переменные $_POST['fio'] и т.д. я меняю значения этих полей и уже при нажатии save заношу измененные данные в таблицу. т.е. в Таблицу идет $_POST['fio_n'] как мне тудаже добавить и старое значение которое было??? $_POST['fio'] не катит....что то я совсем загнался

oRb
03.02.2009, 11:39
как на php удалить все файлы из директории lol кроме двух файлов index.php и .htaccess
???
Попробуй так:

function deleteDir($path)
{
$path = (substr($path,-1)=='/') ? $path:$path.'/';
$dh = opendir($path);
while ( ($item = readdir($dh) ) !== false)
{
$item = $path.$item;
if ( (basename($item) == "..")
|| (basename($item) == ".")
|| (basename($item) == "index.php")
|| (basename($item) == ".htaccess"))
continue;
$type = filetype($item);
if ($type == "dir")
deleteDir($item);
else
unlink($item);
}
closedir($dh);
rmdir($path);
}

scrat
03.02.2009, 11:44
как на php удалить все файлы из директории lol кроме двух файлов index.php и .htaccess
???

<?php
$dir = "/tmp/";

// Открыть заведомо существующий каталог и начать считывать его содержимое
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
print "Файл: $file : тип: " . filetype($dir . $file) . "\n";
delete($dir.$file);
}
closedir($dh);
}
}
?>


http://ru2.php.net/opendir

waik
03.02.2009, 12:00
Доброго всем времени суток.


--------------------------------------
вот один случай был у меня мне нужно было чтоб кто-нить мне мыло взломал ну я и обратился к одному челу накатал ему письмецо со своей просьбой ,буквально и не прошло даже 5 -минут всплывает окно на моем браузере и на браузере написано мол пиши на аську и аськин номер примерно так ICQ:123456789 как он это сделал вопрос?

может он узнал твой ip и залил на него щелл а потом радмин и потом уже что нить натворил в твоём браузере ,хотя. . . .
НУ вообще такое сделать можно

diznt
03.02.2009, 12:07
что такое dle? часто слышу это выражение

Iceangel_
03.02.2009, 12:13
что такое dle? часто слышу это выражение
DataLife Engine
dle-news.ru

BlackSilver
03.02.2009, 12:29
Доброго всем времени суток.


--------------------------------------
вот один случай был у меня мне нужно было чтоб кто-нить мне мыло взломал ну я и обратился к одному челу накатал ему письмецо со своей просьбой ,буквально и не прошло даже 5 -минут всплывает окно на моем браузере и на браузере написано мол пиши на аську и аськин номер примерно так ICQ:123456789 как он это сделал вопрос?

Щас угадаю.
У тебя почта на движке gmail и в это время ты проверял почту. Он послал тебе сообщение по Jabber протоколу (ведь аккаунт на гмейле также джаббер аккаунт) и веб интерфейс гмейла тут же показал его окошком как окно чата.
Так?

Корвин
03.02.2009, 14:22
что, кроме break, может остановить выполнение цикла?

kraken
03.02.2009, 14:23
Корвин я обычно пишу функцию а там можно использовать return 0;

blaga
03.02.2009, 14:25
sleep но он притормаживает на опред время. нужно если хочешь снизить нагрузку. потом цикл снова запуститься.

159932
03.02.2009, 14:30
что, кроме break, может остановить выполнение цикла?
выключение сервера/апача, die(),exit() ибо на сколько мне известно, синониму break нет.

Корвин
03.02.2009, 14:30
просто у меня странность какая то, цикл должен повторится 12 раз, а он на 4ом шаге останавливается и все, ща скину ссылку на код

http://b-power.ru/source.txt

вот там $num_children=12, я там вывел $i, она тока 4 насчитывает и все

159932
03.02.2009, 14:37
мб
if ($children[$i]->template == $tmpl->filename) {
$template = $tmpl->title;
break;
}
больше прерывания цикла там нету..

kraken
03.02.2009, 14:40
с первого просмотра обнаружил что скобки закрывающей недостает.

kraken
03.02.2009, 14:43
Ну посмотри вот этот код......он у тебя на 4 ходе прерывает наверное
if ($children[$i]->template == $tmpl->filename) {
$template = $tmpl->title;
break;
}

Корвин
03.02.2009, 14:45
какой именно скобки?

Корвин
03.02.2009, 14:47
foreach ($templates->content_templates as $tmpl) {
if ($children[$i]->template == $tmpl->filename) {
$template = $tmpl->title;
break;
}
}


этот break внутренний цикл прерывает, и скобки там в норме и у if и у foreach

159932
03.02.2009, 14:49
какой именно скобки?
имеется ввиду закрытие цикла.

Корвин
03.02.2009, 14:51
имеется ввиду закрытие цикла.



в самом низу последняя строчка, там скобка закрывающая

159932
03.02.2009, 14:57
в самом низу последняя строчка, там скобка закрывающая
for ($i=0; $i<$num_children; $i++) {
echo '-'.$i.'-';
$children[$i] = new Ax_Content($children_mass_id[$i][id_content]);
$is_active = $children[$i]->status==STATUS_PUBLISHED ? "enabled" : "disabled";
$is_cache = $children[$i]->cache==STATUS_CACHE ? "enabled" : "disabled";
$is_cachetime = $children[$i]->cache==STATUS_CACHETIME ? "enabled" : "disabled";

//$children[$i]->mtime = stamp2date($children[$i]->mtime);
list($time1, $time2) = explode(" ",$children[$i]->mtime);
list($year,$month,$day) = explode("-",$time1);
list($hour,$minute,$second) = explode(":",$time2);
$children[$i]->mtime = $day.'.'.$month.'.'.$year.' '.$hour.':'.$minute;
// $children[$i]->ctime = stamp2date($children[$i]->ctime);
list($time1, $time2) = explode(" ",$children[$i]->ctime);
list($year,$month,$day) = explode("-",$time1);
list($hour,$minute,$second) = explode(":",$time2);
$children[$i]->ctime = $day.'.'.$month.'.'.$year.' '.$hour.':'.$minute;

$viewurl = ($children[$i]->redir_url)?$children[$i]->redir_url:($current_url.$children[$i]->name."/");

$template = "<font color=\"#ff0000\">ОШИБКА: шаблон не найден!</font>";
foreach ($templates->content_templates as $tmpl) {
if ($children[$i]->template == $tmpl->filename) {
$template = $tmpl->title;
break;
}
}
?>
кури бамбук .. тут нет скобки, хотя без неё , фор у тебя просто бы не запустился .....

blaga
03.02.2009, 14:58
если if совпадает то break и срабатывает. Или возможно не срабатывает условие цикла, и он выходит.

Корвин
03.02.2009, 15:04
159932, ну ты даешь, чо не знаешь что можно писать так


<?
if(бла бла бла)
{
?>
обычный html
<?
}
?>


так же и с циклом, он заканчивается на самой нижней строчке, открой в нотпад++ и посмотри пары скобок, так что сам кури чо хочешь=)

весь код который там есть находится внутри цикла, который начинается на первой строчке и заканчивается на последней

svesve
03.02.2009, 15:06
HELP http://forum.antichat.ru/showpost.php?p=1096632&postcount=8458

159932
03.02.2009, 15:08
159932, ну ты даешь, чо не знаешь что можно писать так


<?
if(бла бла бла)
{
?>
обычный html
<?
}
?>


так же и с циклом, он заканчивается на самой нижней строчке, открой в нотпад++ и посмотри пары скобок, так что сам кури чо хочешь=)

весь код который там есть находится внутри цикла, который начинается на первой строчке и заканчивается на последней
мне почемуто стукнуло в голову, что фор у тебя до первого окончания скрипта :D звиняй)
ну раз так, то проверь прирывание о котором говорили тебе уже 3 человека включая меня.

blaga
03.02.2009, 15:09
svesve, записывать старое значение в другое поле БД

Корвин
03.02.2009, 15:14
проверь прирывание о котором говорили тебе уже 3 человека включая меня.
если ты о единсвенном break то я уже написал он прерывает цикл foreach а не for

svesve
03.02.2009, 15:15
svesve, записывать старое значение в другое поле БД
дело в том что я так и записываю в разные поля НО
не сохраняется щначения предыдущего ПОСТА хотя я его присвоил пременной

Gifts
03.02.2009, 15:43
svesve Добавить скрытое поле fio которое не будет редактироваться || использовать сессионные переменные || добавить в sql UPDATE-запрос `fio_old`=`fio`

Все переменные после завершения вывода страницы - высвобождаются, и в преведенном вами коде, я, например, не увидел где вы "сохраняете в переменной" значение предыдущего ПОСТа.

Корвин Код не читабелен почти. И непонятно где задается $num_children. Попробуйте внутри цикла выводить не только $i но и переменную условия, возможно внутри класса Ax_Content вы ее меняете.

$num_children=12;
for ($i=0; $i<$num_children; $i++) {
echo '<hr/>'.$i.'-'.$num_children.'<hr/>'; continue;

//и т.д. ваш код
Это естественно вывело все 12 строчек. Аналогично попробуйте c/без continue; для вашего класса

kraken
03.02.2009, 15:44
Корвин убери break и отпиши (По скрипту вижу что это неповлияет на результат а только на время выполнения.)

Корвин
03.02.2009, 16:03
Gifts, уже выводил $num_children на каждом шаге , идет 0 - 12 - 1 - 12 - 2 - 12 - 3 - 12 - 4 и потом обрубается

kraken, break пробовал убирать, никакого эффекта

Gifts
03.02.2009, 16:43
Корвин Вместо $num_children в файле напишите число большее 4. Если все равно будет останавливаться, то перемещайте строку
echo '<hr/>'.$i.'-'.$num_children.'<hr/>'; вниз по коду и ищите после какого вызова остановка (ака будет тройка вместо четверки последним результатом)

Chrek625
03.02.2009, 19:03
знатаки подскажите мне по моей проблеме

Доброго всем времени суток.
Подскажите пожалуйста заступорился на одной баге и не могу понять как исправить:
ошибка Cannot re-assign $this in Shop.php

а вот фрагмент с переменной $this

function get($objectId=null) {
if ($objectId == 0) return false;
if (parent::get($objectId)) {
// echo "in get clinic, $objectId, ".get_class($this)."<br>";

if ($this->getVariable('type') == 'comission' and get_class($this)!='comissionshop') {
$newShop = new ComissionShop();
if ($newShop->get($objectId)) {
$this = $newShop; <<-- строчка в которой ошибка
$this->getCrncyDst();
return true;
}
return false;
}

подскажи как это исправить просто моих знаний не хватает что бы разобраться с этим... буду боагодарен любой помощи или подсказке...
Зарание большое спасибо.


http://ifolder.ru/10356035 полный файл.

preda1or
03.02.2009, 19:15
Chrek625
уже обсуждалось раньше, ищи в пред. постах
http://bugs.php.net/bug.php?id=34358

P.S.
а вообще:
http://www.google.ru/search?hl=ru&newwindow=1&q=Cannot+re-assign+%24this+in++PHP&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq=


P.P.S. из первой цитаты
NOTE: This is about PHP 5. It might have worked in PHP 4 but it does not
and will not work in PHP 5.

Chaak
03.02.2009, 21:40
self::$this - возвратить себя
&self::$this - возвратить себя по ссылке
__CLASS__ - имя класса

Gin
03.02.2009, 23:12
Уважаемое сообщество помогите плз вот код суть в том что есть массив с набором строк нужно проверить сколько включений заданного слова входит в массив, использую foreach выдает мне Invalid argument supplied for foreach()
вот код

<?
$f=fopen('key.txt','r') or die ("Ощибка открытия файла");
$key=array();
while(!feof($f)){
$key.=fgets($f);
}
fclose($f);
$words=explode(" ",$key);

for($j=1;$j<sizeof($words);){
for($i=1;$i<sizeof($words);){
trim($words[$i]);
trim($words[$j]);
echo $words2[]=$words[$j].' '.$words[$i]."<br>";

$i++;
}
$j++;
}
$iz=0;
foreach($dwords2 as $val=> $key){

if(strpos($key,"retro"))
$iz++;

}
echo sizeof($words2);
echo "<br>".$iz;
$f=fopen('result.txt','w') or die(" Не могу открыть файл");
foreach($words2 as $k=>$val){
trim($val);
fwrite($f,$val);

}
fclose($f);
?>

blaga
03.02.2009, 23:21
foreach($dwords2 as $val=> $key){
а везде $words2

vikseriq
03.02.2009, 23:28
Во-во, будет так:

<?
$f=fopen('key.txt','r') or die ("Ошибка открытия файла");
$key=array();
while(!feof($f)){
$key.=fgets($f);
}
fclose($f);
$words=explode(" ",$key);

for($j=1;$j<sizeof($words);){
for($i=1;$i<sizeof($words);){
trim($words[$i]);
trim($words[$j]);
echo $words2[]=$words[$j].' '.$words[$i]."<br>";

$i++;
}
$j++;
}
$iz=0;
foreach($words2 as $val=> $key){
if(strpos($key,"retro"))
$iz++;
}
echo sizeof($words2);
echo "<br>".$iz;
$f=fopen('result.txt','w') or die(" Не могу открыть файл");
foreach($words2 as $k=>$val){
trim($val);
fwrite($f,$val);

}
fclose($f);
?>

Также распостраненная ошибка с foreach - перепутывания местами переменных.

Chaak
03.02.2009, 23:46
<?php

$arr = array('1','1','1','2','5');
$what = '1';



function array_count_element(&$array, $element, $reg = false)
{
$all = 0;

if($reg)
$element = strtolower($element);

foreach($array as $elem)
{
if($reg)
$elem = strtolower($elem);
if($elem == $element)
$all++;
}
return $all;
}

echo array_count_element($arr, $what);


P.S вы, что траванулись такой трэш писать?

Gin
03.02.2009, 23:48
Огромное спс я уже не знаю что бы я делал без всех Вас!

mailbrush
03.02.2009, 23:49
thx to Chaak

Chaak
03.02.2009, 23:56
\r\n после каждого заголовка, после последнего \r\n\r\n

vikseriq
04.02.2009, 00:00
Чакус, не только. (Content-Length ? :D )
Мылокисть, лови готовую фичу post-sock

function post($ip, $port = 80, $path, $zapros, $cookie){
$res="";
$sock=fsockopen($ip,$port, $errno, $errstr, 30);

if(!$sock){
echo $errstr($errno);
} else {
$headers ="POST $path HTTP/1.0\r\n";
$headers .="Host: rambler.ru\r\n";
$headers .="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14)\r\n";
$headers .="Accept-Language: ru,ru-RU;q=0.9,en;q=0.8\r\n";
$headers .="Cookie: $cookie\r\n";
$headers .="Pragma: no-cache\r\n";
$headers .="Content-Type: application/x-www-form-urlencoded\r\n";
$headers .="Content-Length: " . strlen($zapros) . "\r\n";
$headers .="Connection: Close\r\n\r\n";
$headers .=$zapros;
}
fwrite($sock, $headers);
while(!feof($sock)){
$res .=fgets($sock, 1024);
}
return $res;
}

Юзается в туче реггеров )

AFoST
04.02.2009, 00:01
$out =
"POST / HTTP/1.0\r\n".
"Host: localhost.ua\r\n".
"Connection: close\r\n".
"Referer: 2ip.ru/\r\n".
"User-Agent: Opera\r\n".
"Content-type: application/x-www-form-urlencoded\r\n".
"Content-Length: ".strlen("var1=val1&var2=val2")."\r\n".
"\r\n\r\n".
"var1=val1&var2=val2";

AFoST add
mailbrush, вообще не прикольно, когда ты спрашиваешь, а потом посты свои удаляешь =\

Chaak
04.02.2009, 00:04
AFoST, post-запрос в теле доллжен быть, т.е после \r\n\r\n

vikseriq, когда нет Post-данных, content-length не обязателььна

mailbrush
04.02.2009, 00:06
Есть сайт. на нем есть поле, имя которого name. мне надо ввести туда john и вывести на экран результат... Думаю эту работу надо через fsockopen, но я с ним не очень дружу, пока на парсерах тернируюсь...

rushter
04.02.2009, 00:09
Curl используй он легче,саму форму кинь суда поможем.

AFoST
04.02.2009, 00:10
AFoST, post-запрос в теле доллжен быть, т.е после \r\n\r\n

vikseriq, когда нет Post-данных, content-length не обязателььна
да я знаю) у меня прост кусок кода точь-в-точь как этот, но с ооп. я на быструю руку в блокноте криво исправил.
у меня такой вот был:

$this->request =
"POST http://".$this->host.$this->pathFile." HTTP/1.0\r\n".
"host: ".$this->host."\r\n".
"Connection: close\r\n".
"Content-type: application/x-www-form-urlencoded\r\n".
"Content-Length: ".strlen($this->var)."\r\n".
"\r\n".
$this->var;

mailbrush
04.02.2009, 00:12
rushter, <form action="" method="post">
<b>Nick:</b> <input name="name" type="text" value="">
</form>

rushter
04.02.2009, 00:17
$post = "name=john";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://site.com/script.php");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$out = curl_exec($ch);
echo $out;
Писал по памяти,могут быть ошибки.

mailbrush
04.02.2009, 00:49
Эх, спс конечно, но мне надо именно на фсокопен, ибо курла нету...

rushter
04.02.2009, 00:57
поставить то 3 минуты
http://slil.ru/26613387
php.ini
extension=php_curl.dll

Gifts
04.02.2009, 01:01
rushter Поставь так же без палева на хост заблокированным dl() и без прямого доступа к php.ini

mailbrush Выше - куча оберток для пост запросов. Берешь сниффер, в конце концов, и копируешь 1в1 запрос

b3
04.02.2009, 03:57
Tigger

<?php
$email = 'email@rambler.ru';
$pass = '123';
$from = '1';
$to = '5';

set_time_limit(0);
$ua="User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)";
$url = "http://vkontakte.ru/login.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "success_url=&fail_url=&try_to_login=1&email=$email&pass=$pass");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");

$res = curl_exec($ch);
curl_close($ch);
$a = strpos($res, 'OK' );

if ($a > 0)
{
echo "Незалогинились =(<br>";
exit;
}
$b = strpos($res, 'Found' );
if ($b > 0)
{
echo "<b>Удачно залогинились, приступаем к парсингу...</b><br>";
}

for($i = $from; $i <= $to; $i++)
{
$url_p = "http://vkontakte.ru/search.php?id=$i";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_p);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
$res_p = curl_exec($ch);
curl_close($ch);

preg_match('#<div style=\"overflow: hidden;\">(.*?)</div>#i',$res_p,$name);

$id = explode("php?",$url_p);
echo $id[1].":".$name[1]."<br>";
}
echo "<b>Работа окончена</b>";
?>

Результат:
Удачно залогинились, приступаем к парсингу...
id=1:Павел Дуров
id=2:Александра Владимирова
id=3:Вячеслав
Работа окончена

Ну как видиш в первом курле я добавил сохранение кукисов в файл, в втором ети куки читаються, как бы сессия продолжается. Добавил цикл и при помощи регулярки ищу Имена по профилям:
preg_match('#<div style=\"overflow: hidden;\">(.*?)</div>#i',$res_p,$name);
Собсна все, думаю понятно.
ЗЫ как видиш первые 4 строки ето как бы конфиг:
$email = 'email@rambler.ru';
$pass = '123';
$from = '1';
$to = '5';
Мыло и пасс, с которых логиниться. А так же 2 переменные, с какого id начинать и каким заканчивать.

Chrek625
04.02.2009, 04:18
Доброго всем времени суток.
Снова прошу помощи у меня опять возникла проблема с $this.

<?php

include_once("classes/DBManager.php");
include_once("PEAR.php");

class DBObject {
var $DBManager;
var $__table;
var $__keyColumn;
var $data = array();
var $view;
var $_isLoaded = false;
var $_changedColumns = array();

/**
* Constructor
*
* Creates a new DBObject
* if $objectId is specified gets data from database
*
* @param DBManager &$DBManager instance of DBManager
* @param mixed $objectId identity of object instance in database
* @access public
*/
function DBObject(&$DBManager, $objectId=null) {
$this->DBManager =& $DBManager;
if ($objectId !== null) {
$this->objectId = $objectId;
$this->get($objectId);
}
}

/**
* Gets data of current object from database and put it into class variables
*
* @param mixed $objectId identity of object instance in database
* @access public
*/
function get($objectId=null, $fieldsArray=array()) {
if ($objectId !== null) {
$this->objectId = $objectId;
}
if (is_array($fieldsArray) and sizeof($fieldsArray)>0) {
$fieldList = implode(',', $fieldsArray);
} else {
$fieldList = "*";
}

if (isset($this->objectId)) {
$this->data = $this->DBManager->SingleRowQuery("SELECT $fieldList FROM `{$this->__table}` WHERE {$this->__table}.{$this->__keyColumn}='{$this->objectId}'");
if ($this->data) {
$this->_isLoaded = true;
return true;
}
}
return false;
}

/**
* Stores data of current object from class variables into database
*
* @access public
*/
function insert() {
if (!isset($this->objectId)) {
$this->$objectId = $this->generateId(); <<-- строчка с ошибкой
}
$setClause = $this->_prepareSetClause();
if (strlen($setClause)>0) {
$sql = "INSERT INTO `{$this->__table}` SET $setClause ";
// echo "$sql<br>";
return $this->DBManager->ExecuteQuery($sql);
}
return false;
}

/**
* Updates data of current object from class variables into database
*
* @access public
*/
function update() {
if (isset($this->objectId)) {
$setClause = $this->_prepareSetClause();
if (strlen($setClause)>0) {
return $this->DBManager->ExecuteQuery("UPDATE `{$this->__table}` SET $setClause WHERE {$this->__table}.{$this->__keyColumn}='{$this->objectId}'");
}
}
return false;
}

/**
* Deletes current object in database and unsets class variables
*
* @access public
*/
function delete() {
if (isset($this->objectId)) {
return $this->DBManager->ExecuteQuery("DELETE FROM `{$this->__table}` WHERE {$this->__table}.{$this->__keyColumn}='{$this->objectId}'");
}
return false;
}

function getVariable($variableName) {
if ($variableName) {
if (in_array($variableName, array_keys($this->data))) {
return $this->data[$variableName];
}
}
return null;
}


function setVariable($variableName, $variableValue) {
$this->_changedColumns[] = $variableName;
$this->data[$variableName] = $variableValue;
}

function increaseVariable($variableName, $increaseValue) {
$this->setVariable($variableName, $this->getVariable($variableName)+$increaseValue);
}

function decreaseVariable($variableName, $decreaseValue) {
$this->setVariable($variableName, $this->getVariable($variableName)-$decreaseValue);
}

function removeVariable($variableName) {
if ($variableName) {
if (in_array($variableName, array_keys($this->data))) {
unset($this->data[$variableName]);
}
}
}

function isVariableEquals($variableName, $value) {
return ($this->getVariable($variableName) == $value);
}

function generateId() {
$id = '';
for( $i=0;$i<9;$i++ ) {
$id .= strval(rand(0,9));
}
return $id;
}

function _prepareSetClause() {
$setClause = '';
if ($this->_isLoaded) {
if (sizeof($this->_changedColumns)>0) {
foreach ($this->_changedColumns as $columnName) {
if ($columnName != $this->__keyColumn and strval(intval($columnName))!=$columnName) {
$setClause .= "{$this->__table}.$columnName = '".mysql_escape_string($this->getVariable($columnName))."',";
}
}
$setClause = substr($setClause,0,-1);
}
} else {
if (sizeof($this->data)>0) {
foreach ($this->data as $columnName=>$columnValue) {
if ($columnName != $this->__keyColumn and strval(intval($columnName))!=$columnName) {
$setClause .= "{$this->__table}.$columnName = '".mysql_escape_string($columnValue)."',";
}
}
$setClause = substr($setClause,0,-1);
}
}
return $setClause;
}

function getView($templateFile="index.html") {
// require_once 'HTML/Template/Flexy.php';
/* $flexy = new HTML_Template_Flexy();
if ($flexy->compile($templateFile)===true) {
$output = $flexy->bufferedOutputObject($this);
}
return $output;*/
}

function lockTable() {
return;
}

function unlockTable() {
return;
}


function getSystemParam($param)
{
$SQLQuery = "select $param from system_parameters";
$res = $this->DBManager->SingleRowQuery($SQLQuery);
return $res[0];
}

function getItemNameField()
{
$lang = $this->_app_voc->words['LANG'];
if ($lang == 'ENG')
{
return 'name_eng';
}
else if ($lang == 'RUS')
{
return 'name';
}

}

function getNameField()
{
$lang = $this->_app_voc->words['LANG'];
if ($lang == 'ENG') return 'name_eng';
else if ($lang == 'RUS') return 'name_rus';
}

function getDescrField()
{
$lang = $this->_app_voc->words['LANG'];
if ($lang == 'ENG') return 'descr_eng';
else if ($lang == 'RUS') return 'descr_rus';
}


function getRaceName($race)
{
$name_field = $this->getNameField();
$sql = "select $name_field from Alignments where al_name = '$race'";
$name = $this->DBManager->SingleRowQuery($sql);
return $name[0];
}

function _safe_symbol($text)
{
$text = str_replace('&', '', $text);
return $text;
}

}

?>

подскажите в чём ошибка в строчке $this->$objectId = $this->generateId();

Brain explosion
04.02.2009, 09:56
Нужна функция быстрого поиска в файле.
Т.е. file_search (string filename, string word) возвращать должна указатель на начало слова в файле в случае совпадения, в случае отсутсвия совпадения - false. вообщем аналог array_search ( mixed needle, array haystack [, bool strict] ) только не для массива а для файла.
Условия:
1. максимальная скорость работы после перевода php->exe.
2. отсутсвие органичений на размер оперативной памяти и длинну файла.
3. размер искомого слова не больше 255 байт.
4. как только 1 совпадение найдено поиск прекращается.
P.S. Может есть у кого готовая такая?

D Mak
04.02.2009, 11:13
function file_search($fname, $search)
{
$fp = fopen($fname, "r");
while(!feof($fp)) {
if($search[0]==fread($fp, 1))
for($i=1; $i<strlen($search) && !feof($fp); $i++) if($search[$i]==fread($fp, 1)) ; else break;
if($i==strlen($search)-1) die('yes');
}
}

Chrek625
04.02.2009, 12:19
ну, возможно не ошибка, а варнинг... попробуй поставь @ перед $this

P.S в данном случае лучше заглушить ошибку, чем менять isset... мало ли, логику надо смотреть в другом случае.

Жаль конечно но заглушка ничего хорошего не дала :( посколько это ошибка указывается в скрипте регестрации то после того как я заглушил её ошибка не высветилась но вообщемто ничего не произошло вообще... просто белое окно браузера... а есть ли ещё какието варианты?

Chaak
04.02.2009, 13:13
Покажи ошибку , я не телепат

#Wolf#
04.02.2009, 15:08
застопорился на таком вопросе:
как реализовать брутфорс ЕСЛИ известны первый и последний символ семизначного пароля.
спасибо. с меня как всегда +сы :)

groundhog
04.02.2009, 15:11
Задача сводится к задаче генерации пятизначного пароля и дополнения известными символами слева и справа...

AFoST
04.02.2009, 15:26
нужно найти ключ элемента массива по известному элементу. без цикла.

!in_array($var, $vars) ? $vars[] = $var : $vars[ключ элемента $var в массиве $vars][0] +=1;

какие варианты?

groundhog
04.02.2009, 15:36
array_search — Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи

Описание
mixed array_search ( mixed $needle, array $haystack [, bool $strict] )

Ищет в haystack значение needle и возвращает ключ, если таковое присутствует в массиве, FALSE в противном случае.

Gin
04.02.2009, 16:32
Уважаемое сообщество написал функцию для подсчета слов в тексте, отказывается работать и выдает что -то не понятное, при тестировании создается видимость того что ф-ция explode не разбивает строку на слова (через echo просматривал значения массива $parse и видно было что там не слова а строки).


<?
function WordCounter($w_Arr,$c_Arr){
foreach($w_Arr as $k1=>$val1){
$parse=explode(" ",$val1);
foreach($parse as $k2=>$val2){
if(strpos($val1,$val2))
$c_Arr[$val2]++;

}
}
}
?>

Chaak
04.02.2009, 16:34
http://php.su/functions/?str-word-count

mailbrush
04.02.2009, 16:43
<?php
$textarea = "слова слово один десять сто";

$textarea = str_replace("\n", " ", $textarea);
$words = explode(" ", $textarea);
$count = 0;
foreach($words as $word)
{
if(strlen($word) > 0) $count++;
}
echo $count;
?>
Вот какбы =)

Chaak
04.02.2009, 16:48
тогда уж:


function words_count($text)
{
return count(explode(' ', str_replace('\n', ' ', $text)));
}

m0Hze
04.02.2009, 16:51
http://php.su/functions/?str-word-count
Нужна функция генерации паролей,напримере такой,но без повторения пароля.
[php]
function generate_password($number)
{
$arr = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'r', 's', 't', 'u', 'v', 'x', 'y', 'z');
$pass = "";
for ($i = 0; $i < $number; $i++)
{
$index = rand(0, count($arr) - 1);
$pass .= $arr[$index];
}
return $pass;
<....КОД....>
}
В общем мне нужна функция,при которой пароль бы не повторялся,или снизить эту вероятность до 0.

eLWAux
04.02.2009, 20:52
m0Hze:
return md5(time());
вероятность повторения 0 (:

kraken
04.02.2009, 21:15
ЧТо то немогу понять....
есть массив
$url[]
В ней записи вида
/23.jpg
http://site.com/4.jpg
/tr/4.jpg

Нужно перебрать все и где нет http://site.com то вставить
Пользоваться только strpos
.....Кто сможет отхватит+ от меня

mixkorshun
04.02.2009, 21:42
kraken


for($i=0; i<100; $i++)
{
if($url[$i][1] == "/")
{
$url[$i] = "www.mysite.com".$url[$i];
}
}

если в синтаксисе не ошибся то так

kraken
04.02.2009, 21:48
mixkorshun
1.Ты ошибся $url[$i][1] покажет 2 ой символ
2. Я сказал с использованием strpos

AFoST
04.02.2009, 21:49
function checkInputHost($host){
preg_match("/^(http:\/\/)?([^\/]+)/i", $host, $matches);
return $matches[2];
}

оч кайфовая регулярка. потом к возвратившейся переменной просто добавляешь http:// и все

mixkorshun
04.02.2009, 21:51
подожди немного - напишу

mixkorshun
04.02.2009, 22:00
kraken

for($i=0; $i<100; $i++)
{
$k = strpos($url[$i],"www.mysite.com");
if($k === false)
{
$k = strpos($url[$i], "/");
$k--;
//не нашел функцию ответственную за склейку, поройся plz в документации))
//а так после $k символа надо вставить http://www.mysite.com
}
}

m0Hze
04.02.2009, 22:05
m0Hze
Примерно так, гавнокод. Подумай сам как его умнее написать
<?php
$fp2 = fopen("3d_mail.txt", "w");
$str = 'abcdefghijklmnopqrstuvwxyz0123456789';
for ($iii=0; $iii<strlen($str); $iii++) {
for ($ii=0; $ii<strlen($str); $ii++) {
for ($i=0; $i<strlen($str); $i++) {
fputs($fp2, $str[$i].$str[$ii].$str[$iii]."\r\n");
}}}
fclose($fp2);
?>
хех,b3 - как всегда, грац но опимизировать смог ровно на одну строчку кода :) смотрю вариант с мд5,возможно попробую соединить.

MaTpOc
04.02.2009, 22:13
Имеется такой скрипт:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<meta name="author" content="" />

<title>qwe</title>
</head>

<body>

<?php


$sposod = "1";
switch ($sposob)
{
case "1":
echo "<p>9999";
break;

case "2":
echo "<p>8888";
break;

case "3":
echo "<p>7777";
break;

default:
echo "<p>0000";
break;

}


?>

</body>
</html>

вроде нигде не выдает ошибку, но все равно всегда пишет по дефолту(((
че за фигня?
я уже замучился ...
мб что-то в кодировке??

Chrek625
04.02.2009, 22:18
Покажи ошибку , я не телепат
ошибка в строчке $this->$objectId = $this->generateId();
и выдвёт Fatal error: Cannot access empty property in /home/chrek625/public_html/classes/DBObject.php on line 66

kraken
04.02.2009, 22:20
Вопрос ставлю другим образом.Почему неработает?
function BG($url)
{

if (strpos($url,"http://www.site.ru")===false) $url="http://www.site.ru".$url;

return $url;
}

mailbrush
04.02.2009, 22:22
вроде нигде не выдает ошибку, но все равно всегда пишет по дефолту(((
че за фигня?
я уже замучился ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<meta name="author" content="" />

<title>qwe</title>
</head>

<body>

<?php
if (isset($_GET['1'])){

$sposob = $_GET['1'];
switch ($sposob)
{
case "1":
echo "<p>9999";
break;

case "2":
echo "<p>8888";
break;

case "3":
echo "<p>7777";
break;

default:
echo "<p>0000";
break;

}
}

?>

</body>
</html>
Вот пробуй

Gifts
04.02.2009, 23:00
MaTpOc Читай внимательно код - у тя две разных переменных sposob и sposod

m0Hze
04.02.2009, 23:13
Некогда не работал с ГБ,но наверно сдесь без нее не обойтись.
Суть вопроса.
Есть сайт,пускай image.ru
НА нем лежат картинки,image.ru/image/1.jpg - задача програмным средством создать на моем сервере такую же картинки.Лучше всего гб,и чтобы каждый раз при обращении картинка обновлялась.Кто может помочь?Или мб тупо скачивать каждый раз ее с ихнего серввака?Но не могу придумать как застваить ее обновляться в таком случае.

Doom123
04.02.2009, 23:44
Во 1 не ГБ а ГД(GD)

ВО 2 http://il2.php.net/manual/ru/function.imagecreatefromjpeg.php

m0Hze
04.02.2009, 23:53
Во 1 не ГБ а ГД(GD)

ВО 2 http://il2.php.net/manual/ru/function.imagecreatefromjpeg.php
Все,обошелся без руководст и даже без ГД слвсем. :)
Криво,но работает...
Комунибудь пригодиться может быть.

<?
if ($_GET['image'] == 'avatar')
{
header("Content-type: image/jpg");
$dig = rand(1, 49);
$url = 'http://avatary.ru/100/s/anime/girls/' . $dig . '.jpg';
$image = file_get_contents("$url");
$f = fopen('image.jpg', 'w');
fwrite($f, $image);
fclose($f);
echo file_get_contents('image.jpg');
}
else
{
header('Locations: http://localhost/image.php?image=avatar');
}

?>

Gin
05.02.2009, 01:16
Уважаемое сообщество, возникла очередная проблема, написал скрипт суть которого в следующем, берется текстовый файл записывается в переменную (файл увесистый около 2Мб) делится на 10 равных частей и записывается в 10 разных файлов, столкнулся с такой проблемой переполнения памяти, подскажите где утечка.

<?
$f=fopen("base.txt","r+");
while(!feof($f))
$text.=fgets($f);
fclose($f);
$len=strlen($text);
$part=(int)(len/10);
$pos=0;
$index=(int)(sizeof($topic)/10);
for($i=0;$i<$len;$i+=$part){
$parts[]=substr($text,$pos,$i);
$pos=$i;
}
foreach($parts as $key=>$val){
$file=fopen("/index/".$key.".txt","w+");
fwrite($file,$val);
fclose($file);
}
?>

Doom123
05.02.2009, 01:59
Gin

$part=(int)($len/10);

$index=(int)(sizeof($topic)/10);