Перейти до вмісту

PHP, всі питання тут


Повідомлень в темі: 130

#121 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ->НТУУ "КПІ"

Відправлено 30.12.2008 – 16:29

Перегляд дописуcepers (30.12.2008 13:00) писав:

Привіт! Хочу створити гостьову книгу сам навчитися, але щось непрацює, допоможіть що тет не так
Код зазвичай коментують,чого і тобі бажаю. А ще використовують MySQL для таких завдань, виходить на порядок простіше. Текстові файли зустрічав тільки для конфігурування движка.
  • 0

#122 -=Українець=-

    Профі

  • Користувачі
  • PipPipPipPipPipPipPip
  • 369 повідомлень
  • Стать:Чоловік
  • Місто:Хмельницького

Відправлено 30.12.2008 – 18:34

Я хочу створити без MYSQL
<?php
echo "<html><head><title>Guest book</title></head><body>";
echo "<h2 >Guest book</h2>";
$file_gb="gb.txt";
$file_tmp="gb_tmp.txt";
$Max=50;

// Функція для показування повідомлень з файлу gb.txt
function view ( )
{
$Messages=file('gb.txt');
echo "<p><table width=100%>";
$i=0;
foreach ($Messages as $v)
{
$i++;
if ($i % 2==0) echo"<tr><td>$v</td></tr>";
else echo "<tr><td bgcolor=red>$v</td></tr>";
if ($i==$Max) break;
}
}
if (!isset ($Post))
{
// форма для нового повідомлення
echo "<table width=100% border=1>";
echo "<tr><td><h2>New message</h2><form method=post action=$SCRIPT_NAME>";
echo "Email: <input type=text name=email>";
echo "Message: <input type=text name=mes> <input type=submit name=post></td></tr>";
echo "</form></table>";
// Виводимо повідомлення
view ( );
}
else
{
if (file_exists($file_tmp)) die ("fatal error");
// Добавляємо нове повідомлення в початок файлу
if (copy($file_gb, $file_tmp))
{
if ($w=fopen($file_gb,"w"))
{
// блокуємо доступ до основнного файлу
flock($w,2);

fwrite($w,"[".date ("d.m.Y H:i:s").$email."]".strip_tags($mes)."\n");

if (!$r=fopen($file_tmp, "r")) die ("error");
flock($r,1);
while ($mes=fgets($r,10240))
{
fputs ($w,$mes);
}
flock($r,3);
fclose($r);
flock($w,3);
fclose($w);
unlink($file_tmp);
}
}
echo " Send good write";
view ( );
} echo "</table></body></html>";
?>
  • 0

#123 Xobb

    Doctor What'son

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1481 повідомлень
  • Стать:Чоловік

Відправлено 30.12.2008 – 18:54

Якщо комусь не впадлу дебажити оцю ахінєю, то код сапьора тут:
<?php
echo "<html><head><title>Guest book</title></head><body>";
echo "<h2 >Guest book</h2>";
$file_gb="gb.txt";
$file_tmp="gb_tmp.txt";
$Max=50;

// Функція для показування повідомлень з файлу gb.txt
function view () {
	$messages = file('gb.txt');
	echo "<p><table width=100%>";
	//код далбайоба. для таких речей є цикл for
	$i=0;
	foreach ($messages as $message) {
		$i++;
		if ($i % 2==0) echo"<tr><td>$messages[$i]</td></tr>";
		else echo "<tr><td bgcolor=red>$messages[$i]</td></tr>";
		if ($i==$Max) break;
	}
	//закінчився код далбайоба
	//отак би було нормально
/*	$q = min(count($messages), $Max);
	for ($i = 0; $i < $q; $i++) {
		if ($i % 2==0) echo"<tr><td>$message</td></tr>";
		else echo "<tr><td bgcolor=red>$message</td></tr>";
	}
*/
}
//дальше просто впадлу, скоріш за все права на запис немає, тому всьо і найобується,
//але оце після роботи не єбашиться далі.
if (!isset($Post)) {
	// форма для нового повідомлення
	echo "<table width=100% border=1>";
	echo "<tr><td><h2>New message</h2><form method=post action=$SCRIPT_NAME>";
	echo "Email: <input type=text name=email>";
	echo "Message: <input type=text name=mes> <input type=submit name=post></td></tr>";
	echo "</form></table>";
	// Виводимо повідомлення
	view();
} else {
	if (file_exists($file_tmp)) die ("fatal error");
	// Добавляємо нове повідомлення в початок файлу
	if (copy($file_gb, $file_tmp))
	{
		if ($w=fopen($file_gb,"w"))	{
			// блокуємо доступ до основнного файлу
			flock($w,2);
		
			fwrite($w,"[".date ("d.m.Y H:i:s").$email."]".strip_tags($mes)."\n");
		
			if (!$r=fopen($file_tmp, "r")) die ("error");
			flock($r,1);
			while ($mes=fgets($r,10240)) {
				fputs ($w,$mes);
			}
			flock($r,3);
			fclose($r);
			flock($w,3);
			fclose($w);
			unlink($file_tmp);
		}
	}
	echo " Send good write";
	view();
} 
echo "</table></body></html>";

