[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запись в файл
_Dimarik__
нужно програмно создать файл php и провести в него запись.
вот начал писать класс:

public function get_html()
{
echo"<title>$name $surname</title>";
echo "
<table>
<tr>
<td>
<img src=
\"$this->bigMainImage\">
</td>
</tr>
</table>"
;
}
public function newFile($id)
{
$intPage = fopen("page/".$id.".php",w);
}


вот создам я объект этого класса. мне надо как-то дописать метод newFile, чтобы вызов этого метода полностью создавал файл, какой ндо. Естественно, в этом методе должен вызываться get_html()



Спустя 2 часа, 47 минут, 59 секунд (28.07.2010 - 19:57) _Dimarik__ написал(а):
ну можно, конечно так написать:
public function newFile($id)
{
$intPage = fopen("page/".$id.".php",w);
fwrite($intPage, "<?php include(class.Page.php);
$obj = new page(1,"фамилия", "имя", "город");
//ну и так далее код. ?>"
)

}

Но так ведь как-то криво... Может как-то иначе, более рационально можно сделать?

Спустя 10 минут, 8 секунд (28.07.2010 - 20:07) _Dimarik__ написал(а):
<?
class
newPage
{

public $bigMainImage;

public $smallMainImage;

protected $id;

//Фамилия и имя
protected $surname;
protected $name;

//город
protected $city;

//конструктор
public function __construct($id,
$surname,
$name,
$city)
{
$this->id = htmlspecialchars($id);
$this->surname = htmlspecialchars($surname);
$this->name = htmlspecialchars($name);
$this->city = htmlspecialchars($city);

//копируем большое и маленькое изображение
copy("photos/$id/1.jpg","photos/$id/Main.jpg");
copy("photos/$id/small/1.jpg","photos/$id/small/Main.jpg");
$this->bigMainImage = "photos/$id/Main.jpg";
$this->smallMainImage = "photos/$id/small/Main.jpg";
}

//вывод страницы на экран
public function get_html()
{
echo"<title>$this->name $this->surname</title>";
echo "
<table>
<tr>
<td>
<img src=
\"$this->bigMainImage\"><br>
</td>
<td>
<b>
$this->name $this->surname</b>,<br>
$this->city
</td>
</tr>
</table>"
;
}
public function newFile($id)
{
$intPage = fopen("page/".$id.".php",w);
}

}

?>

Спустя 13 минут, 50 секунд (28.07.2010 - 20:21) sergeiss написал(а):
Цитата (_Dimarik__ @ 28.07.2010 - 18:09)
нужно програмно создать файл php и провести в него запись.
вот начал писать класс:

А то, что именно класс для этого делать - это "вопрос веры" или как?
Иными словами - почему бы это не сделать без класса?

Спустя 7 минут, 52 секунды (28.07.2010 - 20:29) _Dimarik__ написал(а):
ну потому что это будет много раз использоваться, поэтому я и пишу класс. да пусть даже и без класса. Задача: создать php-файл и записать в него php-код. Причём кода много будет.
Вопрос: как это сделать рационально?

Спустя 16 минут, 24 секунды (28.07.2010 - 20:45) sergeiss написал(а):
Цитата (_Dimarik__ @ 28.07.2010 - 21:29)
Задача: создать php-файл и записать в него php-код. Причём кода много будет.

Это благое пожелание понятно smile.gif
Вопрос: код, записываемый в файл, будет создаваться динамически? Или он будет браться из другого файла? Ничё не понятно из твоих слов.
Да и цель создания этого пхп-файла?

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

Спустя 30 минут, 11 секунд (28.07.2010 - 21:16) _Dimarik__ написал(а):
короче. просиходит регистрация. а когда пользователь зарегестрировался, то под него создаётся его личная страничка с его данными. эта страничка и есть тот пхп-файл. теперь нормально я объяснил?

Спустя 32 минуты, 31 секунда (28.07.2010 - 21:48) _Dimarik__ написал(а):
я планеировал в файле регистрации создать объект класса Page (который я пишу), затем вызвать метод newFile(), который создаст файл.
ну а newFile по иеее должен пользоваться методом get_html().
ну как-то так я это вижу, но вот только на то как код записать пограмотней я остановился. потому что в кавычках код в fwrite() писать не очень удобно в связи с трудностью читабельности кода и его отладки.

Спустя 11 минут, 4 секунды (28.07.2010 - 21:59) sergeiss написал(а):
Цитата (_Dimarik__ @ 28.07.2010 - 22:16)
а когда пользователь зарегестрировался, то под него создаётся его личная страничка с его данными. эта страничка и есть тот пхп-файл. теперь нормально я объяснил?

Я тебе предлагаю 2 варианта решения сей задачи:
1. Сделать по-нормальному, без извратов, т.е. делаешь 1 (ОДНУ) ПХП-страницу на всех юзеров, которую заполняешь (когда требуется) данными из БД, для конкретного пользователя.
2. Оставить программирование в покое.

Третьего варианта нету.

PS. Извини за резкость smile.gif, но по-другому тут сложно сказать.

Спустя 42 минуты, 6 секунд (28.07.2010 - 22:41) _Dimarik__ написал(а):
ну что сразу оставить в покое? Человек ещё и месяца на пхп не программирует... А общий стаж только полтора года....
Вот интересно.. всё же по одному принципу пострено. вот допустим Павел Дуров тоже сделал одну общую страницу для всех и её заполнял данными из БД??

Спустя 5 минут, 40 секунд (28.07.2010 - 22:47) sergeiss написал(а):
Выбери ссылку http://phpforum.ru/index.php?showuser=22996
Затем замени там число 22996 на 4190. Затем замени это число на 6543. Посмотри результат. Обдумай его.

А потом ответь на вопрос: как ты думаешь - на форуме хранятся разные страницы для каждого юзера?

Спустя 2 минуты, 4 секунды (28.07.2010 - 22:49) _Dimarik__ написал(а):
...в принципе общая страница - разумное решение.. создание множества страниц - сильно будет засорять место

Спустя 36 секунд (28.07.2010 - 22:50) _Dimarik__ написал(а):
да я понял про форум.. я всё понял. сделаю как ты сказал.

Спустя 1 минута, 23 секунды (28.07.2010 - 22:51) _Dimarik__ написал(а):
нет. насколько я знаю, после вопроса - это то что передаётся методом GET. то есть есть параметр showuser, и он меняется. так?

Спустя 11 часов, 43 минуты, 26 секунд (29.07.2010 - 10:34) zolber написал(а):
Здравствуйте уважаемые! Чтобы не мусорить новыми темами, присоединюсь к вашей дискуссии, так как вопрос примерно такого же плана. Вот более детальное описание проблемы: есть пхп файл, который я с трудом написал по учебнику. Он создает xml схему выдергивая значения из базы sql. Все работает отлично, никаких нарицаний, но хотелось бы сделать так чтобы php файл при разовом, к нему обращении, генерировал xml-файл с названием типа catalog.xml. Тоесть создавал стат. страничку с результатом кода. как это можно реализовать? Очень прошу помощи, так как поиск по яндексу пользы не принес=((


прилагаю код...
<?php
$hostname = "localhost";
$username = "root";
$password = "";
$dbName = "base_1";
$category = "jot_vm_category";
$category_xref = "jot_vm_category_xref";
$userstable = "jot_vm_product";
$pricetable = "jot_vm_product_price";
$sales = "100% предоплата";


$product_category_xref = "jot_vm_product_category_xref";
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die(mysql_error());
echo"<?xml version=\"1.0\" encoding=\"WINDOWS-1251\"?>\n";
echo"<!DOCTYPE yml_catalog SYSTEM \"shops.dtd\">\n";
echo"<yml_catalog date=\"";
echo date('Y-m-d H:i');
echo"\">\n";
echo"<shop>\n";


echo"<url>http://test.ru</url>\n";
echo"<currencies>\n";
echo"<currency id=\"RUR\" rate=\"1\"/>\n";
echo"</currencies>\n";
echo"<categories>\n";
$query_cat = "SELECT * FROM $category_xref";
$res_cat = mysql_query($query_cat) or die(mysql_error());
$rw=1;
while ($row_cat=mysql_fetch_array($res_cat)) {
$cat_parent_id=$row_cat['category_parent_id'];
$cat_child_id=$row_cat['category_child_id'];
$query2 = "SELECT category_name FROM $category WHERE category_id=".$row_cat['category_child_id'];
$res_cat1 = mysql_query($query2) or die(mysql_error());
$name_cat=mysql_fetch_array($res_cat1);
$cat_name=$name_cat['category_name'];
if ($cat_parent_id==0) {
echo"<category id=\"".$cat_child_id."\">".$cat_name."</category>\n";
}
else {
echo"<category id=\"".$cat_child_id."\" parentId=\"".$cat_parent_id."\">".$cat_name."</category>\n";
}
$rw++;
}
echo"</categories>\n";
echo"<offers>\n";
$query = "SELECT * FROM $userstable";
$res = mysql_query($query) or die(mysql_error());
$rw=1;
while ($row=mysql_fetch_array($res)) {
$url="http://localhost/index.php?page=shop.product_details&option=com_virtuemart&flypage=flypage.tpl&product_id=".$row['product_id'];
$product_full_image = "http://localhost/components/com_virtuemart/shop_image/product/".$row['product_full_image'];
$product_name = $row['product_name'];
$product_s_desc = $row['product_s_desc'];
$query1 = "SELECT product_price FROM $pricetable WHERE product_id=".$row['product_id'];
$res1 = mysql_query($query1) or die(mysql_error());
$price=mysql_fetch_array($res1);
$product_price = substr($price['product_price'], 0, -3);
$query3 = "SELECT category_id FROM $product_category_xref WHERE product_id=".$row['product_id'];
$res3 = mysql_query($query3) or die(mysql_error());
$product_cat_id1=mysql_fetch_array($res3);
$product_cat_id=$product_cat_id1['category_id'];
echo"<offer available=\"true\" id=\"".$rw."\">\n";
echo"<url>".$url."</url>\n";
echo"<price>$product_price</price>\n";
echo"<currencyId>RUR</currencyId>\n";
echo"<categoryId>".$product_cat_id."</categoryId>\n";
echo"<picture>".$product_full_image ."</picture>\n";
echo"<name>".$product_name."</name>\n";
echo"<description>".$product_s_desc.".</description>\n";
echo"<sales_notes>".$sales.".</sales_notes>\n";
echo"</offer>\n";
$rw++;
}
echo"</offers>\n";
echo"</shop>\n";
echo"</yml_catalog>\n";


?>

Спустя 1 день, 2 часа, 41 минута, 41 секунда (30.07.2010 - 13:16) _Dimarik__ написал(а):
Вопрос немножко изменился, но тем не менее по этой теме. Итак, я создаю одну общую страницу для всех пользователей. Но мне надо чтобы пользователь мог добавить свою личную страничку (это когда общая страница заполнится данными из БД) в закладки. Это значит, что авторизация методом POST не подходит.
Решил я посмотреть как сделали авторизацию на нашем любимом форуме. Зашёл я на свою страничку и вто что я увидел:
http://phpforum.ru/index.php?showuser=22996
то есть разработчики этого форума сделали авторизацию с использованием метода GET, тем самым передавая id и md5(пароль).
Как можно сделать авторизацию таким образом, чтобы был видет только id, например как это сделано vkontakte. Точнее там даже лучше. там нет никаких
http://vkontakte.ru/index.php?id=123456789
там всё очень просто
http://vkontakte.ru/123456789
Ведь нельзя пароль передавать POST, а id GET.так?
или же это сделано с помощью заголовков header, которыми можно управлять url?

Спустя 22 минуты, 23 секунды (30.07.2010 - 13:38) _Dimarik__ написал(а):
у меня такое предположение как можно сделать. Может можно проверить логин и пароль с помощью JavaScript на этой странице, а если пользователь авторизовался, то с помощью GET передать логин?

Спустя 3 часа, 22 минуты, 32 секунды (30.07.2010 - 17:01) _Dimarik__ написал(а):
глянул я в контакт.
там отображается: vkontakte.ru/id12345
с клавиатуры ввёл:
vkontakte.ru/index.php?id=12345
после загрузки адрес прообразовался в vkontakte.ru/id12345
походу там стоят прообразования адресов, так? это при помощи header или curl сделано?
подскажите плиз кто что знает
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.