вот начал писать класс:
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](http://phpforum.ru/html/emoticons/smile.gif)
Вопрос: код, записываемый в файл, будет создаваться динамически? Или он будет браться из другого файла? Ничё не понятно из твоих слов.
Да и цель создания этого пхп-файла?
Ты опиши подробнее. А то на самом деле не понятно, чего хочешь. А когда не понятна идея, то и предложить не получается ничего.
Спустя 30 минут, 11 секунд (28.07.2010 - 21:16) _Dimarik__ написал(а):
короче. просиходит регистрация. а когда пользователь зарегестрировался, то под него создаётся его личная страничка с его данными. эта страничка и есть тот пхп-файл. теперь нормально я объяснил?
Спустя 32 минуты, 31 секунда (28.07.2010 - 21:48) _Dimarik__ написал(а):
я планеировал в файле регистрации создать объект класса Page (который я пишу), затем вызвать метод newFile(), который создаст файл.
ну а newFile по иеее должен пользоваться методом get_html().
ну как-то так я это вижу, но вот только на то как код записать пограмотней я остановился. потому что в кавычках код в fwrite() писать не очень удобно в связи с трудностью читабельности кода и его отладки.
ну а 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](http://phpforum.ru/html/emoticons/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. Посмотри результат. Обдумай его.
А потом ответь на вопрос: как ты думаешь - на форуме хранятся разные страницы для каждого юзера?
Затем замени там число 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?
Решил я посмотреть как сделали авторизацию на нашем любимом форуме. Зашёл я на свою страничку и вто что я увидел:
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 сделано?
подскажите плиз кто что знает
там отображается: vkontakte.ru/id12345
с клавиатуры ввёл:
vkontakte.ru/index.php?id=12345
после загрузки адрес прообразовался в vkontakte.ru/id12345
походу там стоят прообразования адресов, так? это при помощи header или curl сделано?
подскажите плиз кто что знает