Повідомлення відредагував Xobb: 30.12.2008 – 18:56

  • 0

#124 -=Українець=-

    Профі

  • Користувачі
  • PipPipPipPipPipPipPip
  • 369 повідомлень
  • Стать:Чоловік
  • Місто:Хмельницького

Відправлено 30.12.2008 – 19:09

толку, всеодно непрацює, всеодно непоказує повідомлення що ти пишеш оце я незнаю як зробити.
  • 0

#125 Просто Олекса

    Абориген

  • Користувачі
  • PipPipPipPip
  • 88 повідомлень
  • Стать:Чоловік
  • Місто:Івано-Франківськ

Відправлено 03.01.2009 – 18:30

function textfilter($text)
	{
		$text=htmlspecialchars($text);
		$text=nl2br($text);
		
		$text=eregi_replace('\[li\]','<li>',$text);
		//anchors
		$text=eregi_replace('\[url\]([-_a-z01-9/\.&?=:]+)\\[/url\\]','<a href=\\1>\\1</a>',$text);  //[url] www.adres.url[/url]	--> <a href=www.adres.url>www.adres.url</a>
		
		// fonts
		$text=eregi_replace('\[b\](.+)\[/b\]','<b>\\1</b>',$text);
		$text=eregi_replace('\[h([01-9]+)\](.+)\[/h[01-9]\]','<h\\1>\\2</h\\1>',$text);
		$text=eregi_replace('\[i\](.+)\[/i\]','<i>\\1</i>',$text);
		$text=eregi_replace('\[u\](.+)\[/u\]','<u>\\1</u>',$text);
		$text=eregi_replace('\[s\](.+)\[/s\]','<s>\\1</s>',$text);
		$text=eregi_replace('\[center\](.+)\[/center\]','<center>\\1</center>',$text);
		$text=eregi_replace('\[pre\](.+)\[/pre\]','<pre>\\1</pre>',$text);
		$text=eregi_replace('\[tt\](.+)\[/tt\]','<tt>\\1</tt>',$text);
		$text=eregi_replace('\[font([-\+=# a-z01-9]*)\](.+)\[/font\]','<font \\1>\\2</font>',$text);
		
		//cites
		$text=eregi_replace('\[cite ([01-9]+)#([01-9]+)#(.+)\](.*)\[/cite\]',
		'<table bgcolor=#C0C0FF border=0><tr bgcolor=#A0A0C0><td><a href=vievtopic.php?topic=\\1#\\2
		>\\3</a></tr><tr><td>\\4</tr></table>',$text);
		$text=eregi_replace('\[cite (.+)\](.*)\[/cite\]',
		'<table bgcolor=#C0C0FF border=0><tr bgcolor=#A0A0C0><td>\\1</tr><tr><td>\\2</tr></table>',$text);
		
		// images
		$text=eregi_replace('\[img\]([-_a-z01-9/\.&?=:]+)\\[/img\\]','<a href=\\1><img src=\\1 alt=\\1 width=50% align=right></a>',$text);
		
		// smiles
		$text=eregi_replace(':))',' <img src=smiles/laugh.gif>',$text);
		$text=eregi_replace(':)',' <img src=smiles/smile.gif>',$text);
		$text=eregi_replace(':\(',' <img src=smiles/sad.gif>',$text);
		$text=eregi_replace('\[([a-z]+)\]','<img src=smiles/\\1.gif>',$text);
		
		return $text;
	}
Я написав таку функцію для бб-кодів, але вона працює неправильно. Проблема виникає коли в одному пості два слова зроблено наприклад жирними. Що тут можна змінити? Добре б було, коли б регулярні вирази шукали спочатку найкоротші рядки, але так чогось не відбувається :)
  • 0

#126 Pit

    Генеральний писар

  • Користувачі
  • PipPipPipPipPipPipPipPipPip
  • 723 повідомлень
  • Стать:Чоловік

Відправлено 12.05.2009 – 21:20

Тіки почав вчити PHP та бачу, шо те, шо я планую зробити мені получиться ше не скоро. Сподіваюсь, мені тут хтось допоможе. 1. Потрібно зробити форму на зназок швидкої відповіді на Теревенях. Тобто потрібна форма, в яку б користувачі вводили текст, натискали на кнопку ,,відправити" і те, що вони написати відображалося на сторінці.
2. Треба зробити вікно завантаження файлів, я отут нарив шаблон, але він мене не влаштовує. Можливо зможете поправити. Мені треба шоб поряд з вікном завантаження було вікно, де людина, яка завантажує файл вручну вводила назву файла. Тотім після натискання кнопки ,,завантажити,, те все діло розміщувалось на сторінці в порядку спадання по даті завантаженн.
Ось шаблон завантаження:
 
<html>
<head>
  <title>Загрузка файлів на сервер</title>
</head>
<body>
	  <h2><p><b> Форма для загрузки файлів </b></p></h2>
	  <form action="upload.php" method="post" enctype="multipart/form-data">
	  <input type="file" name="filename"><br>
	  <input type="submit" value="Завантажити"><br>
	  </form>
</body>
</html>

Код скрипта обработки формы (upload.php)
<html>
<head>
  <title>Результат завантаження файлів</title>
</head>
<body>
<?php
$filesize=1024*3*1024;
   if($_FILES["filename"]["size"] > $filesize)
   {
	 echo ("Розмір завантажуваного файлу перевищує $filesize кілобайта");
	 exit;
   }
   if(copy($_FILES["filename"]["tmp_name"],
	 "c:/temp/".$_FILES["filename"]["name"]))
   {
	 echo("Файл успешно загружен <br>");
	 echo("Характеристики файла: <br>");
	 echo("Имя файла: ");
	 echo($_FILES["filename"]["name"]);
	 echo("<br>Размер файла: ");
	 echo($_FILES["filename"]["size"]);
	 echo("<br>Каталог для загрузки: ");
	 echo($_FILES["filename"]["tmp_name"]);
	 echo("<br>Тип файла: ");
	 echo($_FILES["filename"]["type"]);
   } else {
	  echo("Ошибка загрузки файла");
   }
?>
</body>

</html>

//Атрибут entype формы определяет вид кодировки, которую браузер применяет к параметрам формы. Для того чтобы отправка файлов на сервер действовала, атрибуту entype необходимо присвоить значение multipart/form-data. По умолчанию этот атрибут имеет значение application/x-www-form-urlencoded.

Элемент ввода этой формы должен иметь тип file.

После того, как получен HTTP-запрос, содержимое загруженного файла записывается во временный файл, который создается в каталоге сервера, заданном по умолчанию для временных файлов, если другой каталог не задан в файле php.ini (директива upload_tmp_dir).

Характеристики загруженного файла доступны через двумерный массив HTTP_POST_FILES.

Cкрипт upload.php загружает файл на сервер и копирует его в каталог /temp/. Внимание! В демонстрационном примере файл загружается на диск С в директорию /temp. Поэтому в реальной работе на сервере замените путь c:/temp на тот, который нужен.

После выполнения этого скрипта выбранный для загрузки файл будет помещен в каталог c:/temp, а броузер выдаст фразу: Файл успешно загружен
Я розумію, що багато прошу, але я тільки почав вчити PHP і мені ше далеко до програмерів такого рівня як тут. Тож мені дійсно складно.
  • 0

#127 Fynjy

    Ледар

  • Користувачі
  • PipPip
  • 16 повідомлень
  • Стать:Чоловік
  • Місто:Дубно

Відправлено 05.07.2009 – 21:15

Скажіть будь-ласка чи можна відсилати cookies взалежності від обставин. if ($a==$:) {сеткукіс і так далі}. Я читав шо ні бо вони мають задаватися перед основним кодом; і ще хто зна, як сайти типу вконтакте і тд. проводять розпізнавання користувачів за допомогою кукіс? яку саме інформацію записують у них? пароль чи якийсь спец ідентифікатор, скажіть будь-ласка хто зна.
  • 0

#128 Fynjy

    Ледар

  • Користувачі
  • PipPip
  • 16 повідомлень
  • Стать:Чоловік
  • Місто:Дубно

Відправлено 13.07.2009 – 13:54

Допоможіть з питанням переадресації: як зробити подібне:
if ($a==$;) переадресація туди-то;
  • 0

#129 passika

    Ледар

  • Користувачі
  • PipPip
  • 28 повідомлень
  • Стать:Чоловік
  • Місто:Львів

Відправлено 20.02.2011 – 13:58

Перегляд дописуРуля ван Метал (19.05.2007 16:31) писав:

Може хтось знайде помилку?

Звідси


сюди має переходити і виводити вік і імя користувача



а воно не виводить ніфіга, що не так :rolleyes:

це має бути пхп скріпт ? чи сджіай ? бо я можу на пхп тобі написати якшо треба , буцькни в приват , безкоштовно =)
  • 0

#130 passika

    Ледар

  • Користувачі
  • PipPip
  • 28 повідомлень
  • Стать:Чоловік
  • Місто:Львів

Відправлено 21.02.2011 – 09:26

Перегляд дописуFynjy (13.07.2009 13:54) писав:

Допоможіть з питанням переадресації: як зробити подібне:
if ($a==$:) переадресація туди-то;

if ($a==$B)
header('location:адреса');

але шоб це працювало до того не має бути ніяких виводів типу ехо і тд інакше буде ерор
  • 0

#131 Sigon

    Ледар

  • На перевірці
  • PipPip
  • 18 повідомлень

Відправлено 15.08.2016 – 22:16

ОБЕРЕЖНО!!! ТРОЛІНГ!!!

PHP-шники, а чи то правду кажуть шо РУБІ 2 може більше ніж пхп 7?
  • 0



Кількість користувачів, що читають цю тему: 1

0 користувачів, 1 гостей, 0 анонімних