[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Страна>Регион>Город selectы
Enkei
Искал по темам, что то не увидел похожего (хотя долно быть). Вообщем делаю такое дело: выбираешь страну, ниже исходя из предыдущего результата выбираешь регион, и город напоследок также исходя из предыдущего резульата. Для страны есть следующий код:
<?php
$host='localhost'; // имя хоста
$database='baza'; // имя базы данных
$user='admin'; // заданное вами имя пользователя
$pswd='1234'; // заданный вами пароль

$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");
$query = "SELECT `name` FROM `country`";
$res = mysql_query($query);
?>
<select>
<option value='null'>- Выберите город -</option>
<?php
while($row = mysql_fetch_array($res)){
echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>\n";
}
?>
</select>

Как теперь имея три таблицы (страна, регион, город) и три ключевых поля в этих таблицах country_id, region_id, city_id организовать чтобы отобразились в селекте регионы исходя из того какую страну выбрали. Понимаю что хочу все и сразу, но хотя бы натолкните на мысль или похожий топик. Заранее благодарен.




Спустя 57 минут, 31 секунда (26.02.2009 - 23:03) twin написал(а):
Ну а в чем затыка? Подставляй по очереди иды в селекты и выводи нужный список в следующий... Вот тут посмотри, как сделать, чтоб не сбрасывлись селекты, а код примерно так:
PHP
<?
$query = "SELECT `country_id`, `name` FROM `country`";
$res = mysql_query($query);
?>
<select name="country">
<option value='null'>- Выберите город -</option>
<?php
while($row = mysql_fetch_array($res))
echo "<option <?php echo sel(".$row['country_id'].") ?>value='" . $row['country_id'] . "'>" . $row['name'] . "</option>\n";

?>
</select>

<?
if(isset($_POST['country']))
{
$query = "SELECT `region_id`, `name` FROM `region`WHERE `country_id`='".(int)$_POST['country'];
$res = mysql_query($query);
#И так далее
Только таблицы должны быть связаны.

Спустя 23 часа, 35 минут, 21 секунда (27.02.2009 - 22:38) Guest написал(а):
У меня не получается
Parse error: syntax error, unexpected

Enkei если у тебя все получится, выложи здесь код, плиз, а то уже хоть вешайся

Спустя 1 час, 8 минут, 42 секунды (27.02.2009 - 23:47) Enkei написал(а):
PHP
<?php
// указываем параметры для подключения к MySQL
$host='localhost'; // имя хоста
$database='baza'; // имя базы данных
$user='admin'; // заданное вами имя пользователя
$pswd='0674'; // заданный вами пароль
// подключаемся к MySQL
$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");
// выбираем столбец name из таблицы country
$query = "SELECT `name` FROM `country`";
$res = mysql_query($query);
?>
<!-- создаем форму select для выбора страны -->
<select>
  <option value='null'>- Выберите страну -</option>
 <?php
// выводим все строки из столбца name таблицы country
    while($row = mysql_fetch_array($res)){
      echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>\n";
    }

Вот до этого момента все получается замечательно. Список выпадает со странами!
Дальше немного не пойму что делать чтоб регионы выпали. Надо разобраться с кодом для того чтоб селекты не сбрасывались, вот:
PHP
<?php
function sel
($a)
{
$b = isset($_POST['sort'])?$_POST['sort']:NULL;
if(
$a == $b)
return 'selected="selected"';
}

HTML
<option  <?php echo sel(1) ?> value="1">Выбрать</option>

Последняя строка это в селекте выбора страны прописать надо, и что почему именно 1 в этой же строке?

Спустя 1 день, 6 минут, 14 секунд (28.02.2009 - 23:53) Guest написал(а):
нашла вот такой код.
PHP
<?php
 session_start
();
 include
'connect1.php';
  
if(
$_POST['country']=='' && $_POST['region']=='' && $_POST['city']==''){
 
?>
  
 <form action="select.php" method="post" name="post">
 <input type="hidden" name="country" value="ok">
 <select name="country" onChange="submit();">
 <option value="">Выберите страну</option>
<?
 $result 
mysql_query("SELECT DISTINCT(`country`) FROM `city` ORDER BY `country`");
 while (
$row mysql_fetch_row($result)) {
     echo 
"<option value=\"$row[0]\">$row[0]</option>\n";
     }
 
?>
</select>
 </form>
  
<?php
}else if($_POST['region']=='' && $_POST['city']==''){
?>
 
<form action="select.php" method="post" name="post">
<input type="hidden" name="region" value="ok">
<select name="region" onChange="submit();">
<option value="">Выберите область</option>
<?
$country 
mysql_real_escape_string($_POST['country']);
$_SESSION['country'] = $country;
$result mysql_query("SELECT DISTINCT(`region`) FROM `city` WHERE `country`='$country' ORDER BY `region`");
 while (
$row mysql_fetch_row($result)) {
     echo 
"<option value=\"$row[0]\">$row[0]</option>\n";
     }
?>
</select>
</form>
  
 <?php
 
}else if($_POST['city']==''){
 
?>
 
 <form action="select.php" method="post" name="post">
 <input type="hidden" name="city" value="ok">
 <select name="city" onChange="submit();">
 <option value="">Выберите город</option>
 <?
 $region 
mysql_real_escape_string($_POST['region']);
 
$_SESSION['region'] = $region;
 
$result mysql_query("SELECT `city` FROM `city` WHERE `region`='$region' ORDER BY `city`");
 while (
$row mysql_fetch_row($result)) {
    echo 
"<option value=\"$row[0]\">$row[0]</option>\n";
    }
 
?>
 </select>
 </form>
  
 <?php
}else if(($_SESSION['region']!='') && ($_POST['city']!='')){
  
$country $_SESSION['country'];
$region $_SESSION['region'];
 
$city $_POST['city'];
$var_7 "$region/$city";
echo
"<input type='text' name='city_7' id='city_7' value='$country / $region / $city' size='45' readonly>";
  
 }
   

Теперь возник вопрос какой скрипт должен быть в select.php ????

Спустя 17 минут, 57 секунд (1.03.2009 - 00:11) twin написал(а):
Базу свою покажи, так ничего сказать нельзя. А скрипт это тот же самый, надо на себя же отправлять. SQL в студию, я помогу тогда.

Спустя 1 час, 5 минут, 38 секунд (1.03.2009 - 01:17) lira1 написал(а):
Базу скачивала отсюда http://wiz.su/2008/03/20/strany-regiony-goroda/

Спустя 6 часов, 36 минут, 32 секунды (1.03.2009 - 07:54) twin написал(а):
Ну вот, пользуйтесь.
PHP
<?php
// указываем параметры для подключения к MySQL
$host='localhost'; // имя хоста
$database='baza'; // имя базы данных
$user='admin'; // заданное вами имя пользователя
$pswd='0674'; // заданный вами пароль
// подключаемся к MySQL
$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");
@
mysql_query("SET NAMES 'utf8'");
// выбираем столбец name из таблицы country
$query = "SELECT * FROM `country`";
$res = mysql_query($query);
function sel_country($a)
{
$b = isset($_POST['country'])?$_POST['country']:NULL;
if(
$a == $b)
return 'selected="selected"';
}

?>

<!-- создаем форму select для выбора страны -->
<form id="frm" action="" method="post">
<select name="country" onchange="document.getElementById('region').selected='selected';
document.getElementById('frm').submit()" >
  <option value='null'>- Выберите страну -</option>
 <?php
// выводим все строки из столбца name таблицы country
    while($row = mysql_fetch_array($res))
      echo "<option ".sel_country($row['country_id'])." value='" . $row['country_id'] . "'>" . $row['name'] . "</option>\r\n";
?>
</select>
<?php
function sel_region
($a)
{
$b = isset($_POST['region'])?$_POST['region']:NULL;
if(
$a == $b)
return 'selected="selected"';
}
if(isset(
$_POST['country']))
{
$query = "SELECT * FROM `region` WHERE `country_id`='".(int)$_POST['country']."'";
$res = mysql_query($query);

echo "<select name=\"region\" onchange=\" document.getElementById('frm').submit();\" >
  <option  id=\"region\" value='0'>- Выберите pегион -</option>"
;

    while($row = mysql_fetch_array($res))
      echo "<option ".sel_region($row['region_id'])." value='" . $row['region_id'] . "'>" . $row['name'] . "</option>\r\n";

echo "</select>";
}

function sel_city($a)
{
$b = isset($_POST['city'])?$_POST['city']:NULL;
if(
$a == $b)
return 'selected="selected"';
}
$region = isset($_POST['region'])?$_POST['region']:NULL;
if(
$region && $region !== 0)
{
$query = "SELECT * FROM `city` WHERE `region_id`='".(int)$_POST['region']."'";
$res = mysql_query($query);

echo "<select id=\"city\" name=\"city\" onchange=\"document.getElementById('frm').submit()\" >
  <option  value='0'>- Выберите город -</option>"
;

    while($row = mysql_fetch_array($res))
      echo "<option ".sel_city($row['city_id'])." value='" . $row['city_id'] . "'>" . $row['name'] . "</option>\r\n";

echo "</select>";
}
$city = isset($_POST['city'])?$_POST['city']:NULL;
if(
$city && $city !== 0)
{
$query = "SELECT `name` FROM `city` WHERE `city_id`='".(int)$_POST['city']."' LIMIT 1";
$res = mysql_query($query);
echo "<h1>Хочу в ",mysql_result($res,0,0),"</h1>";
}
?>
</form>

Спустя 9 часов, 17 минут, 58 секунд (1.03.2009 - 17:12) twin написал(а):

Спустя 34 минуты, 41 секунда (1.03.2009 - 17:46) lira1 написал(а):
УРА !!!!! БОЛЬШОЕ СПАСИБО!!! ВСЕ ПОЛУЧИЛОСЬ !!!! biggrin.gif biggrin.gif biggrin.gif


Спустя 3 часа, 24 минуты, 46 секунд (1.03.2009 - 21:11) twin написал(а):
Ой, мама... Что это? smile.gif Что нужно получить то в итоге? Там же город и так выводится посмледней строчкой... Ну замени echo на $country и всё.
PHP
<?
$query = "SELECT `name` FROM `city` WHERE `city_id`='".(int)$_POST['city']."' LIMIT 1";
$res = mysql_query($query);
# echo "<h1>Хочу в ",mysql_result($res,0,0),"</h1>";
$country = mysql_result($res,0,0);

Только country по английски значит страна, а не город.

Спустя 42 минуты, 56 секунд (1.03.2009 - 21:54) lira1 написал(а):
Да .это я скрипт знакомств купила, вот и маюсь, пытаюсь его переделать.
Тут просто страны были только, я на города передела а уж country на city менять все страницы кода...

А сейчас я хочу вставить твой файл, но как вот это все поменять чтоб скрипт рабочий остался


Вот как это выглядит сейчас
а код здесь А здесь мой старый код

Вот я хочу в этот код вставить твой. Но как?

Спустя 17 минут, 48 секунд (1.03.2009 - 22:12) twin написал(а):
Засунуть его туда проблемы нет, только возникнет проблема с первыми полями. Они слетят, если выбирать город, потому что страница перезагрузится. Обычно такие штуки делаются на аяксе. Или надо предпринять меры, чтоб сохранить значения. А сама проблема в том, что неправильно указан путь до подключаемого файла.

Спустя 21 минута, 48 секунд (1.03.2009 - 22:33) sergeiss написал(а):
Цитата (twin @ 1.03.2009 - 22:12)
Засунуть его туда проблемы нет, только возникнет проблема с первыми полями. Они слетят, если выбирать город, потому что страница перезагрузится. Обычно такие штуки делаются на аяксе. Или надо предпринять меры, чтоб сохранить значения.

Это сделать не просто, а очень просто smile.gif. И я думаю, что девушке лучше будет (по крайней мере на данном этапе) в этом направлении двигать, чем постигать аякс.

Другой вариант - использовать джаваскрипт. А именно, подготовить все данные для списков, с указанием каких-то дополнительный признаков. По сути, выгрузить нужную часть БД пользователю на страницу smile.gif И потом, используя джаваскрипт, формировать конкретные списки "на лету" на основании выбранных значений. Минусы - надо, чтобы джаваскрипт был включен у клиента, и объем подргружаемых данных будет сразу максимальный. Но есть и плюс этого подхода - работать будет очень быстро, т.к. не будет многократных обращений к серверу.

Спустя 40 секунд (1.03.2009 - 22:34) twin написал(а):
Тогда как выбирать? Всю базу вытащить что ли в селекты, полметра? Не, надо просто сделать, что бы поля не сбрасывались. Как я понял, вся эта скриптина на файлах сделана? Надо взять её и выкинуть. И забыть как страшный сон. Проще новый написать, чем тот поправить. Что он должен делать опиши, я помогу состряпать.

Спустя 1 час, 45 минут, 27 секунд (2.03.2009 - 00:20) twin написал(а):
Так уж и спец... Ты мне льстишь. smile.gif Это совсем не сложно.
Ну и давай по порядку. Сначала нужно определиться, какие нужно собрать данные, и что потом с ними надо делать, что бы на основе этого спроектировать базу.
Имеем:
1.Имя
2.Пол
3.Возраст
4.Город
5.Мыло
6.Телефон
7.Фотки (сколько?)


Нужно:
1. Найти по запрашиваемым данным. То бишь
а)Всех девочек
б)Всех мальчиков
в)Всех в городе
г)Всех девочек в стране
е)Всех девочек в регионе
е)Всех девочек в городе
ж)Всех мальчиков в стране
з)Всех мальчиков в регионе
и)Всех мальчиков в городе

Что еще, сразу добавляй, потом сложнее будет.

Спустя 37 минут, 45 секунд (2.03.2009 - 00:57) lira1 написал(а):
ЭТО ОЧЕНЬ СЛОЖНО) ИСКРЕННЕ ТЕБЕ ЗАВИДУЮ!
Расскажи как ты научился? Чтоб по твоему пути идти)

Вот этот злополучный скрипт здесь развернут http://www.profsvaha.ru

Вот страны эти злополучные, анкета дурацкая и чтоб ее посмотреть нужно искать через поиск , а так не посмотришь, и поднятие анкеты по моему от руки и vip( ну это уже биллинг. А эти оранжевые блоки вообще ужас, скрипту видать лет 10, ну и что я хотела за 5$?! ohmy.gif Ну дизайн это другая тема...
Вообще хочу такой как mamba, но понимаю что не реально rolleyes.gif .


Вот анкеты
Анкета
Регистрация

Поиск по ж,м, пара мж, пара мм), возрасту, городу.
И расширенный с добавлением рост, вес, цель знакомства.

Жду с нетерпением ответа!


Спустя 58 минут, 25 секунд (2.03.2009 - 01:56) twin написал(а):
Ну на счет ораньжегвого цвета - это явно не ко мне :) Я в верстке дубовый, а рисовать вообще не умею.
А что касается мамбы (не знаю правда что такое), то если нас с форума не выгонят, потому что это не так быстро, то слепим не хуже. :) За одно и научишься.

По форме, все там тебя устраивает, или что то надо еще?
Если ничего не надо, то таблица будет примерно такая:
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`login` varchar(250) NOT NULL,
`name` varchar(250) NOT NULL,
`password` varchar(32) NOT NULL,
`hash` varchar(32) NOT NULL,
`active` tinyint(4) NOT NULL,
`email` varchar(250) NOT NULL,
`sex` tinyint(4) NOT NULL,
`day` int(2) NOT NULL,
`month` int(2) NOT NULL,
`year` int(4) NOT NULL,
`country` varchar(250) NOT NULL,
`region` varchar(250) NOT NULL,
`city` varchar(250) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
ну добавить в принципе не сложно пару-тройку полей.

Спустя 6 часов, 56 минут, 53 секунды (2.03.2009 - 08:53) lira1 написал(а):
А ты когда здесь бываешь, и вообще в инете может лучше в аске. Чтоб я сразу могла все спрашивать?

Спустя 9 минут, 15 секунд (2.03.2009 - 09:02) sergeiss написал(а):
Цитата (lira1 @ 2.03.2009 - 08:53)
А ты когда здесь бываешь, и вообще в инете может лучше в аске. Чтоб я сразу могла все спрашивать?

Это будет не совсем корректно. Потому что тема может быть полезна другим людям. Кто-то что-то может уточнить, если ему тоже интересно, но он что-то недопонял.
И также кто-то что-то может добавить, если сочтет нужным. И задавать вопросы и отвечать можно тогда, когда удобно.
Собственно, это и есть преимущества форума smile.gif Не все, но основные.

Спустя 9 минут, 20 секунд (2.03.2009 - 09:11) sergeiss написал(а):
Цитата (lira1 @ 2.03.2009 - 09:04)
А то весь форум узнает какая я дура))

Но в этом есть и плюс - все увидят, какая ты умная, потому что быстро учишься (а ты же будешь быстро учиться?) wink.gif
Что касается обучения, то лучше сначала почитать этот форум. По возможности побольше. Тогда многие вопросы отпадут, потому что станут понятными.
Также очень полезно будет скачать качественный хэлп. Например, отсюда: http://www.php.net/download-docs.php, выбери там формат HTML Help file, на русском. Скачай и читай. Там много написано, в т.ч. и кратко про все основы языка. И очень качественно написано.

Спустя 34 минуты, 4 секунды (2.03.2009 - 09:45) twin написал(а):
В аське я к сожалению не смогу с тобой заняться по трем причинам. Первую озвучили, вторая это то, что я впринципе постоянно занят, тут бываю, когда отдохнуть хочется. А третья банальна - у меня аська глючит.
Вообще все это ты будешь делать сама, а тут тебе подскажут как. Чем больше народу, тем лучше. Я же тоже не все умею, за одно и сам подучус. smile.gif
А на мамбе ничего особо сложного не нашел.
Делай форму пока, такую как нравится. Прям на чистом HTML. И таблицу забей в базу.

Спустя 18 минут, 51 секунда (2.03.2009 - 10:04) lira1 написал(а):
Форму у меня сделаны. Будем делать как на Мамбе? rolleyes.gif
Что мне дальше делать?

Спустя 4 минуты, 39 секунд (2.03.2009 - 10:09) lira1 написал(а):
У меня на хостинге кодировок utf много
Сопоставление соединения с MySQL
какую выбирать general_ci
unicode ci

Спустя 2 минуты, 5 секунд (2.03.2009 - 10:11) lira1 написал(а):
и про mysql что почитать чтоб я поняла что в этой таблице?

Спустя 32 минуты, 3 секунды (2.03.2009 - 10:43) Bezdna написал(а):
Цитата (lira1 @ 2.03.2009 - 07:09)
У меня на хостинге кодировок utf много


Xотя твой скрипт в cp-1251, лучше перевести его в кодировку utf-8, как наиболее "универсальную". Как это сделать не раз обсуждалось на форуме.

Спустя 33 минуты, 32 секунды (2.03.2009 - 11:16) twin написал(а):
Форму чистую отдельным файлом в кодировке utf-8 выложи где нибудь отдельно. В отдельном каталоге. Там собирать будем. Если есть возможность сделать поддомен, то лучше сделай и туда. Кодировку базы utf8_general_ci Мож кто посоветует другую, я к этой привык.

Спустя 30 минут, 12 секунд (2.03.2009 - 11:47) twin написал(а):
Цитата
и про mysql что почитать чтоб я поняла что в этой таблице?

Вот тут по мускулу почитай.

Спустя 2 часа, 35 минут, 38 секунд (2.03.2009 - 14:22) sergeiss написал(а):
Цитата (lira1 @ 2.03.2009 - 14:20)
А можно просто в http создать папку и туда все это складывать?

Что "это" складывать, и какими средствами потом "это" оттуда забирать?

Спустя 8 минут, 24 секунды (2.03.2009 - 14:31) twin написал(а):
Да забирать ничего не надо. Просто сделай отдельную папку. Кстати "папка", это придумал майкрософт, вообще грамотно говорить каталог или директория. А нужно это для того, что бы ничего твоего не испортить. будем все с нуля делать.

Спустя 7 часов, 30 минут, 36 секунд (2.03.2009 - 22:01) Enkei написал(а):
twin , у тебя таблицы в какой кодировке? Понимаю что глупый вопрос но не вкурю уже целый час, ютф8 н не отображает как надо, ср1251 тоже не кажет, раньше обычно между двумя этими выбирал и все гуд, а теперь чес какой то...

Спустя 19 минут, 45 секунд (2.03.2009 - 22:21) twin написал(а):
Enkei
кодировка utf-8, сопоставление utf8_general_ci а не кажет наверно потому, что SET NAMES не прописал. Вот так:
PHP
<?
mysql_query("SET NAMES 'utf8'");
lira1 Щас, сек. Посмотрим.


Спустя 1 минута, 26 секунд (2.03.2009 - 22:22) Bezdna написал(а):
twin а зачем в твоём файле 16 пустых строк в конце? Потом будете мучаться с "Cannot header information". biggrin.gif

Спустя 1 минута, 38 секунд (2.03.2009 - 22:24) Enkei написал(а):
twin , ой пасибочки, у меня таблица называется NAME а у тебя NAMES, вот в чем коленвал был )))

Спустя 46 минут, 56 секунд (2.03.2009 - 23:11) twin написал(а):
Bezdna
Не, не будем. Я волшебное слово знаю. Вот посмотришь. smile.gif А так просто удобно читать, не люблю, когда все вниз прилеплено.
lira1
Теперь все это удали, а вот это распакуй туда.
Знач, смотри. Кодировка всех файлов должна быть utf-8. Ты наверняка, судя по почерку, пользуешься дримвейвером. Настрой его так, что бы кодировка страниц по умолчанию была такой. Там где то есть Редактировать -> Внешний редактор -> и где то там не помню. Кроме того, у него есть одна медвежачья услуга, он стили пишет кирилицей. следи за этим, лучше привыкай писать руками. А то будут казусы.
Ну в общем распакуй, осмотрись и задавай вопросы.

Спустя 45 минут, 8 секунд (2.03.2009 - 23:56) lira1 написал(а):
Как сейчас города в форму анкеты вставить?
Deny from all что это значить?


Спустя 4 минуты, 51 секунда (3.03.2009 - 00:01) Bezdna написал(а):
Цитата (lira1 @ 2.03.2009 - 20:56)
Deny from all что это значить?


Запретить просмотр всем.

Спустя 18 минут, 15 секунд (3.03.2009 - 00:19) twin написал(а):
Deny from all Это для того, что бы файл не набрали в адресной строке напрямую. Неча делать. Погоди с анкетой, тут дел до анкеты гора еще.
Остальное все понятно?
Теперь тебе нужно сделать конфигурационный файл (в миру конфига). Это для того, что бы все настройки можно было менять в одном месте. Начнем с этого:
PHP
<?php
# Выставляем уровень ошибок
error_reporting(E_ALL & ~E_NOTICE);

# Префикс таблиц БД
define('PREFIX','mamba_');

# Подключение к серверу MySQL
define('MYSQL_SERVER', 'localhost');

define('MYSQL_USER', 'test');
define('MYSQL_PASSWORD', 'test');
define('MYSQL_DATABASE', 'test');


@
mysql_connect( MYSQL_SERVER, MYSQL_USER, MYSQL_PASSWORD ) or die(NO_CONNECT);

@
mysql_select_db( MYSQL_DATABASE )or die(NO_DB);

@
mysql_query("SET NAMES 'utf8'");

# Кодировка сайта
header("Content-Type: text/html; charset=utf-8");
Сделай файл config.php Тока про кодировку файла не забывай.

Спустя 22 минуты, 15 секунд (3.03.2009 - 00:42) Bezdna написал(а):
Может стОит вместо
PHP
@mysql_query("SET NAMES 'utf8'");

вставить
PHP
@mysql_query('SET NAMES utf8');
@
mysql_query('SET CHARACTER SET utf8');
@
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');

Спустя 2 минуты, 12 секунд (3.03.2009 - 00:44) Enkei написал(а):
Теперь возникли проблемы с тем, как загнать этот скрипт в подготовленную мной htm страницу, первая часть получается где выбрать страну, а вот вторая часть кода где идет выбор региона и города выполнена в одном блоке <?php...?> , помогите плиз разбить вторую часть на две чтобы отдельно в каждую ячейку мона было вставить. Вот скрипт:
PHP
<?php
// указываем параметры для подключения к MySQL
$host='localhost'; // имя хоста
$database='baza'; // имя базы данных
$user='admin'; // заданное вами имя пользователя
$pswd='0674'; // заданный вами пароль
// подключаемся к MySQL
$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");
@
mysql_query("SET NAME 'utf8'");
// выбираем столбец name из таблицы country
$query = "SELECT * FROM `country`";
$res = mysql_query($query);
function sel_country($a)
{
$b = isset($_POST['country'])?$_POST['country']:NULL;
if(
$a == $b)
return 'selected="selected"';
}

?>

<!-- создаем форму select для выбора страны -->
<form id="frm" action="" method="post">
<input id="new_city" name="new_city" type="hidden" />
<input id="new_reg" name="new_reg" type="hidden" />
<select name="country" onchange="document.getElementById('new_city').value='1';document.getElementById('frm').submit()" >
  <option value='0'>- Выберите страну -</option>
 <?php
// выводим все строки из столбца name таблицы country
    while($row = mysql_fetch_array($res))
      echo "<option ".sel_country($row['country_id'])." value='" . $row['country_id'] . "'>" . $row['name'] . "</option>\r\n";
?>
</select>
<?php
function sel_region
($a)
{
$b = isset($_POST['region'])?$_POST['region']:NULL;
if(
$a == $b)
return 'selected="selected"';
}
if(isset(
$_POST['country']))
{
$query = "SELECT * FROM `region` WHERE `country_id`='".(int)$_POST['country']."'";
$res = mysql_query($query);

echo "<select name=\"region\" onchange=\"document.getElementById('new_reg').value='1';document.getElementById('frm').submit();\" >
  <option  id=\"region\" value='0'>- Выберите pегион -</option>"
;

    while($row = mysql_fetch_array($res))
      echo "<option ".sel_region($row['region_id'])." value='" . $row['region_id'] . "'>" . $row['name'] . "</option>\r\n";

echo "</select>";
}

function sel_city($a)
{
$b = isset($_POST['city'])?$_POST['city']:NULL;
if(
$a == $b)
return 'selected="selected"';
}
$region = isset($_POST['region'])?$_POST['region']:NULL;
if(
$region && empty($_POST['new_city']))
{
$query = "SELECT * FROM `city` WHERE `region_id`='".(int)$_POST['region']."'";
$res = mysql_query($query);

echo "<select id=\"city\" name=\"city\" onchange=\"document.getElementById('frm').submit()\" >
  <option  value='0'>- Выберите город -</option>"
;

    while($row = mysql_fetch_array($res))
      echo "<option ".sel_city($row['city_id'])." value='" . $row['city_id'] . "'>" . $row['name'] . "</option>\r\n";

echo "</select>";
}
$city = isset($_POST['city'])?$_POST['city']:NULL;
if(
$city && empty($_POST['new_city'])&& empty($_POST['new_reg']))
{
$query = "SELECT `name` FROM `city` WHERE `city_id`='".(int)$_POST['city']."' LIMIT 1";
$res = mysql_query($query);
echo "<h1>Хочу в ",mysql_result($res,0,0),"</h1>";
}


Вот htm форма:

HTML
<body>

<table border="0">
<tr>
<td><label for="country">Страна: </label></td>
<td><select><option value='null'>- Выберать страну -</option></select></td>
</tr>
<tr>
<td><label for="country">Регион: </label></td>
<td><select><option value='null'>- Выберать регион -</option></select></td>
</tr>
<tr>
<td><label for="country">Город/деревня: </label></td>
<td><select><option value='null'>- Выберать город -</option></select></td>
</tr>

</table></body>

Спустя 10 минут, 53 секунды (3.03.2009 - 00:55) twin написал(а):
Цитата
Может стОит вместо
Ну лишним не будет, хотя и так проблем обычно нет.
Enkei
Вот какая нетерпеливая. Давй сначала со структурой разберемся, потом вставим что хошь. Там до вставки еще пахать неперепахать. Или ты не хочешь как на мамбе, хочешь как попало слепить?
Упс, обознался biggrin.gif
Enkei
Вставить просто инклюдом можно. Следи за процессом.

Спустя 2 минуты, 28 секунд (3.03.2009 - 00:57) Enkei написал(а):
twin это я! я не та которая мамбу собирает ))) мне вставить в форму мою города и усе, а ян емогу чего то, не могу второй блок на два разбить , отдельно регион и город чтоб в ячейку вставить.

Спустя 3 минуты, 9 секунд (3.03.2009 - 01:00) twin написал(а):
Разбей на части и подключай в ячейки, куда нужно. Только файл должен быть с расширением .php или подключаться к исполняемому или в настройках сервера поменять кой чего надо.

Спустя 6 минут, 32 секунды (3.03.2009 - 01:07) twin написал(а):
Или так:
PHP
<?php
// указываем параметры для подключения к MySQL
$host='localhost'// имя хоста
$database='baza'// имя базы данных
$user='admin'// заданное вами имя пользователя
$pswd='0674'// заданный вами пароль
// подключаемся к MySQL
$dbh mysql_connect($host$user$pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");
@
mysql_query("SET NAME 'utf8'");
// выбираем столбец name из таблицы country
$query "SELECT * FROM `country`";
$res mysql_query($query);
function 
sel_country($a)
{
$b = isset($_POST['country'])?$_POST['country']:NULL;
if(
$a == $b)
return 
'selected="selected"';
}

?>
<body>
<!-- создаем форму select для выбора страны -->
<form id="frm" action="" method="post">
<input id="new_city" name="new_city" type="hidden" />
<input id="new_reg" name="new_reg" type="hidden" />
<table border="0">
<tr>
<td><label for="country">Страна: </label></td>
<td>
<select name="country" onchange="document.getElementById('new_city').value='1';document.getElementById('frm').submit()" >
  <option value='0'>- Выберите страну -</option>
<?php
// выводим все строки из столбца name таблицы country
    
while($row mysql_fetch_array($res))
      echo 
"<option ".sel_country($row['country_id'])." value='" $row['country_id'] . "'>" $row['name'] . "</option>\r\n";
?>
</select>

</td>
</tr>
<tr>
<td><label for="country">Регион: </label></td>
<td>
<?php
function sel_region($a)
{
$b = isset($_POST['region'])?$_POST['region']:NULL;
if(
$a == $b)
return 
'selected="selected"';
}
if(isset(
$_POST['country']))
{
$query "SELECT * FROM `region` WHERE `country_id`='".(int)$_POST['country']."'";
$res mysql_query($query);

echo 
"<select name=\"region\" onchange=\"document.getElementById('new_reg').value='1';document.getElementById('frm').submit();\" >
  <option  id=\"region\" value='0'>- Выберите pегион -</option>"
;

    while(
$row mysql_fetch_array($res))
      echo 
"<option ".sel_region($row['region_id'])." value='" $row['region_id'] . "'>" $row['name'] . "</option>\r\n";

echo 
"</select>";
}
?>
</td>
</tr>
<tr>
<td><label for="country">Город/деревня: </label></td>
<td>
<?php
function sel_city($a)
{
$b = isset($_POST['city'])?$_POST['city']:NULL;
if(
$a == $b)
return 
'selected="selected"';
}
$region = isset($_POST['region'])?$_POST['region']:NULL;
if(
$region && empty($_POST['new_city']))
{
$query "SELECT * FROM `city` WHERE `region_id`='".(int)$_POST['region']."'";
$res mysql_query($query);

echo 
"<select id=\"city\" name=\"city\" onchange=\"document.getElementById('frm').submit()\" >
  <option  value='0'>- Выберите город -</option>"
;

    while(
$row mysql_fetch_array($res))
      echo 
"<option ".sel_city($row['city_id'])." value='" $row['city_id'] . "'>" $row['name'] . "</option>\r\n";

echo 
"</select>";
}
?>
</td>
</tr>

</table>
<?php

$city 
= isset($_POST['city'])?$_POST['city']:NULL;
if(
$city && empty($_POST['new_city'])&& empty($_POST['new_reg']))
{
$query "SELECT `name` FROM `city` WHERE `city_id`='".(int)$_POST['city']."' LIMIT 1";
$res mysql_query($query);
echo 
"<h1>Хочу в ",mysql_result($res,0,0),"</h1>";
}
?>
</body>

Спустя 7 часов, 52 минуты, 48 секунд (3.03.2009 - 09:00) twin написал(а):
Префикс, это слово, с которого будут начинаться все таблицы сайта. То есть теперь таблицы будут называться не sity, country, region, а к примеру mamba_sity, mamba_country, mamba_region. Это нужно по минимум двум причинам. Во первых, можно будет в одну базу затолкать целую кучу таких сайтов, а во вторых, все таблицы будут рядышком. Если ты в базе будешь еще что нибудь прописывать, они не разбегуться кто куда.
Тепeрь сделай файл ru.php, помести его в каталог language, напиши в него:
PHP
<?
define('NO_CONNECT','Нет соединения с сервером баз данных');
define('NO_DB','Не удалось выбрать базу данных');

В этот файл мы вытащим все служебные слова, чтоб можно было менять язык сайта. Если языками владеешь, можешь сразу создать несколько таких файлов и переводить. Или Андрея попросим, он у нас полиглот. Андрюх, помогай!
Этот файл и конфигу подключи в индекс. Первыми строчками, по порядку - язык, конфига и т.д.

ЗЫ. Что бы время зря не тратить, изучай по ходу дела функции. Способ простой. Видишь незнакомую функцию, набираешь в адресной строке браузера это: http://ru.php.net/название_функции, например http://ru.php.net/define и смотришь, что это за звер. Вообще учить язык лучше по мануалу разработчика (это та самая ссылка). Потому что книжки пишут все кому не лень и иногда (часто) пишут чё попало.
PS PS Я так подробно не потому, что думаю про тебя плохо, а потому что тему еще куча народу читает biggrin.gif

Спустя 1 час, 15 минут (3.03.2009 - 10:15) lira1 написал(а):
Все сделала. Про функции читаю)
В языках не сильна) Пока на русском достаточно будет)
Что дальше?

Спустя 35 минут, 22 секунды (3.03.2009 - 10:50) lira1 написал(а):
При открытии index.php
пишет
Warning: include(config.php) [function.include]: failed to open stream: No such file or directory in /home/virtwww/w_****-ru_97e72469/http/test/index.php on line 3

Warning: include() [function.include]: Failed opening 'config.php' for inclusion (include_path='.:') in /home/virtwww/w_*****-ru_97e72469/http/test/index.php on line 3

Что я не правильно сделала?

<?php
include("language/ru.php");
include("config.php");
include("tpl/header.html");

Спустя 24 минуты, 49 секунд (3.03.2009 - 11:15) twin написал(а):
Файл config.php куда то не туда сунула. Надо рядом с индексом положить.
Дальше сделай в бд таблицу регистрации. Назови префикс_users. (префикс свой поставь)
Начинается с id . Это поле должно быть первичным ключем и иметь автоинкремент. Потом date со свойством timestamp Туда будет писаться дата регистрации. Остальные поля по названию элементов формы. То есть login, password (кстати не пиши password1, password2. надо password, password2). Поле password2 не нужно. Как сделаешь, сюда выложи SQL.

Спустя 10 минут, 36 секунд (3.03.2009 - 11:25) twin написал(а):
И кстати, язык английский, хотя бы технический, нужно учить. Иначе так и будешь всю жизнь спрашивать
Цитата
Что я не правильно сделала?

А ведь интерпретатор черным по русскому написал:
Цитата
No such file or directory in
(Не существует файл или директория по пути....include(config.php).) А компьютер врать не умеет. Раз нету файла, так и пишет. Значит в имени ошибка или расширении.

Спустя 32 минуты, 32 секунды (3.03.2009 - 11:58) sergeiss написал(а):
Цитата (twin @ 3.03.2009 - 11:25)
...А ведь интерпретатор черным по русскому написал...

Мне как-то привычнее фраза "русским по белому написано...." wink.gif

Спустя 24 минуты, 26 секунд (3.03.2009 - 12:22) lira1 написал(а):
Все исправила видимо в конфиге с русская была

Спустя 4 минуты, 9 секунд (3.03.2009 - 12:26) twin написал(а):
Цитата
Мне как-то привычнее фраза "русским по белому написано...."

Ну там же не русские буквы smile.gif

Спустя 1 час, 16 минут, 33 секунды (3.03.2009 - 13:43) lira1 написал(а):
Вот Twin , моя первая таблица

CREATE TABLE `strana_user` (
`id` int(11) NOT NULL auto_increment,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`login` varchar(250) character set utf8 default NULL,
`password` varchar(32) character set utf8 default NULL,
`email` varchar(250) character set utf8 default NULL,
`pol` tinyint(4) NOT NULL,
`name` varchar(250) character set utf8 default NULL,
`day` int(2) default NULL,
`month` int(2) default NULL,
`year` int(4) default NULL,
`kod` int(10) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Что не так?

Спустя 13 минут, 9 секунд (3.03.2009 - 13:56) twin написал(а):
Ай молодца!!!! А говоришь - сложно. Проще пареной репы.
Теперь надо сделать валидацию, то биш проверку на правильность заполнения. Я предлагаю не искать легких путей, и сделать сразу на аяксе, чтоб круче чем на мамбе было. Предчуствую слабые возражения форумчан, что js может быть отключен, но я твердо убежден, что из-за пары параноиков, которые смотрят интернет без скриптов, не стоит портить красоту.
Ну что, осилим?

Спустя 8 минут, 40 секунд (3.03.2009 - 14:05) twin написал(а):
Знач еще, по таблице. Пол, по английски sex, (это не намек biggrin.gif ), и у поля kod (лучше kode) к-во символов поставь 32, а не 10. Капчу в таблицу писать не надо, но поле нам пригодится.

Спустя 6 минут, 24 секунды (3.03.2009 - 14:11) sergeiss написал(а):
Код уж тогда лучше `code`, а тип поля `sex` - boolean (true - 'м', false - 'ж') tongue.gif
Зачем для него 4 байта отводить???

Спустя 1 минута, 14 секунд (3.03.2009 - 14:12) twin написал(а):
Точно.
Тока наоборот лучше - (true - 'ж', false - 'м') biggrin.gif

Спустя 29 минут, 4 секунды (3.03.2009 - 14:42) Bezdna написал(а):
CREATE TABLE `strana_user` (
`id` int(11) NOT NULL auto_increment,
`sex` tinyint(4) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `strana_user` VALUES (1, 'Два раза в неделю'); biggrin.gif

Спустя 14 минут, 46 секунд (3.03.2009 - 14:56) twin написал(а):
Ё-маё, по такой схеме даж 2 раза не прокатит biggrin.gif

Вот исправления:

ALTER TABLE `strana_user` CHANGE `pol` `sex` ENUM( 'ж', 'м' ) DEFAULT NULL ,
CHANGE `kod` `сode` INT( 32 ) DEFAULT NULL

Спустя 40 минут, 37 секунд (3.03.2009 - 15:37) lira1 написал(а):
Так?

ALTER TABLE `strana_user` (
`id` int(11) NOT NULL auto_increment,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`login` varchar(250) character set utf8 default NULL,
`password` varchar(32) character set utf8 default NULL,
`email` varchar(250) character set utf8 default NULL,
`sex` ENUM( 'ж', 'м' ) DEFAULT NULL
`name` varchar(250) character set utf8 default NULL,
`day` int(2) default NULL,
`month` int(2) default NULL,
`year` int(4) default NULL,
`сode` INT( 32 ) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Цитата
Я предлагаю не искать легких путей, и сделать сразу на аяксе, чтоб круче чем на мамбе было.


А про это подробней , а то до меня не дошло


Спустя 21 минута, 52 секунды (3.03.2009 - 15:59) twin написал(а):
Ну можно для проформы еще полю year поставить тип YEAR, но это так, косметика.

АЯКС. Это когда поле не так заполнишь, а рядом появляется а-я-я-й.

Спустя 46 минут, 12 секунд (3.03.2009 - 16:45) lira1 написал(а):
вместо int?
Что сейчас делать надо?

Спустя 6 минут, 39 секунд (3.03.2009 - 16:52) Bezdna написал(а):
Цитата (lira1 @ 3.03.2009 - 13:46)
И еще cms нужно ставить? Нужная эта вещь?


В данном случае вместо CMS лучше поставить нормальный скрипт знакомств.

Спустя 4 минуты, 57 секунд (3.03.2009 - 16:57) lira1 написал(а):
Дак там не только знакомства будут

Спустя 44 секунды (3.03.2009 - 16:57) twin написал(а):
Цитата
В данном случае вместо CMS лучше поставить нормальный скрипт знакомств.
Ну что за параженческие настроения? Так разве научишься чему нибудь? Щас напишем и скрипт нормальный и CMS за одно. wink.gif

lira1
А сейчас будем писать валидатор. Делается это так:
PHP
<?
$cnt = array();
$error = array();
$login = isset($_POST['login'])?$_POST['login']:NULL;
    if(!
$login )
     {
     
$cnt[] = 1;
    
$error[] = "Нет логина";
     }
    else
     {
    
$error[]=" ";
     }
продолжай, покуда сможешь.

Спустя 1 час, 3 минуты, 37 секунд (3.03.2009 - 18:01) lira1 написал(а):
Цитата
А сейчас будем писать валидатор. Делается это так:
PHP
<?
$cnt = array();
$error = array();
$login = isset($_POST['login'])?$_POST['login']:NULL;
if(!$login )
{
$cnt[] = 1;
$error[] = "Нет логина";
}
else
{
$error[]=" ";
}


Это уж совсем не понятно, щас буду разбираться....

А cms готовых хороших нет? Я установила cms danneo , но пока там ничего не понимаю biggrin.gif

Спустя 27 минут, 5 секунд (3.03.2009 - 18:28) twin написал(а):
Ты установишь сейчас какой нибудь экскаватор и будешь им ямки для цветочков копать. Брось это дело, не гоже программисту smile.gif юзать готовые решения.
А что непонятно спрашивай, не стесняйся.

Спустя 18 минут, 27 секунд (3.03.2009 - 18:46) Bezdna написал(а):
Цитата (twin @ 3.03.2009 - 15:28)
не гоже программисту smile.gif юзать готовые решения.


twin всё это относится к профессиональным программистам, а начинающим может всё-таки стОит для начала поковыряться в чужом коде? Тем более, что, откровенно говоря, сейчас, в общем-то, юзаются твои готовые решения.

lira1 что значит "хорошая, готовая"? Если я правильно понял, то ты хочешь что-то типа социальной сети..

Спустя 7 минут, 18 секунд (3.03.2009 - 18:54) twin написал(а):
Ну мои решения не совсем готовые, а разница в том, что я все таки могу расписать каждое движение, а готовый скрипт не может. smile.gif

PHP
<?php
# Объявляем переменныю массивом. Это для того, что бы функция count() не выдала ошибку.
$cnt = array();
$error = array();
# Инициализация, то есть присвоение начального значения переменной.
$login = isset($_POST['login'])?$_POST['login']:NULL;
# Восклиц. знак ознаяает инверсию. 
# Тоесть это значит - если переменная пуста, то в массивы добавляются значения. 
# Это так мудрено,потому что для аякса.
    if(!$login )
     {
     $cnt[] = 1;
    $error[] = "Нет логина";
     }
    else
     
{
    $error[]=" ";
     }
# Дальше тож самое, инициализация и проверка. 
# В $cnt добавляем 1 если ошибка, а в $error текст ошибки. 
# Если все гут, то в $error добавляем пробел.
А профессиональным программистом она станет через пару-тройку недель.

Спустя 2 часа, 7 минут, 58 секунд (3.03.2009 - 21:02) lira1 написал(а):
Цитата
А профессиональным программистом она станет через пару-тройку недель.

На этой фразе я biggrin.gif и подумала что это не реально.
Хотя с таким учителем как Twin, вряд ли может быть по другому biggrin.gif

Вот сделала, какие ошибки?
PHP
<?
$cnt = array();
$error = array();
$login = isset($_POST['login'])?$_POST['login']:NULL;
    if(!
$login )
     {
     
$cnt[] = 1;
    
$error[] = "Нет логина";
     }
    else
     {
    
$error[]=" ";
     }

$password = isset($_POST['password'])?$_POST['password']:NULL;
    if(!
$password)
     {
     
$cnt[] = 1;
    
$error[] = "Нет пароля";
     }
    else
     {
    
$error[]=" ";
     }
  if (
$password == $password2)
                {

$email= isset($_POST['email'])?$_POST['email']:NULL;
    if(!
$email)
     {
     
$cnt[] = 1;
    
$error[] = "Отсутствует email";
     }
    else
     {
    
$error[]=" ";
     }
                
$sex= isset($_POST['sex'])?$_POST['sex']:NULL;
    if(!
$sex)
     {
     
$cnt[] = 1;
    
$error[] = "Не выбран пол";
     }
    else
     {
    
$error[]=" ";
     }          
$name= isset($_POST['name'])?$_POST['name']:NULL;
    if(!
$name)
     {
     
$cnt[] = 1;
    
$error[] = "Нет имени";
     }
    else
     {
    
$error[]=" ";
     }        
$day= isset($_POST['day'])?$_POST['day']:NULL;
    if(!
$day)
     {
     
$cnt[] = 1;
    
$error[] = "Не выбрана дата рождения";
     }
    else
     {
    
$error[]=" ";
     }    
$month= isset($_POST['month'])?$_POST['month']:NULL;
    if(!
$month)
     {
     
$cnt[] = 1;
    
$error[] = "Не выбран месяц рождения";
     }
    else
     {
    
$error[]=" ";
     }    
$year= isset($_POST['year'])?$_POST['year']:NULL;
    if(!
$year)
     {
     
$cnt[] = 1;
    
$error[] = "Не выбран год рождения";
     }
    else
     {
    
$error[]=" ";
     }    
$kode= isset($_POST['kode'])?$_POST['kode']:NULL;
    if(!
$kode)
     {
     
$cnt[] = 1;
    
$error[] = "Нет кода";
     }
    else
     {
    
$error[]=" ";
     }      

Спустя 2 минуты, 9 секунд (3.03.2009 - 21:04) lira1 написал(а):
Цитата
lira1 что значит "хорошая, готовая"? Если я правильно понял, то ты хочешь что-то типа социальной сети..


Ну такая чтоб шаблоны сайтов были, чтоб можно было легко все выставить на нужные места.

Спустя 9 минут, 36 секунд (3.03.2009 - 21:13) Enkei написал(а):
[/b]lira1[b] а имейл кажется надо проверять на правильность формата еще, верно?

Спустя 2 минуты, 46 секунд (3.03.2009 - 21:16) Enkei написал(а):
Короче мои кривые руки опять не могут поделить этот скрпит на три части, а именно хочу файл country.php, region.php и city.php, чтобы инклюд вставить в ячейку мона было. Помогите плисс =(((
PHP
<?php
// выбираем столбец name из таблицы country
$query = "SELECT * FROM `country`";
$res = mysql_query($query);
function sel_country($a)
{
$b = isset($_POST['country'])?$_POST['country']:NULL;
if(
$a == $b)
return 'selected="selected"';
}

?>

<!-- создаем форму select для выбора страны -->
<form id="frm" action="" method="post">
<input id="new_city" name="new_city" type="hidden" />
<input id="new_reg" name="new_reg" type="hidden" />
<select name="country" onchange="document.getElementById('new_city').value='1';document.getElementById('frm').submit()" >
  <option value='0'>- Выберите страну -</option>
 <?php
// выводим все строки из столбца name таблицы country
    while($row = mysql_fetch_array($res))
      echo "<option ".sel_country($row['country_id'])." value='" . $row['country_id'] . "'>" . $row['name'] . "</option>\r\n";
?>
</select>
<?php
function sel_region
($a)
{
$b = isset($_POST['region'])?$_POST['region']:NULL;
if(
$a == $b)
return 'selected="selected"';
}
if(isset(
$_POST['country']))
{
$query = "SELECT * FROM `region` WHERE `country_id`='".(int)$_POST['country']."'";
$res = mysql_query($query);

echo "<select name=\"region\" onchange=\"document.getElementById('new_reg').value='1';document.getElementById('frm').submit();\" >
  <option  id=\"region\" value='0'>- Выберите pегион -</option>"
;

    while($row = mysql_fetch_array($res))
      echo "<option ".sel_region($row['region_id'])." value='" . $row['region_id'] . "'>" . $row['name'] . "</option>\r\n";

echo "</select>";
}

function sel_city($a)
{
$b = isset($_POST['city'])?$_POST['city']:NULL;
if(
$a == $b)
return 'selected="selected"';
}
$region = isset($_POST['region'])?$_POST['region']:NULL;
if(
$region && empty($_POST['new_city']))
{
$query = "SELECT * FROM `city` WHERE `region_id`='".(int)$_POST['region']."'";
$res = mysql_query($query);

echo "<select id=\"city\" name=\"city\" onchange=\"document.getElementById('frm').submit()\" >
  <option  value='0'>- Выберите город -</option>"
;

    while($row = mysql_fetch_array($res))
      echo "<option ".sel_city($row['city_id'])." value='" . $row['city_id'] . "'>" . $row['name'] . "</option>\r\n";

echo "</select>";
}
$city = isset($_POST['city'])?$_POST['city']:NULL;
if(
$city && empty($_POST['new_city'])&& empty($_POST['new_reg']))
{
$query = "SELECT `name` FROM `city` WHERE `city_id`='".(int)$_POST['city']."' LIMIT 1";
$res = mysql_query($query);
echo "<h1>Хочу в ",mysql_result($res,0,0),"</h1>";
}

Спустя 48 минут, 6 секунд (3.03.2009 - 22:04) twin написал(а):
Enkei Ну я же написал уже, посмотри предыдущие страницы. Там все поделено, хош так оставь, хош в инклюд выдерни.

Цитата
На этой фразе я  и подумала что это не реально.
А сомневаться не надь. Правда я не написал, что хорошим, а написал профессиональным. Потому что хорошим ты можешь стать только сама, если сильно захочешь. У тебя здорово получается. А профессиональным можно за это время заделаться. Я видывал профессионалов (людей, зарабатывающих этим деньги), которые html от php плохо отличают, но ничего - работают. biggrin.gif Я вот тоже профессионал, но хорошим программистом себя не считаю.

Вот по теме:
PHP
<?
// Кэшировать аякс нельзя, иначе динамики не будет вот заголовки против кэша
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");   
header
("Cache-Control: no-cache, must-revalidate");   
header
("Pragma: no-cache");   
header
("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");

$cnt = array();
$error = array();
$login = isset($_POST['login'])?$_POST['login']:NULL;
    if(!$login )
     {
     $cnt[] = 1;
    $error[] = "Нет логина";
     }
    else
     
{
    $error[]=" ";
     }

$password = isset($_POST['password'])?$_POST['password']:NULL;
    if(!$password)
     {
     $cnt[] = 1;
    $error[] = "Нет пароля";
     }
    elseif(mb_strlen($password) < 7)
     {
     $cnt[] = 1;    
# Тут немного подстрахуемся и заставим юзера написать приличный пароль.
    $error[]="Пароль меньше 7 символов";
     }     
    else
     
{
    $error[]=" ";
     }
$email= isset($_POST['email'])?$_POST['email']:NULL;
    if(!$email)
     {
     $cnt[] = 1;
    $error[] = "Отсутствует email";
     } # А вот это проверка на правильность мыла
    elseif(!preg_match("/^[a-z0-9_.-]+@([a-z0-9_]+.)+[a-z]{2,4}$/", $email))
     {
     $cnt[] = 1;
    $error[]="E-mail введен некорректно";
     }    
    else
     
{
    $error[]=" ";
     }
                
$sex
= isset($_POST['sex'])?$_POST['sex']:NULL;
    if(!$sex)
     {
     $cnt[] = 1;
    $error[] = "Не выбран пол";
     }
    else
     
{
    $error[]=" ";
     }          
$name
= isset($_POST['name'])?$_POST['name']:NULL;
    if(!$name)
     {
     $cnt[] = 1;
    $error[] = "Нет имени";
     }
    else
     
{
    $error[]=" ";
     }        
$day
= isset($_POST['day'])?$_POST['day']:NULL;
    if(!$day)
     {
     $cnt[] = 1;
    $error[] = "Не выбрана дата рождения";
     }
    else
     
{
    $error[]=" ";
     }    
$month
= isset($_POST['month'])?$_POST['month']:NULL;
    if(!$month)
     {
     $cnt[] = 1;
    $error[] = "Не выбран месяц рождения";
     }
    else
     
{
    $error[]=" ";
     }    
$year
= isset($_POST['year'])?$_POST['year']:NULL;
    if(!$year)
     {
     $cnt[] = 1;
    $error[] = "Не выбран год рождения";
     }
    else
     
{
    $error[]=" ";
     }    
# Тут уже вывод для аякса. Если была хоть одна ошибка, знать  
# покажем что поправить.
    if(count($cnt) > 0)
    {
echo implode("|",$error);
    }
    else # А если небыло, то организуем доступ к скрипту 
# (переменная сессии), и отправим браузеру условный сигнал.
    {
session_start();
$_SESSION['pusk'] = 1;
echo "200";
    }

Еще будет нужна проверка на уникальность логина. Но это попозже.
И еще, если у тебя дома денвер, то пока замени mb_strlen() на strlen() только русские буквы считать не будет. Для проверки пойдет, потом обратно сунешь.
Сделай в каталоге modules еще один, назови к примеру registr. Эти каракули сохрани в файле valid.php и туда.
Еще смотри, поля в форме и название полей таблицы в бд должны совпадать. Это я на будущее.
А теперь то же самое сделай для анкеты.

Спустя 55 минут, 33 секунды (3.03.2009 - 23:00) lira1 написал(а):
В анкете есть необязательные поля для заполнения, их тоже прописывать?
А в БД тоже таблицу анкеты делать?

Цитата
И еще, если у тебя дома денвер, то пока замени mb_strlen() на strlen() только русские буквы считать не будет. Для проверки пойдет, потом обратно сунешь.

Нет на домашнем компе, я mysql не могла установить. Поэтому все на хостинге 1gb

Спустя 6 минут, 23 секунды (3.03.2009 - 23:06) twin написал(а):
Без сервера дома тяжко будет. Поставь хотя бы денвер. Дело пяти минут, а для начала более чем достаточно.
Да, все тоже самое, и базу и скрипт.
Только обязательные поля проверять будем, зачем нам другие? И сразу тогда уж все русские надписи поменяй на константы и в файл ru.php

Спустя 17 минут, 40 секунд (3.03.2009 - 23:24) twin написал(а):
Ну вот как делали раньше:
PHP
<?
define("NO_LOGIN","Нет логина");
а в скрипт так:
PHP
<?
    if(!
$login )
     {
     
$cnt[] = 1;
    
$error[] = NO_LOGIN;
     }

Спустя 43 минуты, 25 секунд (4.03.2009 - 00:07) twin написал(а):
Небольшая поправочка, ты начала писать, и что то пропустила. И я туда же smile.gif

PHP
<?
$password = isset($_POST['password'])?$_POST['password']:NULL;
$password2 = isset($_POST['password2'])?$_POST['password2']:NULL;
    if(!$password)
     {
     $cnt[] = 1;
    $error[] = "Нет пароля";
     }
    elseif(mb_strlen($password) < 7)
     {
     $cnt[] = 1;    
    $error
[]="Пароль меньше 7 символов";
     }
    elseif($password !== $password2 )
     {
     $cnt[] = 1;    
    $error
[]="Пароли не совподают";
     }         
    else
     
{
    $error[]=" ";
     }

Спустя 8 часов, 55 секунд (4.03.2009 - 08:08) lira1 написал(а):
mb_strlen() на strlen()
А это где менять?

Спустя 39 минут, 44 секунды (4.03.2009 - 08:48) Bezdna написал(а):

Спустя 19 минут, 58 секунд (4.03.2009 - 09:08) lira1 написал(а):
Цитата
http://localhost/Tools/phpmyadmin/

не открывается

Спустя 6 минут, 54 секунды (4.03.2009 - 09:15) lira1 написал(а):
Цитата
Ну вот как делали раньше:
PHP
<?
define("NO_LOGIN","Нет логина");
а в скрипт так:
PHP
<?
if(!$login )
{
$cnt[] = 1;
$error[] = NO_LOGIN;
}


Не поняла , в скрипте жы мы не так писали, или еще один скрипт на английском писать?

Спустя 6 минут, 16 секунд (4.03.2009 - 09:21) Bezdna написал(а):
Цитата (lira1 @ 4.03.2009 - 06:08)
не открывается


А Денвер запущен? При успешной установке Денвера в любом случае должна открыться страница http://localhost/ , с которой тоже можно попасть в PhpMyAdmin.

Спустя 49 секунд (4.03.2009 - 09:22) lira1 написал(а):
Twin еще вопрос, если выбор множественный и можно выбрать несколько вариантов, к примеру с какой целью знакомится 4 варианта и все можно выбрать, как это писать?

Спустя 41 секунда (4.03.2009 - 09:23) lira1 написал(а):
Цитата

А Денвер запущен? При успешной установке Денвера в любом случае должна открыться страница http://localhost/ , с которой тоже можно попасть в PhpMyAdmin.


Вчера так и было. Но сейчас я свои файлы туда загрузила и первая страница моя открывается

Спустя 6 минут, 53 секунды (4.03.2009 - 09:30) Bezdna написал(а):
Цитата (lira1 @ 4.03.2009 - 06:23)
Но сейчас я свои файлы туда загрузила


Вообще-то в Денвере файлы грузятся в директорию C:\WebServers\home\test1.ru\www\название сайта\ , а вызываются в браузере http://test1.ru/название сайта/

Спустя 31 минута, 12 секунд (4.03.2009 - 10:01) lira1 написал(а):
Цитата
Вообще-то в Денвере файлы грузятся в директорию C:\WebServers\home\test1.ru\www\название сайта\ , а вызываются в браузере http://test1.ru/название сайта/

понятно, переустановила

Спустя 4 минуты, 37 секунд (4.03.2009 - 10:05) Bezdna написал(а):
В PhpMyAdmin зайти получилось?

Спустя 1 минута, 33 секунды (4.03.2009 - 10:07) lira1 написал(а):
да. Только вот тапблица не грузится
SQL-запрос:

ALTER TABLE `strana_user` (

`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
`login` varchar( 250 ) CHARACTER SET utf8 default NULL ,
`password` varchar( 32 ) CHARACTER SET utf8 default NULL ,
`email` varchar( 250 ) CHARACTER SET utf8 default NULL ,
`sex` ENUM( '槼/span>, '짼/span> ) DEFAULT NULL `name` varchar( 250 ) CHARACTER SET utf8 default NULL ,
`day` int( 2 ) default NULL ,
`month` int( 2 ) default NULL ,
`year` int( 4 ) default NULL ,
`񯤥` INT( 32 ) DEFAULT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT =1
Ответ MySQL:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(
`id` int(11) NOT NULL auto_increment,
`date` timestamp NOT NULL default CURR' at line 1

Спустя 17 минут, 39 секунд (4.03.2009 - 10:25) Bezdna написал(а):
Кодировку в PhpMyAdmin поставь везде utf8.

Спустя 29 минут, 26 секунд (4.03.2009 - 10:54) twin написал(а):
Вот это:
PHP
<?
define("NO_LOGIN","Нет логина");
почти тоже самое, что вот так:
PHP
<?
$no_login "Нет логина";
только разница в том, что получится не переменная а константа. Вот такая: NO_LOGIN. Константа от переменной отличается тем, что во первых её невозможно изменить, допустим вот так делать можно:
PHP
<?
$no_login "Нет логина";
echo 
$no_login;
$no_login "А теперь есть логин";
echo 
$no_login;

а так изменить не получится:
PHP
<?
define("NO_LOGIN","Нет логина");
echo 
NO_LOGIN;
NO_LOGIN "А теперь есть логин";
echo 
NO_LOGIN;

и так не получится:
PHP
<?
define("NO_LOGIN","Нет логина");
echo 
NO_LOGIN;
define("NO_LOGIN","А теперь есть логин");
echo 
NO_LOGIN;
А во вторых константы видно внутри функций, но это чуть позже поймешь.

Цитата
Не поняла , в скрипте жы мы не так писали, или еще один скрипт на английском писать?
Вот для того, что бы все скрипты на разных языках не писать, мы и вытащим все слова в отдельный файл. Сейчас ru.php. А вот потом сделаем en.php точь такой же как ru.php, только все русские надписи переведем на английский. И еще сделаем украинский, немецкий и буркина-фасо. Потом будем нужный файл подключать и весь сайт будет с нами разговаривать на нужном языке.

Цитата
mb_strlen() на strlen()
А это где менять?
Это в скрипте найди, там где пароль.

Цитата
Twin еще вопрос, если выбор множественный и можно выбрать несколько вариантов, к примеру с какой целью знакомится 4 варианта и все можно выбрать, как это писать?
Пиши пока что понимаешь, потом все непонятки разберем отдельно. И пожалуйста, не пиши Twin c большой буквы. Меня Николай зовут, а twin(англ. близнец) это по гороскопу просто.


Спустя 2 часа, 21 минута, 49 секунд (4.03.2009 - 13:16) twin написал(а):
Ну так же, как и ту. Только поле еще одно, для связки нужно. id_user

SQL
CREATE TABLE `strana_anket` (
`id` int(11) NOT NULL auto_increment,
`id_user` int(11) NOT NULL,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`tel` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Спустя 4 минуты, 15 секунд (4.03.2009 - 13:20) lira1 написал(а):
Цитата
CREATE TABLE `strana_anket` (


В той ты сказал
ALTER TABLE `strana_user` (

Чем отличается create от alter?

Спустя 6 минут, 28 секунд (4.03.2009 - 13:27) twin написал(а):
create это создать, а alter изменить. Вот.

Спустя 13 минут, 1 секунда (4.03.2009 - 13:40) twin написал(а):
Нет, поле одно. Тип enum и там все варианты.

Спустя 3 минуты, 35 секунд (4.03.2009 - 13:43) twin написал(а):
SQL
`find` ENUM( 'f', 'm', 'mf', 'mm' ) NOT NULL ;

Спустя 4 минуты, 24 секунды (4.03.2009 - 13:48) lira1 написал(а):
Это я так и думала
А вот когда не одинаково начинаются
married
single
not answer

Спустя 27 минут, 36 секунд (4.03.2009 - 14:15) twin написал(а):
Слушай, нет. Так не пойдет. Я сейчас сам посмотрел форму.
В общем смысл такой. Если выбирается единственное значение, то есть допустим это из списка (<select>) или радиокнопки (<input type="radio" >) к примеру, то тогда поле ENUM. Там имя элемента одно. А если значений может быть несколько, допустим чекбокс (<input type="checkbox" >) то на каждый элемент свое поле. Тут главное определиться изначально, что мы хотим получить и как организовать форму.
А эти
married
single
not answer
я вообще чёто не нашел... sad.gif

Спустя 40 минут, 51 секунда (4.03.2009 - 14:56) lira1 написал(а):
я Так понимаю все названия со значениями, долнны одинаково начинаться
Например
braksingle
brakmarried
braknotanswer



Спустя 13 минут, 45 секунд (4.03.2009 - 15:10) twin написал(а):
У радиокнопок одной группы должно быть одно имя. То есть так:

HTML
<input type="radio" name="brak" value="1" >
<input type="radio" name="brak" value="2" >
<input type="radio" name="brak" value="3" >
И поле одно, с таким именем. А в перечисление поля нужно указывать значения.

SQL
`brak` ENUM( 'braksingle', 'brakmarried', 'braknotanswer' ) NOT NULL ;

Тогда будет все шоколадно.



Спустя 26 минут, 52 секунды (4.03.2009 - 15:37) lira1 написал(а):
Форма
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Анкета</title>
</head>
<body>
<form name="ancet" method="post" action="">
<table width="69%" border="0" align="right" cellpadding="0">
<tr>
<td colspan="2"><h2 align="center">Анкета</h2></td>
</tr>
<tr>
<td width="37%" valign="top">Телефон</td>
<td width="63%"><p>
<input name="tel" value="" size="30"
maxlength="0" type="text" />
<br />
<span class="style2"><span class="style1">Формат +79111111111 </span></span><span class="style2"><span class="style1"> <br />
Все телефоны проверяются
администрацией </span><br />
</span></p>
</td>
</tr>
<tr>
<td valign="top">ICQ</td>
<td><input name="icq" value="" size="30" maxlength="0"
type="text" />
<br />
<br /></td>
</tr>
<tr>
<td valign="top">Напишите о себе</td>
<td><textarea name="obomne" cols="40" rows="3" /> </textarea>
<br />
<br /></td>
</tr>
<tr>
<td valign="top"><p><br />
Познакомлюсь: </p>
</td>
<td valign="top"><p>
<input name="find" value="findf" type="checkbox" />
Девушкой <br />
<input name="find" value="findm" type="checkbox" />
Мужчиной <br />
<input name="find" value="findmf" type="checkbox" />
С парой М+Ж <br />
<input name="find" value="findmm" type="checkbox" />
С парой М+М <br />
<br />
</p>
</td>
</tr>
<tr>
<td valign="top"><br />
Желаемый возраст: </td>
<td><p>
<input name="age" value="age18-25" type="checkbox" />
18-25 лет <br />
<input name="age" value="age26-30" type="checkbox" />
26-30 лет <br />
<input name="age" value="age31-45" type="checkbox" />
31-45 лет <br />
<input name="age" value="age46-55" type="checkbox" />
46-55 лет <br />
<input name="age" value="age56-80" type="checkbox" />
56-80 лет <br />
<br />
<br />
</p></td>
</tr>
<tr>
<td valign="top">Цель знакомства:</td>
<td><input name="regsex" value="regsex" type="checkbox" />
Регулярный секс вдвоем<br />
<input name="sex1-2" value="sex1-2" type="checkbox" />
Секс на один-два раза<br />
<input name="groupsex" value="groupsex" type="checkbox" />
Групповой секс<br />
<input name="virtsex" value="virtsex" type="checkbox" />
Виртуальный секс<br />
<input name="predsexmoney" value="sexmoney" type="checkbox" />
Предлагаю интим за мат.поддержку <br />
<input name="findsexmoney" value="sexmoney1" type="checkbox" />
Ищу интим за мат.поддержку <br />
<br /></td>
</tr>
<tr>
<td valign="top" style="height: 80px;">Кого я хочу найти:</td>
<td style="height: 80px;"><textarea name="findlook" cols="40"
rows="3" /></textarea></td>
</tr>
<tr>
<td height="77" valign="top" style="height: 77px;">Состоите ли вы в официальном браке?</td>
<td style="height: 77px;"><p>
<input name="brak" type="radio" value="brakmarried" />
Да<br />
<input name="brak" type="radio" value="braksingle" />
Нет<br />
<input name="brak" type="radio" value="braknotanswer" />
Нет ответа </p>
</td>
</tr>
<tr>
<td valign="top" style="height: 83px;">Есть ли у вас дети?</td>
<td style="height: 83px;"><input name="children" type="radio" value="childrenyes" />
Да<br />
<input name="children" type="radio" value="childrennot" />
Нет<br />
<input name="children" type="radio" value="childrenotanswer" />
Нет ответа </td>
</tr>
<tr>
<td valign="top">Рост, см</td>
<td><input name="growth" value="" size="10" maxlength="0"
type="text" />
<br /></td>
</tr>
<tr>
<td valign="top">Вес, кг&nbsp;</td>
<td><input name="weight" value="" size="10" maxlength="0"
type="text" />
<br /></td>
</tr>
<tr>
<td valign="top">Материальное положение:</td>
<td><input name="dohod" type="radio" value="dohodnotjob" />
Непостоянные заработки
<br />
<input name="dohod" type="radio" value="dohodpoorlymoney" />
Постоянный небольшой доход <br />
<input name="dohod" type="radio" value="dohodaveragemoney" />
Стабильное материальное положение <br />
<input name="dohod" type="radio" value="dohodmuchmoney" />
Хорошо зарабатываю </td>
</tr>
<tr>
<td height="58" valign="top">Ориентация:</td>
<td><p>
<input name="orientation" type="radio" value="orientationtrad" />
Традиционная<br />
<input name="torientation" type="radio" value="orientationnot" />
Не традиционная</p>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><span class="стиль3">
<input name="Submit2" value="Сохранить"
type="submit" />
</span></td>
</tr>
</table>
</form>

</body>
</html>


Таблица
SQL
CREATE TABLE `strana_ancet` (
`id` int(11) NOT NULL auto_increment,
`id_user` int(11) NOT NULL,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`tel` varchar(50) NOT NULL,
`icq` varchar(50) NOT NULL,
`find` enum('findf','findm','findfm','findmm') NOT NULL,
`age` enum('age18-25','age26-30','age31-45','age46-55','age56-80') NOT NULL,
'regsex' varchar(50) NOT NULL,
'sex1-2' varchar(50) NOT NULL,
'groupsex'varchar(50) NOT NULL,
'virtsex' varchar(50) NOT NULL,
'predsexmoney' varchar(50) NOT NULL,
'findsexmoney' varchar(50) NOT NULL,
'findlook'varchar(250) NOT NULL,
'brak' enum('brakmarried','braksingle','braknotanswer') NOT NULL,
'children' enum('childrenyes','childrennot','childrennotanswer') NOT NULL,
'growth' varchar(50) NOT NULL,
'weight' varchar(50) NOT NULL,
'dohod' enum('dohodnotjob','dohodpoorlymoney','dohodaveragemoney', 'dohodmuchmoney')

NOT NULL,
'orientation' enum('orientationtrad','orientationnot') NOT NULL,

PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

Спустя 56 секунд (4.03.2009 - 15:38) twin написал(а):
Валидатор еще надо.

Спустя 3 минуты, 4 секунды (4.03.2009 - 15:41) twin написал(а):
Нет, не правильно немного. У чекбоксов разные должны быть имена. Можно ведь две галочки поставить. А если нельзя две, то тогда радио.

Спустя 4 минуты, 3 секунды (4.03.2009 - 15:45) lira1 написал(а):
ну а в таблицу как их занести

Спустя 7 минут, 27 секунд (4.03.2009 - 15:52) lira1 написал(а):
PHP
<?

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");   
header("Cache-Control: no-cache, must-revalidate");   
header("Pragma: no-cache");   
header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");

$cnt = array();
$error = array();
$find = isset($_POST['find'])?$_POST['find']:NULL;
    if(!
$find)
     {
     
$cnt[] = 1;
    
$error[] = "Не выбрано кого вы ищете";
      }
    else
     {
    
$error[]=" ";
     }          
    if(
count($cnt) > 0)
    {
echo 
implode("|",$error);
    }
    else
    {
session_start();
$_SESSION['pusk'] = 1;
echo 
"200";
    }

Спустя 12 минут, 40 секунд (4.03.2009 - 16:05) lira1 написал(а):

<?
define('NO_CONNECT','Нет соединения с сервером баз данных');
define('NO_DB','Не удалось выбрать базу данных');
define("NO_LOGIN","Нет логина");
define("NO_PASSWORD","Нет пароля");
define("NO_EMAIL","Не указан email");
define("NO_SEX","Не выбран пол");
define("NO_NAME","Нет имени");
define("NO_DAY","Не выбрана дата рождения");
define("NO_MONTH","Не выбран месяц рождения");
define("NO_YEAR","Не выбран год рождения");
define("NO_KODE","Нет кода");
define("NO_FIND","Не выбрано кого вы ищете");
[/php]

Спустя 10 минут, 49 секунд (4.03.2009 - 16:16) twin написал(а):
Вот смотри. Тут ты почти правильно сделала, только надо было прям как я и писал:
SQL
<input name="brak" type="radio" value="1" />
Да<br />
<input name="brak" type="radio" value="2" />
Нет<br />
<input name="brak" type="radio" value="3" />
Нет ответа </p>
потому что значения уже прописаны в базе, мы их по номеру будем от туда дергать.
А вот тут у тебя чекбоксы:
HTML
<input name="age" value="age18-25" type="checkbox" />
18-25 лет <br />
<input name="age" value="age26-30" type="checkbox" />
26-30 лет <br />
<input name="age" value="age31-45" type="checkbox" />
31-45 лет <br />
<input name="age" value="age46-55" type="checkbox" />
46-55 лет <br />
<input name="age" value="age56-80" type="checkbox" />
56-80 лет <br />
а у них имена должны быть разные. Поменяй их на радио. Иначе будет передано только значение последнего, так как они перезапишуться. Не может быть несколько элементов в массиве $_POST с одинаковыми ключами.

В таблице ты кое где поставила неверные кавычки. Надо не апострофы, а обратные. Это где буква Ё.

А с константами все верно. Молодца. smile.gif Только почему то нет надписей "Некорректный E-mail", Пароли не совподают" и "Длина пароля меньше 7 символов"

Спустя 5 минут, 33 секунды (4.03.2009 - 16:21) lira1 написал(а):
На радио если поменять то один выбор можно сделать. А если я хочу мужчину от 30-50 к примеру, ни как не выбрать
Может лучше их все отдельно в таблице прописать или как?

Спустя 7 минут, 7 секунд (4.03.2009 - 16:28) lira1 написал(а):
Цитата
Только почему то нет надписей "Некорректный E-mail", Пароли не совподают" и "Длина пароля меньше 7 символов"

А это я не понимаю как sad.gif

Спустя 1 минута, 19 секунд (4.03.2009 - 16:30) twin написал(а):
Надо разбить на группы. Что впринципе у тебя уже сделано. Измени только тип инпута с чекбоксов на радио. И все можно будет выбрать. Вот попробуй - сама увидишь.

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

Спустя 1 минута, 3 секунды (4.03.2009 - 16:31) twin написал(а):
Цитата
А это я не понимаю как
А это посмотри в моем варианте, я же дополнил.

Спустя 34 минуты, 20 секунд (4.03.2009 - 17:05) lira1 написал(а):
Цитата
А это посмотри в моем варианте, я же дополнил.

Это я видела
Просто как их в кностанты поставить, имена то те же

Спустя 1 минута, 29 секунд (4.03.2009 - 17:06) lira1 написал(а):
Ну на сайтах знакомств, еще по росту, весу, и мат достатку ищут. В расширенном поиске. Но нет обязательств это вводить. Кто это ввел того и находит.

Спустя 7 минут, 50 секунд (4.03.2009 - 17:14) lira1 написал(а):
Так получается?
HTML
Познакомлюсь: </p>
</td>
<td valign="top"><p>
<input name="findf" value="1" type="radio" />
Девушкой <br />
<input name="findm" value="2" type="radio" />
Мужчиной <br />
<input name="findmf" value="3" type="radio" />
С парой М+Ж <br />
<input name="findmm" value="4" type="radio" />
С парой М+М <br />
<br />
</p>
</td>
</tr>
<tr>
<td valign="top"><br />
Желаемый возраст: </td>
<td><p>
<input name="age18-25" value="1" type="radio" />
18-25 лет <br />
<input name="age26-30" value="2" type="radio" />
26-30 лет <br />
<input name="age31-45" value="3" type="radio" />
31-45 лет <br />
<input name="age46-55" value="4" type="radio" />
46-55 лет <br />
<input name="age56-80" value="5" type="radio" />
56-80 лет <br />
<br />
<br />
</p></td>
</tr>
<tr>
<td valign="top">Цель знакомства:</td>
<td><input name="regsex" value="regsex" type="checkbox" />
Регулярный секс вдвоем<br />
<input name="sex1-2" value="sex1-2" type="checkbox" />
Секс на один-два раза<br />
<input name="groupsex" value="groupsex" type="checkbox" />
Групповой секс<br />
<input name="virtsex" value="virtsex" type="checkbox" />
Виртуальный секс<br />
<input name="predsexmoney" value="sexmoney" type="checkbox" />
Предлагаю интим за мат.поддержку <br />
<input name="findsexmoney" value="sexmoney1" type="checkbox" />
Ищу интим за мат.поддержку <br />
<br /></td>
</tr>
<tr>
<td valign="top" style="height: 80px;">Кого я хочу найти:</td>
<td style="height: 80px;"><textarea name="findlook" cols="40"
rows="3" /></textarea></td>
</tr>
<tr>
<td height="77" valign="top" style="height: 77px;">Состоите ли вы в официальном браке?</td>
<td style="height: 77px;"><p>
<input name="brak" type="radio" value="1" />
Да<br />
<input name="brak" type="radio" value="2" />
Нет<br />
<input name="brak" type="radio" value="3" />
Нет ответа </p>
</td>
</tr>
<tr>
<td valign="top" style="height: 83px;">Есть ли у вас дети?</td>
<td style="height: 83px;"><input name="children" type="radio" value="1" />
Да<br />
<input name="children" type="radio" value="2" />
Нет<br />
<input name="children" type="radio" value="3" />
Нет ответа </td>
</tr>
<tr>
<td valign="top">Рост, см</td>
<td><input name="growth" value="" size="10" maxlength="0"
type="text" />
<br /></td>
</tr>
<tr>
<td valign="top">Вес, кг&nbsp;</td>
<td><input name="weight" value="" size="10" maxlength="0"
type="text" />
<br /></td>
</tr>
<tr>
<td valign="top">Материальное положение:</td>
<td><input name="dohod" type="radio" value="1" />
Непостоянные заработки
<br />
<input name="dohod" type="radio" value="2y" />
Постоянный небольшой доход <br />
<input name="dohod" type="radio" value="3" />
Стабильное материальное положение <br />
<input name="dohod" type="radio" value="4" />
Хорошо зарабатываю </td>
</tr>
<tr>
<td height="58" valign="top">Ориентация:</td>
<td><p>
<input name="orientation" type="radio" value="1" />
Традиционная<br />
<input name="orientation" type="radio" value="2" />
Не традиционная</p>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><span class="стиль3">
<input name="Submit2" value="Сохранить"
type="submit" />
</span></td>
</tr>
</table>
</form>


Тут нужно что то менять ?
SQL
CREATE TABLE `strana_ancet` (
`id` int(11) NOT NULL auto_increment,
`id_user` int(11) NOT NULL,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`tel` varchar(50) NOT NULL,
`icq` varchar(50) NOT NULL,
`find` enum('findf','findm','findfm','findmm') NOT NULL,
`age` enum('age18-25','age26-30','age31-45','age46-55','age56-80') NOT NULL,
`regsex` varchar(50) NOT NULL,
`sex1-2` varchar(50) NOT NULL,
`groupsex` varchar(50) NOT NULL,
`virtsex` varchar(50) NOT NULL,
`predsexmoney` varchar(50) NOT NULL,
`findsexmoney` varchar(50) NOT NULL,
`findlook` varchar(250) NOT NULL,
`brak` enum('brakmarried','braksingle','braknotanswer') NOT NULL,
`children` enum('childrenyes','childrennot','childrennotanswer') NOT NULL,
`growth` varchar(50) NOT NULL,
`weight` varchar(50) NOT NULL,
`dohod` enum('dohodnotjob','dohodpoorlymoney','dohodaveragemoney', 'dohodmuchmoney')

NOT NULL,
`orientation` enum('orientationtrad','orientationnot') NOT NULL,

PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

Спустя 7 минут, 24 секунды (4.03.2009 - 17:22) twin написал(а):
Воооот. На вскидку все правильно. Потом, когда запустим, будем точнее посмотреть.
Цитата
Просто как их в кностанты поставить, имена то те же
Ну константты то можно разные делать. Вот так:

PHP
<?
$email= isset($_POST['email'])?$_POST['email']:NULL;
    if(!
$email)
     {
     
$cnt[] = 1;
    
$error[] = NO_EMAIL;
     }
    elseif(!
preg_match("/^[a-z0-9_.-]+@([a-z0-9_]+.)+[a-z]{2,4}$/"$email))
     {
     
$cnt[] = 1;
    
$error[] = INVALID_EMAIL;
     }    
    else
     {
    
$error[]=" ";
     }

Спустя 33 минуты, 6 секунд (4.03.2009 - 17:55) lira1 написал(а):
define("NO_PASSWORD","Нет пароля");
define("NOT_PASSWORD","Пароль меньше 7 символов");
define("POVTOR_PASSWORD","Пароли не совпадают");
define("NO_EMAIL","Не указан email");
define("INVALID_EMAIL","E-mail введен некорректно");

Так?
Как я поняла эти значения и в Valid нужно прописать?

Спустя 11 минут, 35 секунд (4.03.2009 - 18:06) twin написал(а):
Да. Только послушай совета. Старайся не пользовать транслит, это не профессионально и иногда даже смешно. Потрать пару секунд на русско-английский словарь. Так сразу и язык подучишь. Вот POVTOR по английски будет примерно REPEAT, а в нашем случае DIFFERENCE (различие) или сокращение можно DIFFER_PASS к примеру. Потому что в коде могут возникнуть разночтения. Тут пароли не совподают, а если по константе судить, получается что повторяются.

Спустя 7 минут, 52 секунды (4.03.2009 - 18:14) lira1 написал(а):
Хорошо, буду стараться.

Таблицы не закачиваются в базу
Ответ MySQL: Документация
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(
`id` int(11) NOT NULL auto_increment,
`id_user` int(11) NOT NULL,
`da' at line 1 sad.gif

Спустя 20 минут, 46 секунд (4.03.2009 - 18:35) twin написал(а):
Что то у тебя неправильно записано. Вот тут:
`id_user` int(11) NOT NULL,
`da' Наверное опять русская буква. У меня с твоего листинга все встало.
(Во фразочка biggrin.gif )
Tеперь следующий этап. Будем селекты засовывать. Куда их? Наверное и туда и туда надо. Ведь не во всем мире же искать... хотя кто знает biggrin.gif .
Ну в общем так. Селект засовываем в функцию, что бы не писать на каждой странице. Примерно так:
PHP
<?
function country()
{
$country_id = isset($_POST['country_id'])?$_POST['country_id']:NULL;
// выбираем столбец name из таблицы country
$query = "SELECT * FROM `".PREFIX."country`";
$res = mysql_query($query);
$select = "<select name=\"country_id\" onchange=\"document.getElementById('new_city').value='1';document.getElementById('frm').submit()\" >";
    while($row = mysql_fetch_array($res))
    {
    $select .= "<option ";
        if($row['country_id'] == $country_id)
        $select .="selected=\"selected\"";
    $select .= " value='".$row['country_id']."'>".$row['name']."</option>\r\n";
    }
$select .= "</select>";    
return     $select
;
}
Остальные сама.

Спустя 16 минут, 28 секунд (4.03.2009 - 18:51) lira1 написал(а):
da у меня вообще там нет

Спустя 2 минуты, 32 секунды (4.03.2009 - 18:54) twin написал(а):
Это кусочек `date`

Спустя 8 минут, 7 секунд (4.03.2009 - 19:02) lira1 написал(а):
PHP
function region()
{
$region_id = isset($_POST['region_id'])?$_POST['region_id']:NULL;
$query = "SELECT * FROM `".PREFIX."region`";
$res = mysql_query($query);
$select = "<select name=\"region_id\" 

onchange=\"document.getElementById('new_city').value='1';document.getElementById('frm').s

ubmit()\" >"
;
    while($row = mysql_fetch_array($res))
    {
    $select .= "<option ";
        if($row['region_id'] == $region_id)
        $select .="selected=\"selected\"";
    $select .= " value='".$row['region_id']."'>".$row['name']."</option>\r\n";
    }
$select .= "</select>";    
return     $select
;
}
function city()
{
$region_id = isset($_POST['city_id'])?$_POST['city_id']:NULL;
$query = "SELECT * FROM `".PREFIX."city`";
$res = mysql_query($query);
$select = "<select name=\"city_id\" 

onchange=\"document.getElementById('new_city').value='1';document.getElementById('frm').s

ubmit()\" >"
;
    while($row = mysql_fetch_array($res))
    {
    $select .= "<option ";
        if($row['city_id'] == $city_id)
        $select .="selected=\"selected\"";
    $select .= " value='".$row['city_id']."'>".$row['name']."</option>\r\n";
    }
$select .= "</select>";    
return     $select
;
}

Спустя 1 час, 20 минут, 43 секунды (4.03.2009 - 20:23) twin написал(а):
Немного ты напутала с непривычки, но дело понятное - букаф незнакомых много. Вот рабочий вариант, обзови selects.php , положи в каталог functions и запусти. Пока так, чтоб проверить, потом мы аякс прикрутим. На досуге найди 10 различий smile.gif . Что не понятно, спрашивай сразу.
PHP
<?php 
include 
("../config.php");
function country()
{
$country_id = isset($_POST['country_id'])?$_POST['country_id']:NULL;
// выбираем столбец name из таблицы country
$query = "SELECT * FROM `".PREFIX."country`";
$res = mysql_query($query);
$select = "<select name=\"country_id\" onchange=\"document.getElementById('new_city').value='1';document.getElementById('frm').submit()\" >
<option value='0'>- Выберите страну -</option>"
;
    while($row = mysql_fetch_array($res))
    {
    $select .= "<option ";
        if($row['country_id'] == $country_id)
        $select .="selected=\"selected\"";
    $select .= " value='".$row['country_id']."'>".$row['name']."</option>\r\n";
    }
$select .= "</select>";    
return     $select
;
}

function region()
{
$country_id = isset($_POST['country_id'])?$_POST['country_id']:NULL;
$region_id = isset($_POST['region_id'])?$_POST['region_id']:NULL;
$query = "SELECT * FROM `".PREFIX."region` WHERE `country_id`='".(int)$country_id."'";
$res = mysql_query($query);
$select = "<select name=\"region_id\" onchange=\"document.getElementById('new_reg').value='1'; document.getElementById('frm').submit()\" >
<option  id=\"region\" value='0'>- Выберите pегион -</option>"
;

    while($row = mysql_fetch_array($res))
    {
    $select .= "<option ";
        if($row['region_id'] == $region_id)
        $select .="selected=\"selected\"";
    $select .= " value='".$row['region_id']."'>".$row['name']."</option>\r\n";
    }
$select .= "</select>";    
return     $select
;
}

function city()
{
$region_id = isset($_POST['region_id'])?$_POST['region_id']:NULL;
$city_id = isset($_POST['city_id'])?$_POST['city_id']:NULL;
$query = "SELECT * FROM `".PREFIX."city` WHERE `region_id`='".(int)$region_id."'";
$res = mysql_query($query);
$select = "<select name=\"city_id\" onchange=\"document.getElementById('frm').submit()\" >
<option  value='0'>- Выберите город -</option>"
;
    while($row = mysql_fetch_array($res))
    {
    $select .= "<option ";
        if($row['city_id'] == $city_id)
        $select .="selected=\"selected\"";
    $select .= " value='".$row['city_id']."'>".$row['name']."</option>\r\n";
    }
$select .= "</select>";    
return  $select
;
}
?>


<form id="frm" action="" method="post">
<input id="new_city" name="new_city" type="hidden" />
<input id="new_reg" name="new_reg" type="hidden" />
<?php 

echo country
(); 

if(isset($_POST['country_id']))
echo region();

if(isset(
$_POST['region_id']) && empty($_POST['new_city']))
echo city();
$city_id = isset($_POST['city_id'])?$_POST['city_id']:NULL;
if(isset(
$_POST['city_id']) && empty($_POST['new_city'])&& empty($_POST['new_reg']))
{
$query = "SELECT `name` FROM `".PREFIX."city` WHERE `city_id`='".(int)$city_id."' LIMIT 1";
$res = mysql_query($query);
echo "<h1>Хочу в ",mysql_result($res,0,0),"</h1>";
}
?>
</form>

Только переименуй таблицы с городами-странами. Добавь префикс. Что там с той таблицей, получилось?

PS Научите кто нибудь, как под кат прятать это все... не могу кнопку найтить... sad.gif

Спустя 6 минут, 51 секунда (4.03.2009 - 20:30) Bezdna написал(а):
lira1 по окончании предлагаю по мотивам сего топика написать книгу "Как я стала профессиональным программистом за три недели". (На полном серьёзе). От своего процента отказываюсь в пользу twin-а. biggrin.gif

Спустя 50 минут (4.03.2009 - 21:20) lira1 написал(а):
Цитата
lira1 по окончании предлагаю по мотивам сего топика написать книгу "Как я стала профессиональным программистом за три недели". (На полном серьёзе). От своего процента отказываюсь в пользу twin-а. biggrin.gif


вот как только сделаю хороший сайт, сразу сяду за книгу biggrin.gif

Спустя 38 секунд (4.03.2009 - 21:20) lira1 написал(а):
А дошло мы потом сюда аякс будем добавлять

Спустя 3 минуты, 46 секунд (4.03.2009 - 21:24) Bezdna написал(а):
Цитата (twin @ 4.03.2009 - 17:23)
PS Научите кто нибудь, как под кат прятать это все... не могу кнопку найтить... sad.gif


Свернутый текст
S упавшая biggrin.gif

Спустя 31 минута, 10 секунд (4.03.2009 - 21:55) twin написал(а):
Bezdna Спасибо!
Свернутый текст
Ума не хватило, что буква М бегает, всю жизнь думал, что это бегущая строка biggrin.gif

lira1
С кодировками нужно разобраться на берегу, иначе потом много чего надо будет перекодировать. Ты настроила редактор? Посмотри, лежит ли в корне .htacces который я тебе дал в комплекте. И проверь кодировку файлов.


Спустя 1 час, 1 минута, 40 секунд (4.03.2009 - 22:57) Bezdna написал(а):
Цитата (twin @ 4.03.2009 - 18:55)
Bezdna Спасибо!
Свернутый текст


Свернутый текст
Тут ещё и SP исчезающее, наверное тест на трезвость. biggrin.gif biggrin.gif

Спустя 11 минут, 9 секунд (4.03.2009 - 23:08) Shine написал(а):
я тут прочита все что вы обсуждаете и много полезной информации для себя нашла smile.gif ...но вы используете для выборки выпадающие списки, а мне нужно сделать так, что бы название узла из таблицы Uzel было ссылкой на список клиентов из таблицы Client этой же БД, и чтобы выбирались только те клиенты у которых ID_uzla из таблицы Uzel совпадает с ID_uzla из таблицы Client . подскажите как сделать такой код? Вот код, который выводит всю информацию таблицы Uzel:
PHP
<?php
$db_name
="Passport_object";
$table_name="Uzel";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");
$sql="select * from $table_name order by ID_uzel";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос");
while(
$row=mysql_fetch_array($result)) {
$ID_uzel=$row['ID_uzel'];
$Name_uzel=$row['Название_узла'];
$Adress_uzel=$row['Адрес_узла'];
$Phone_uzel=$row['Телефон_узла'];
$Resp_person_uzel=$row['Ответственное_лицо'];
$display_block .="
<p><strong>$ID_uzel.$Name_uzel</strong>
Адрес узла: $Adress_uzel, Телефон:$Phone_uzel, Ответственное лицо: $Resp_person_uzel</p>
"
;
}

Спустя 7 минут, 26 секунд (4.03.2009 - 23:15) twin написал(а):
Ну для этого нужно как минимум знать структуру таблиц. Покажи, как там все это организовано

Спустя 31 минута, 3 секунды (4.03.2009 - 23:47) Shine написал(а):
Цитата
Покажи, как там все это организовано


1 таблица "Uzel":
ID_uzel int(11) NULL auto_increment,
Название_узла varchar(70) NOT NULL ,
Адрес_узла varchar(70) NOT NULL ,
Телефон_узла varchar(15) NOT NULL ,
Ответственное_лицо varchar(70)NOT NULL ,
PRIMARY KEY ( ID_uzel )

2 таблица "Client":
ID_client int(11) NULL auto_increment ,
Имя_клиента varchar(70) NOT NULL ,
Адрес_клиента varchar(70) NOT NULL ,
Телефон_клиента varchar(15) NOT NULL ,
ID_uzel int(11)
PRIMARY KEY ( ID_client )


Спустя 24 минуты, 8 секунд (5.03.2009 - 00:11) twin написал(а):
Впервые встречаю названия полей бд кирилицей.... Или это псевдонимы?
Ну вот как то так, если в таком стиле писать:

Свернутый текст
PHP
<?php
$db_name
="Passport_object";
$table_name="Uzel";
$connection=@mysql_connect("localhost","root")
or die ("Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name, $connection)
or die("Невозможно выбрать БД.");
$sql="select * from $table_name order by ID_uzel";
$result=@mysql_query($sql, $connection)
or die ("Невозможно выполнить запрос");
    while($row=mysql_fetch_array($result)) {
    $ID_uzel=$row['ID_uzel'];
    $Name_uzel=$row['Название_узла'];
    $Adress_uzel=$row['Адрес_узла'];
    $Phone_uzel=$row['Телефон_узла'];
    $Resp_person_uzel=$row['Ответственное_лицо'];
    $display_block .="
    <p><a href=\"?id_uzel="
.$ID_uzel."\">".$Name_uzel."</a>
    Адрес узла: $Adress_uzel, Телефон:$Phone_uzel, Ответственное лицо: $Resp_person_uzel</p>
    "
;
}

$table_name="Client";
if(isset(
$_GET['id_uzel']))
{
$sql="select * from $table_name order by ID_uzel WHERE ID_uzel='".(int)$_GET['id_uzel']."'";
$result=@mysql_query($sql, $connection)
or die ("Невозможно выполнить запрос");
    while($row=mysql_fetch_array($result)) 
    
{
# А тут выводи все что нужно 
    }
}

Спустя 1 час, 25 минут, 32 секунды (5.03.2009 - 01:36) Enkei написал(а):
Итак, скрипт с выпадающим списком интегрировал в htm страницу при помощи трех инклюдов. Теперь есть страница с формами (сам выпадающий список стран и городов, несколько радиобаттоннов, textarea и еще пару selectoв) теперь надо организовать чтобы по нажатии кнопки SUBMIT внизу данные из форм передавались в а базу. Что тут можете посоветовать, как правильно организовать структуру базы. Создать одну таблицу, в ней столбцов по количеству форм или несколько таблиц?! А потом чтобы по одному критерию можно было вывести список записей, ну это потом.

Спустя 10 минут, 33 секунды (5.03.2009 - 01:47) twin написал(а):
Во вопросик.. Это вообще то называется архитектура сайта. И посоветовать тебе ни кто ничего не сможет. Это зависит от назначения, целей и задач. В целом от технического задания. По технике и стилю оформления тоже у всех по разному. Если интересно мое мнение, то я уже основное написал в этой теме.

Спустя 6 часов, 24 минуты, 49 секунд (5.03.2009 - 08:12) lira1 написал(а):
Цитата
С кодировками нужно разобраться на берегу, иначе потом много чего надо будет перекодировать. Ты настроила редактор? Посмотри, лежит ли в корне .htacces который я тебе дал в комплекте. И проверь кодировку файлов.


Да такой есть .htacces. Редактор настроила, но ыlect xtез блокнот сохраняла. В базе тоже везде utf. sad.gif

Спустя 17 минут, 58 секунд (5.03.2009 - 08:30) twin написал(а):
Сложи все в архив, сунь его куда нибудь на хостинг и дай ссылку. Я гляну.

Спустя 14 минут, 39 секунд (5.03.2009 - 08:44) lira1 написал(а):

Спустя 26 минут, 39 секунд (5.03.2009 - 09:11) twin написал(а):
Вот файлы у тебя в кодировке ANSI, а надо utf-8. Ты каким редактором пользуешься?

Спустя 1 час, 2 минуты, 1 секунда (5.03.2009 - 10:13) lira1 написал(а):
блокнотом
и
xint

Спустя 17 минут, 35 секунд (5.03.2009 - 10:30) twin написал(а):
Лучше использовать редактор с подсветкой синтаксиса. Вот это (Notepad++) довольно неплохая и популярная штука. Только не ставь рускоязычный - глючит.
В нем открой файл, найди в меню Format. Там поставь галочку Convert to UTF-8 и пресохрани.

Спустя 1 час, 3 минуты, 50 секунд (5.03.2009 - 11:34) Shine написал(а):
Цитата
Впервые встречаю названия полей бд кирилицей.... Или это псевдонимы?

нет..не псевдонимы smile.gif...просто я только изучаю все это дело и подумала, что мне так будет легче, а сейчас исправлять все не хочется))...
я вставила запрос, который ты мне сказал:
SQL
$sql="select * from $table_name order by ID_client WHERE ID_uzel='".(int).$_GET['ID_uzel']"'";

а мне выдает ошибку: syntax error, unexpected '.'
пробовала исправлять, не получается((

Спустя 7 минут, 4 секунды (5.03.2009 - 11:41) twin написал(а):
Ошибку в студию. Там где то нехватает точки с запятой или скобки... И поля луче бы все таки переименовать, пока не поздно.

PS
PHP
<?
$sql="select * from $table_name order by ID_client WHERE ID_uzel='".(int)$_GET['ID_uzel']."'";
Точку тут пропустил. А в другом месте лишняя... Скузми. unsure.gif

Спустя 32 минуты, 14 секунд (5.03.2009 - 12:14) Shine написал(а):
Цитата
И поля луче бы все таки переименовать, пока не поздно.
переименовала smile.gif...а вот в запросе он все равно ругается, напоминает про точку...я убрала точку после int:
SQL
ID_uzel='".(int) $_GET['ID_uzel']."'";

и он у меня стал загружать страницу, но, к сожалению, не выводит данные, а выводит просто пустую страницу с кнопками...

Спустя 3 минуты, 25 секунд (5.03.2009 - 12:17) twin написал(а):
Код в студию.

Спустя 2 минуты, 39 секунд (5.03.2009 - 12:20) Shine написал(а):
вот код, который выводит БД узлов:
PHP
<?php
$db_name
="Passport_object";
$table_name="Uzel";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");
$sql="select * from $table_name order by ID_uzel";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос");
while(
$row=mysql_fetch_array($result)) {
$ID_uzel=$row['ID_uzel'];
$Name_uzel=$row['Name_uzel'];
$Adress_uzel=$row['Adress_uzel'];
$Phone_uzel=$row['Phone_uzel'];
$Resp_person_uzel=$row['Resp_person_uzel'];
$display_block .="
<p><strong>$ID_uzel.</strong><a href=bd_client.php>$Name_uzel</a>
Адрес узла: $Adress_uzel, Телефон:$Phone_uzel, Ответственное лицо: $Resp_person_uzel</p>
"
;
}

и код, который выводит БД клиентов:
PHP
<?php
$db_name
="Passport_object";
$table_name="Client";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");
$sql="select * from $table_name order by ID_client";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос");
if(isset(
$_GET['ID_uzel']))
{
$sql="select * from $table_name order by ID_client WHERE ID_uzel='".(int) $_GET['ID_uzel']."'";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос");
    while(
$row=mysql_fetch_array($result)) 
    {
$ID_client=$row['ID_client'];
$Name_client=$row['Name_client'];
$Adress_client=$row['Adress_client'];
$Phone_client=$row['Phone_client'];
    }
$display_block .="
<p><strong>$ID_client.$Name_client</strong>
Адрес клиента: $Adress_client, Телефон:$Phone_client</p>
"
;
}

Спустя 18 минут, 27 секунд (5.03.2009 - 12:38) twin написал(а):
Не понятно, в одном это файле или нет. Если в одном, то не нужно два раза коннектится к базе. И я писал совсем не так, тут у ссылки нет GET параметра, по которому и осуществляется запрос. Нужно так:
PHP
<?
    $display_block .="
    <p><a href=\"bd_client.php?id_uzel="
.$ID_uzel."\">".$Name_uzel."</a>
    Адрес узла: $Adress_uzel, Телефон:$Phone_uzel, Ответственное лицо: $Resp_person_uzel</p>
    "
;
А вообще лучше бы открыть новую тему, а то эта и так кандидатом в книгу рекордов Гинесса числится smile.gif

Спустя 7 минут, 56 секунд (5.03.2009 - 12:46) Bezdna написал(а):
Цитата (twin @ 5.03.2009 - 09:38)
А вообще лучше бы открыть новую тему


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

Спустя 43 минуты, 30 секунд (5.03.2009 - 13:30) Shine написал(а):
Цитата
Не понятно, в одном это файле или нет. Если в одном, то не нужно два раза коннектится к базе

это находится в 2-х разных файлах: первый файл - vsya_bd.php - выводит список узлов, у которых названия являются ссылками на список клиентов. Второй файл - bd_client.php - как раз и выводит список клиентов, у которых ID_uzel из таблицы Client соответствует ID_uzel из таблицы Uzel.
Цитата
у ссылки нет GET параметра, по которому и осуществляется запрос

я исправила, но все равно выводит пустой лист с кнопками. Вот исправленный вариант - vsya_bd.php:
Свернутый текст
PHP
<?php
$db_name
="Passport_object";
$table_name="Uzel";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");
$sql="select * from $table_name order by ID_uzel";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос");
while(
$row=mysql_fetch_array($result)) {
$ID_uzel=$row['ID_uzel'];
$Name_uzel=$row['Name_uzel'];
$Adress_uzel=$row['Adress_uzel'];
$Phone_uzel=$row['Phone_uzel'];
$Resp_person_uzel=$row['Resp_person_uzel'];
$display_block .="
<p><strong>$ID_uzel.</strong><a href=\"bd_client.php?id_uzel="
.$ID_uzel."\">".$Name_uzel."</a>
Адрес узла: $Adress_uzel, Телефон:$Phone_uzel, Ответственное лицо: $Resp_person_uzel</p>
"
;
}
HTML
<html>
<head>
<title>Узлы</title>
</head>
<body bgcolor="#FFEBCD">
<h2>Узлы</h2>
<? echo"$display_block"; ?><br><br>
<table cellspacing=3 cellpadding=5>
<form method="post" action="pick_uzel.php">
<td>
<p><input type="SUBMIT" name="submit" value="Изменить данные"></p>
</td></form>
<td>
<form method="post" action="dobavl_uzel.html">
<p><input type="SUBMIT" name="submit" value="Добавить данные"></p>
</td>
</form></table>
</body>
</html>

и файл bd_client.php
Свернутый текст
PHP
<?php
$db_name
="Passport_object";
$table_name="Client";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");
$sql="select * from $table_name order by ID_client";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос");
if(isset(
$_GET['ID_uzel']))
{
$sql="select ID_client, Name_client, Adress_client, Phone_client 
from $table_name order by ID_client WHERE ID_uzel='"
.(int) $_GET['ID_uzel']."'";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос");
    while(
$row=mysql_fetch_array($result)) 
    {
$ID_client=$row['ID_client'];
$Name_client=$row['Name_client'];
$Adress_client=$row['Adress_client'];
$Phone_client=$row['Phone_client'];
    }
$display_block .="
<p><strong>$ID_client.$Name_client</strong>
Адрес клиента: $Adress_client, Телефон:$Phone_client</p>
"
;
}

HTML
<html>
<head>
<title>Клиенты</title>
</head>
<body bgcolor="#FFEBCD">
<h2>Клиенты</h2>
<? echo"$display_block"; ?><br><br>
<table cellspacing=3 cellpadding=5>
<form method="post" action="pick_client.php">
<td>
<p><input type="SUBMIT" name="submit" value="Изменить данные"></p>
</td></form>
<td>
<form method="post" action="dobavl_client.php">
<p><input type="SUBMIT" name="submit" value="Добавить данные"></p>
</td>
</form></table>
</body>
</html>


Спустя 22 минуты, 28 секунд (5.03.2009 - 13:52) Shine написал(а):
чуть чуть не правильный выложила файл bd_client.php. вот другой:
Свернутый текст
PHP
<?php
$db_name
="Passport_object";
$table_name="Client";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");
if(isset(
$_GET['ID_uzel']))
{
$sql="select ID_client, Name_client, Adress_client, Phone_client 
from $table_name order by ID_client WHERE ID_uzel='"
.(int) $_GET['ID_uzel']."'";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос");
    while(
$row=mysql_fetch_array($result)) 
    {
$ID_client=$row['ID_client'];
$Name_client=$row['Name_client'];
$Adress_client=$row['Adress_client'];
$Phone_client=$row['Phone_client'];
    }
$display_block .="
<p><strong>$ID_client.$Name_client</strong>
Адрес клиента: $Adress_client, Телефон:$Phone_client</p>
"
;
}

HTML
<html>
<head>
<title>Клиенты</title>
</head>
<body bgcolor="#FFEBCD">
<h2>Клиенты</h2>
<? echo"$display_block"; ?><br><br>
<table cellspacing=3 cellpadding=5>
<form method="post" action="pick_client.php">
<td>
<p><input type="SUBMIT" name="submit" value="Изменить данные"></p>
</td></form>
<td>
<form method="post" action="dobavl_client.php">
<p><input type="SUBMIT" name="submit" value="Добавить данные"></p>
</td>
</form></table>
</body>
</html>

Спустя 10 минут, 56 секунд (5.03.2009 - 14:03) twin написал(а):
Вот тут вывод почему то убежал за цикл.
PHP
<?
$Phone_client=$row['Phone_client'];
    }
$display_block .="
<p><strong>$ID_client.$Name_client</strong>
Адрес клиента: $Adress_client, Телефон:$Phone_client</p>
"
;
}

Вот и не видно ничего. Наверное надо так:
PHP
<?
$Phone_client=$row['Phone_client'];
    
$display_block 
.="
<p><strong>$ID_client.$Name_client</strong>
Адрес клиента: $Adress_client, Телефон:$Phone_client</p>
"
;

    }
}
А вообще в таком случае лучше пользоваться printf()

Спустя 41 минута, 17 секунд (5.03.2009 - 14:44) Shine написал(а):
Цитата
Вот тут вывод почему то убежал за цикл.

вывод переставила и $display_block .= заменила на printf(),но...не помогло((

Спустя 54 секунды (5.03.2009 - 14:45) lira1 написал(а):
Сейчас кодировка нормальная. Но только выводит выберите страну, а дальше пустой белый список, и с регионами так же, и городами

Спустя 1 час, 36 минут, 34 секунды (5.03.2009 - 16:22) twin написал(а):
Shine

Цитата
заменила на printf(),но...не помогло((
Просто так нельзя менять, надо по правилам.
Ну сделай просто:
PHP
<?
    while(
$row=mysql_fetch_array($result)) 
    {
echo 
$row['ID_client'];
.
.
Что он скажет?

lira1
Ты не сказала кстати, что он выдает нотис. Ругается на header()
Я несколько раз слышал про такое, но сам впервые встречаю. Твой редактор как то криво пишет файлы. Выкинь его, перепмши все в новом. Можешь из старого скопировать. Только не открывай свои файлы, а именно перепиши. Сделай новые, в новом редакторе. Из старых файлов листинг скопируй. И записывай не поверх старых файлов, а вообще новые сделай.

Спустя 2 часа, 6 минут, 56 секунд (5.03.2009 - 18:29) Bezdna написал(а):
Цитата (twin @ 5.03.2009 - 13:22)
Твой редактор как то криво пишет файлы.


Пресловутые 3 байта. biggrin.gif

lira1 переконвертируй файлы в 'utf-8 without BOM'.

Спустя 4 минуты, 29 секунд (5.03.2009 - 18:33) lira1 написал(а):
Как таблицы в базе переименовать без потери данных?

Спустя 22 минуты, 40 секунд (5.03.2009 - 18:56) Shine написал(а):
PHP
<?
    while(
$row=mysql_fetch_array($result)) 
    {
echo 
$row['ID_client'];
.
.

не помогло...так же не выводит данные(..сейчас вынесу эту тему в отдельную, может кто еще подключится к решению этой проблемы:-)

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

Спустя 4 минуты (5.03.2009 - 19:00) lira1 написал(а):
Все с таблицами и select ами разобралась. Сейчас все нормально отображается. Все эти пресловутые кодировки.
twin, что дальше делать будем?

Спустя 21 минута, 30 секунд (5.03.2009 - 19:21) Bezdna написал(а):
Shine

В этом запросе ты хочешь выбрать поле ID_client с тем же ограничением?

SQL
$sql="select ID_client, Name_client, Adress_client, Phone_client
from $table_name order by ID_client WHERE ID_uzel='".(int) $_GET['ID_uzel']."'";


Спустя 17 минут, 55 секунд (5.03.2009 - 19:39) twin написал(а):
lira1

Дальше нам нужна функция проверки уникальности логина. Задача такая. Нужна пользовательская функция, аргументом принимающая переменную $login, осуществляющая поиск по таблице PREFIX.users этого значения по колонке `login` и возвращающая true в случае успеха. Справишься?

Спустя 11 минут, 12 секунд (5.03.2009 - 19:50) twin написал(а):
Shine
Вот что значит некрасивый стиль написания кода. Я order by вообще не разглядел. Я бы все таки посоветовал придерживаться общепринятых стандартов. То есть SQL операторы писать в верхнем регистре, а названия полей в нижнем. Вот так:
PHP
<?
$sql="SELECT `id_client`, `name_client`, `adress_client`, `phone_client` 
FROM $table_name ORDER `id_client` WHERE `id_uzel`='"
.(int) $_GET['ID_uzel']."'";
Тогда будет понятнее, что запрос выполнен с ошибкой синтаксиса. А что бы это узнать наверняка, нужно применить такую конструкцию:
PHP
<?
$result = mysql_query($sql, $connection)
or die ("Невозможно выполнить запрос потому что: " . mysql_error());

Спустя 17 минут, 30 секунд (5.03.2009 - 20:08) lira1 написал(а):
Это конечно для меня как китайская грамота. Сейчас почитаю, попробую.

Спустя 59 минут, 57 секунд (5.03.2009 - 21:08) twin написал(а):
Ничего не китайская. Все очень просто. Пишем запрос:
PHP
<?
$res = mysql_query("SELECT COUNT(*) AS `cnt` FROM ".PREFIX."`users` WHERE `login`='".$login."'");

потом получаем результат:
PHP
<?
mysql_result($res,0,0);
а потом эту бредятину smile.gif суём в функцию:
PHP
<?
function check_login($login)
{
$res = mysql_query("SELECT COUNT(*) AS `cnt` FROM ".PREFIX."`users` WHERE `login`='".$login."'");
if(
mysql_result($res,0,0) > 0)
return true;
}
<?

PS Мне всегда было любопытно, что заставляет красивых молодых девушек заниматься тем, чем занимаются волосатые небритые дядьки с красными глазами, то бишь программированием?

Спустя 5 минут, 13 секунд (5.03.2009 - 21:13) Shine написал(а):
Bezdna
Цитата
В этом запросе ты хочешь выбрать поле ID_client с тем же ограничением?

в этом запросе я хочу, чтобы у меня выбирались данные те у которых id_uzel из таблицы Client соответствует id_uzel из таблицы Uzel и упорядочивались по id_client smile.gif
twin
я исправила код...он у меня выдавал синтаксическую ошибку: order by должен стоять в конце, после WHERE, но и это не помогло...также выдает пустую страницу((

Спустя 13 минут, 36 секунд (5.03.2009 - 21:27) twin написал(а):
Shine
Полностью базу и скрипт в каком он щас состоянии в студию. Лучше архивом.

Спустя 13 минут, 6 секунд (5.03.2009 - 21:40) twin написал(а):
Префикс у нас в конфиге, мы его одним движением сможем поменять и поставить еще один сайт в ту же базу к примеру. По этому все названия таблиц в запросах надо писать так. Ну а теперь бум делать саму регистрацию. Попробуй написать запрос, который пропишет все данные из формы в базу.

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

Спустя 17 секунд (5.03.2009 - 21:40) Bezdna написал(а):
Цитата (lira1 @ 5.03.2009 - 18:31)
ребенок маленький


И получается совмещать программирование с маленьким ребёнком?

Спустя 39 секунд (5.03.2009 - 21:41) Shine написал(а):
Цитата
Полностью базу и скрипт в каком он щас состоянии в студию. Лучше архивом.

а как здесь скинуть архивом?...и базу...я ее делала в http://localhost/Tools/phpmyadmin... скидывать файлы которые создались при создании базы? smile.gif

Спустя 4 минуты, 56 секунд (5.03.2009 - 21:46) lira1 написал(а):
Цитата
Цитата
PREFIX."`users`


Я про users ? почему не user?

Цитата
И получается совмещать программирование с маленьким ребёнком?


В основном ночью) Ну и днем немного, правда он за это иногда долбит компьютер)

Спустя 3 минуты, 6 секунд (5.03.2009 - 21:49) twin написал(а):
Цитата
скидывать файлы которые создались при создании базы?
Нет, просто дамп. То есть файл, который сделает phpmyadmin при зкспорте базы. Там есть вкладка "экспорт" и внизу потом надо поставить галочку на "архивировать в zip"

Цитата
Я про users ? почему не user?
Потому что я ошибся. Вот хорошо, что не копипастишь тупо. smile.gif

Спустя 6 минут, 20 секунд (5.03.2009 - 21:55) Shine написал(а):
архивы создала:)..а как их прикрепить?))

Спустя 1 час, 2 минуты, 58 секунд (5.03.2009 - 22:58) lira1 написал(а):
Запрос так?

PHP
$insert "INSERT INTO `table strana_user`('login','password','email','sex','name','day','month','year','сode') VALUES($login,$password,$email,$sex,$name,$day,$month,$year,$сode)";
$sql mysql_query($insert);

Спустя 1 минута, 55 секунд (5.03.2009 - 23:00) Shine написал(а):
вот файлы со всеми обновлениями.
vsya_bd.php
Свернутый текст
PHP
<?php
$db_name
="Passport_object";
$table_name="Uzel";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");
$sql="SELECT * FROM $table_name ORDER by 'id_uzel'";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос потому что:" mysql_error());
while(
$row=mysql_fetch_array($result)) {
$id_uzel=$row['id_uzel'];
$name_uzel=$row['name_uzel'];
$adress_uzel=$row['adress_uzel'];
$phone_uzel=$row['phone_uzel'];
$resp_person_uzel=$row['resp_person_uzel'];
$display_block .="
<p><strong>$id_uzel.</strong><a href=\"bd_client.php?id_uzel="
.$id_uzel."\">".$name_uzel."</a>
Адрес узла: $adress_uzel, Телефон:$phone_uzel, Ответственное лицо: $resp_person_uzel</p>
"
;
}
HTML
<html>
<head>
<title>Узлы</title>
</head>
<body bgcolor="#FFEBCD">
<h2>Узлы</h2>
<? echo"$display_block"; ?><br><br>
<table cellspacing=3 cellpadding=5>
<form method="post" action="pick_uzel.php">
<td>
<p><input type="SUBMIT" name="submit" value="Изменить данные"></p>
</td></form>
<td>
<form method="post" action="dobavl_uzel.html">
<p><input type="SUBMIT" name="submit" value="Добавить данные"></p>
</td>
</form></table>
</body>
</html>

bd_client.php
Свернутый текст
PHP
<?php
$db_name
="Passport_object";
$table_name="Client";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");
if(isset(
$_GET['id_uzel']))
{
$sql="SELECT 'id_client', 'name_client', 'adress_client', 'phone_client' 
FROM $table_name  WHERE 'id_uzel' ='"
.(int) $_GET['id_uzel']."' order by 'id_client'";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос потому что:" mysql_error());
    while(
$row=mysql_fetch_array($result)) 
    {
$id_client=$row['id_client'];
$name_client=$row['name_client'];
$adress_client=$row['adress_client'];
$phone_client=$row['phone_client'];
$display_block .="
<p><strong>$id_client.$name_client</strong>
Адрес клиента: $adress_client, Телефон:$phone_client</p>
"
;
    }
}
HTML
<html>
<head>
<title>Клиенты</title>
</head>
<body bgcolor="#FFEBCD">
<h2>Клиенты</h2>
<? echo"$display_block"; ?><br><br>
<table cellspacing=3 cellpadding=5>
<form method="post" action="pick_client.php">
<td>
<p><input type="SUBMIT" name="submit" value="Изменить данные"></p>
</td></form>
<td>
<form method="post" action="dobavl_client.php">
<p><input type="SUBMIT" name="submit" value="Добавить данные"></p>
</td>
</form></table>
</body>
</html>

а архив не знаю как прикрепить..

Спустя 1 час, 2 минуты, 25 секунд (6.03.2009 - 00:02) twin написал(а):
lira1
Вот смотри, сейчас все профессиональные тайны пораскрою biggrin.gif .
Чем отличается профессионал от любителя. Тем, что профессионалу уже это все поднадоело и он ищет нестандартные пути решения. Лень - двигатель прогресса. Ты этот запрос писала конечно же сама, долго роясь в учебниках и интернете. Оно конечно полезно, но результат не всегда радует. Вот сейчас ты ошиблась. А написать такой запрос - дело трех минут.
1. Заходишь в phpmyadmin
2. выбираешь нужную таблицу
3. там есть вкладка "Вставка". Тырц.
4. появляется практически твоя форма. Заполняешь названиями полей (просто копипастишь их слева)
5. пуск.
Результат:

SQL
INSERT INTO `strana_user` ( `id` , `date` , `login` , `password` ,
`email` , `sex` , `name` , `day` ,
`month` , `year` , `сode` )
VALUES (
'', NOW( ) , 'login', 'password',
'email', 'ж', 'name', 'day',
'month', 'year', 'сode'
);
(там сверху пишется последний запрос)

Подставляешь результат в функцию и доводишь до ума:

PHP
$insert = "INSERT INTO `strana_user` ( `id` , `date` , `login` , `password`
 , `email` , `sex` , `name` , `day` , 
`month` , `year` , `сode` ) 
VALUES (
'', NOW( ) , '$login', '$password', 
'$email', '$sex', '$name', '$day', 
'$month', '$year', '$сode');"
;
$sql = mysql_query($insert);

Только лучше все таки так:

PHP
$insert = "INSERT INTO `strana_user` 
( `id` , `date` , `login` , `password` , 
`email` , `sex` , `name` , `day` , 
`month` , `year` , `сode` ) 
VALUES (
'', 
NOW( ) ,
'"
.$login."',
'"
.$password."',
'"
.$email."', 
'"
.$sex."', 
'"
.$name."', 
'"
.$day."', 
'"
.$month."', 
'"
.$year."', 
'"
.$сode."');";

$sql = mysql_query($insert);
потому что с конкатенацией работает гораздо быстрее и выглядет намного читабельнее. А префикс ты так и не поставила кстати.

Shine
Сейчас, сек, я посмотрю.

Спустя 7 минут, 54 секунды (6.03.2009 - 00:10) Bezdna написал(а):
Shine В выложенных тобой файлах php и html это разные файлы? Если да, то код <? echo"$переменная"; ?> в html работать не будет.

Спустя 9 минут, 4 секунды (6.03.2009 - 00:19) twin написал(а):
Bezdna
Ну почему не будет? Будет. Если его подключить к файлу php. Это так, я надеюсь?
А вот тут ошибка:
PHP
<?
$sql="SELECT 'id_client', 'name_client', 'adress_client', 'phone_client' 
FROM $table_name  WHERE 'id_uzel' ='"
.(int) $_GET['id_uzel']."' order by 'id_client'";
$result=@mysql_query($sql, $connection);
Кавычки в названиях полей должны быть обратные, а не апострофы. Надо так:
PHP
<?
$sql="SELECT `id_client`, `name_client`, `adress_client`, `phone_client` 
FROM $table_name  WHERE `id_uzel` ='"
.(int) $_GET['id_uzel']."' order by `id_client`";
$result=@mysql_query($sql, $connection);

а в данном случае лучше вообще так:
PHP
<?
$sql="SELECT * FROM $table_name  
WHERE `id_uzel` ='"
.(int) $_GET['id_uzel']."' ORDER BY `id_client`";
$result=@mysql_query($sql, $connection);

Спустя 1 минута, 23 секунды (6.03.2009 - 00:21) Enkei написал(а):
Вот и я снова явился. дошло дело до создания следующей таблицы в БД. Нужно создать теперь таблицу events, вот сделал наброски:
SQL
CREATE TABLE `events` (
`event_id` int(12) NOT NULL auto_increment,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`country` varchar(50) NOT NULL,
`region` varchar(50) NOT NULL,
`city` varchar(50) NOT NULL,
`hour` int(2) NOT NULL,
`day` int(2) NOT NULL,
`month` int(2) NOT NULL,
`year` int(4) NOT NULL,
`place` varchar(150) NOT NULL,
`description` varchar(600) NOT NULL,
`sex` tinyint(4) NOT NULL,
PRIMARY KEY (`event_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Теперь:
1) если можно поясните назначение выражения в последней строчке - ENGINE=MyISAM DEFAULT (брал с twina примера)
2) незнаю как сюда добавить 10 столбцов со значением типа да/нет (это 10 радиобаттонов в одной форме будут, только один из 10 будет иметь значение 1 при каждом добавлении данных в бд)
3)в последствии нужно будет искать записи по столбцам любому из следующих столбцов либо по нескольким либо по всем, это по желанию юзера
country
region
city
hour (час не даты добавления а который был введен как просто число)
day
month
year
sex
ну и по радиобаттону который я просил во 2 пункте помочь сделать
С нетерпением жду ответа

Спустя 4 минуты, 23 секунды (6.03.2009 - 00:25) lira1 написал(а):
Все понятно, да так уж намного проще biggrin.gif

Цитата
префикс ты так и не поставила кстати.

В смысле? Где?

Кстати все функции в один файл складывать? или как?

Спустя 2 минуты, 10 секунд (6.03.2009 - 00:27) twin написал(а):
Цитата
Вот и я снова явился.

Ребят, я конечно понимаю, что всем хочется помощи, но я не железный и время у меня не резиновое. Давайте попросим у хозяев форума сделать такой раздел - мастеркласс. Если у кого то будет желание тянуть от начала до конца, то значит хорошо. А я просто не разорвусь, вы уж не обессудьте. Или в очередь smile.gif Дайте нам мамбу сначала собрать.
Цитата
В смысле? Где?

В запросе. Так и стоит у тебя `strana_user` вместо `".PREFIX."user`

Цитата
Кстати все функции в один файл складывать? или как?

Нет, в разные. Чтоб легче ориентироваться и подключать только нужные. Функцию про логин можно прямо в валидатор прописать. Только подключи к нему конфигу. И сам валидатор положи в каталог modules/registr

Спустя 3 минуты, 32 секунды (6.03.2009 - 00:31) lira1 написал(а):
Ура я первая biggrin.gif
А..понятно...исправлю wink.gif
Да куда же их все таки складывать?

Спустя 2 минуты, 8 секунд (6.03.2009 - 00:33) Bezdna написал(а):
Цитата (twin @ 5.03.2009 - 21:19)
Ну почему не будет? Будет. Если его подключить к файлу php.


Вот этого подключения я и не заметил.

Спустя 8 минут, 27 секунд (6.03.2009 - 00:41) twin написал(а):
Цитата
Да куда же их все таки складывать?

Вот этот запрос, который ты сделала, в файл registr.php в каталог modules/registr.
Делай пока запрос для анкеты, его в файл ancet.php в эту же директорию.

Спустя 16 минут, 5 секунд (6.03.2009 - 00:57) lira1 написал(а):
Свернутый текст

$insert = "INSERT INTO `".PREFIX."ancet`
( `id` , `id_user` , `date` , `tel` , `icq` , `find` , `age` , `regsex` , `sex1-2` , `groupsex` , `virtsex` , `predsexmoney` , `findsexmoney` , `findlook` , `brak` , `children` , `growth` , `weight` , `dohod` , `orientation` )
VALUES (
'',
NOW( ) ,
'".$tel."',
'".$icq."',
'".$findf."',
'".$age18-25."',
'".$regsex."',
'".$sex1-2"',
'".$groupsex."',
'".$virtsex."',
'".$predsexmoney."',
'".$findsexmoney."',
'".$findlook."',
'".$brakmarried."',
'".$childrenyes."',
'".$growth."',
'".$weight."',
'".$dohodnotjob."',
'".$orientationtrad."');";

$sql = mysql_query($insert);


А вот где несколько значений в таблице, выбирается только одно. С этим как, отдельно их все прописывать?

Спустя 19 минут, 27 секунд (6.03.2009 - 01:17) twin написал(а):
Правило простое. Сколько имен у злементов формы, столько и полей. Если это радиокнопка, то самих кнопок хоть стопицот, имя у них одно.
<input type="radio" name="sex" /> А если текстовое поле или чекбокс, то у каждого разное.
Теперь дальше. Тут начинаются сложности, из за которых обычно происхoдят все дрязги с заказчиками. Нужно определиться, что будет происходить и как, в какой последовательности. Это называется ТЗ (техническое задание). Вот тебе сейчас и нужно его написать. Для начала на регистрацию. Чем подробнее, тем лучше. Прям по пунктам:
1. Форма регистрации на отдельной странице.
2. При некорректном заполнении рядом с полем показывается ошибка
3. При удачном заполнении.....
И так далее. Это будет план действий, по которому мы и соберем регалку. Если бы ты была заказчиком, и в процессе передумала делать так, а захотела по другому, я бы ткнул носом в сослался на это ТЗ и потребовал бы оплату за допработы. Если хочешь стать профессионалом, привыкай делать все только с ТЗ.

Спустя 8 часов, 20 минут, 42 секунды (6.03.2009 - 09:38) lira1 написал(а):
Свернутый текст


На главной странице сайта форма поиска(обычный, расширенный)
Ссылка на регистрация
И ссылка войти
Так же фотографии новые лица


Страница регистрации
если какие то данные введены не правильно, выводится сообщение об этом, при этом правильные введенные данные не стираются.
После регистрации переход на

новую страницу

Поздравляем!
Регистрация прошла успешно.
Вам необходимо подтвердить e-mail адрес, для этого следуйте инструкциям в письме, которое отправлено вам !емаил! . Подтверждение требуется для исключения несанкционированного использования вашего e-mail адреса.
!
Обратите внимание:
Без подтверждения e-mail адреса,
ваш аккаунт будет заблокирован
через сутки.

Там кнопки

Создать анкету и Добавить фото
При нажатии создать анкету , появляется
форма анкеты,
Над формой фотографии И ссылка добавить фото, имя, город, возраст и знак гороскопа
Редактировать личные данные, нажав на нее появляется форма редактирования имени, даты рождения, и города.
Так же вверху формы встроена кнопка альбомы
На форме кнопка сохранить и редактировать. Нажав на кнопку сохранить, появляется заполненная анкета с кнопкой редактировать.

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

На все страницах слева
Ваша страница находится на n месте. Просмотров за сегодня: n, за месяц: n и кто смотрел
Поднять «наверх»?

После регистрации в шапке сайта появляется вкладка Мои сообщения, Моя анкета, Мои настройки Имя, Счет, Выход

Мои сообщения
Форма
Общая папка кол-во сообщений
Избранные пользователи кол-во сообщений
Черный список кол-во сообщений Очистить
Удаленные пользователи кол-во сообщений Очистить

Каждую папку можно раскрыть нажав на нее

Моя анкета
Открывается форма с анкетой и кнопкой редактировать

Мои настройки
Внещний вид анкеты
на выбор несколько шаблонов офрмления анкеты

Настройки vip
Если статус vip анкета в поиске выводится другим цветом и выше всех
«Шапка-невидимка»
не отмечается время прибытия на сайте, не отображается в списке кто смотрел анкету

Счет
Страница со способами пополнения счета

Спустя 38 минут, 18 секунд (6.03.2009 - 10:16) twin написал(а):
Ну вот, начало положено. Теперь будем собирать в кучу то, что уже успели настряпать. Согласно уновь утвержденному плану.
Знач делать будем по такой схеме, как начали. Просто подключим нужные модули.

PHP
<?php
include("language/ru.php");
include(
"config.php");
include(
"tpl/header.html");
include(
"tpl/menu.html");

$page = isset($_GET['page'])?$_GET['page']:NULL;

switch(
$page

    case 
"ancet":
include(
"modules/registr/ancet.php");      
include(
"tpl/ancet.html");
    break;    
    
    case 
"registr":
include(
"modules/registr/registr.php");           
include(
"tpl/registr.html"); 
    break;
    
default:
include(
"modules/ancet/ancet.php");    
include(
"tpl/ancet.html");              
}
include(
"tpl/footer.html");
  
Теперь нужна инициализация всех переменных форм. В принципе мы уже это сделали в валидаторах, что бы не плодить и не повторяться вынеси инициализацию в отдельный файл. Вот это:
PHP
<?
$login = isset($_POST['login'])?$_POST['login']:NULL;
# И так далее

а потом просто подключим куда нужно.

Спустя 7 минут, 19 секунд (6.03.2009 - 10:23) lira1 написал(а):
Цитата
PHP
<?
$login = isset($_POST['login'])?$_POST['login']:NULL;
# И так далее


Это соединить два файла valid в один?

а функцию на уникальность логина куда?

Спустя 12 минут, 22 секунды (6.03.2009 - 10:36) lira1 написал(а):
Цитата

{
case "ancet":
include("modules/registr/ancet.php");
include("tpl/ancet.html");
break;

default:
include("modules/ancet/ancet.php");
include("tpl/ancet.html");
}


Вот что то я тут не поняла
Вроде так должно быть
PHP

case 
"ancet":
include(
"modules/ancet/ancet.php");
include(
"tpl/ancet.html");
break;

default:
include(
"modules/ancet/ancet.php");
include(
"tpl/ancet.html");
}


Спустя 7 минут, 21 секунда (6.03.2009 - 10:43) twin написал(а):

Цитата
Это соединить два файла valid в один?

Нет, не соединить. Просто всю инициализацию из валидаторов надо вынести в отдельный файл. Структура теперь должна быть такой:
Код
                                      Корень
                                      |
                                 modules
                                    /   \
                           registr          ancet

В каталоге modules
1. vars.php - инициализация переменных
2. select.php - города и страны.
В каталоге registr
1. valid_registr.php - валидатор формы регистрации
2. registr.php - модуль регистрации
В каталоге ancet
3. valid_ancet.php - валидатор формы анкеты
5. ancet.php - модуль анкеты

А с индексом верно. Я не то написал. Вот видишь, а ты говоришь - сложно. Скоро ты меня учить будешь.

Спустя 13 минут, 56 секунд (6.03.2009 - 10:57) lira1 написал(а):
Цитата
Код
Корень
|
modules
/ \
registrancet


Так и не поняла.
вот так что ли?
Свернутый текст


<?
$login = isset($_POST['login'])?$_POST['login']:NULL;
$password = isset($_POST['password'])?$_POST['password']:NULL;
$password2 = isset($_POST['password2'])?$_POST['password2']:NULL;
$email= isset($_POST['email'])?$_POST['email']:NULL;
$sex= isset($_POST['sex'])?$_POST['sex']:NULL;
$name= isset($_POST['name'])?$_POST['name']:NULL;
$day= isset($_POST['day'])?$_POST['day']:NULL;
$month= isset($_POST['month'])?$_POST['month']:NULL;
$year= isset($_POST['year'])?$_POST['year']:NULL;
$find = isset($_POST['find'])?$_POST['find']:NULL;

Спустя 1 минута, 55 секунд (6.03.2009 - 10:59) lira1 написал(а):
Что вот это значит?
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in F:\home\test1.ru\www\strana\modules\ancet\ancet.php on line 13

Ни каких ошибок я в 13 строке не вижу

Спустя 1 час, 1 минута, 53 секунды (6.03.2009 - 12:01) Shine написал(а):
twin
Ураа!! Получилось:)...исправила апострофы на кавычки и все вышло laugh.gif ...Спасибо большое!! smile.gif

Спустя 10 минут, 3 секунды (6.03.2009 - 12:11) twin написал(а):
Да, все правильно.
Ошибки я тоже не нашел, видимо твой редактор чудит. Разве что по стилю. Выделяй операторы пробелами, так читабельнее. Когда кода станет много, сама поймешь, как это помогает.
Не так:
PHP
<? 
$email
= isset($_POST['email'])?$_POST['email']:NULL;

а так:
PHP
<? 
$email 
= isset($_POST['email'])?$_POST['email']:NULL;


А вообще, что бы лучше ориентироваться в нотисах (сообщениях интерпретатора об ошибках) нужно знать так называемые токены. Вот это тебе поможет на будущее. Попробуй переписать файл.
С массивами знакома? Если нет, почитай пока тут. Сейчас будем пытаться запись в базу организовать.

Спустя 1 минута, 23 секунды (6.03.2009 - 12:12) twin написал(а):
Shine Ну слава Аллаху. Я искренне рад. smile.gif

Спустя 26 минут, 55 секунд (6.03.2009 - 12:39) lira1 написал(а):
Цитата
Не так:
PHP
<?
$email= isset($_POST['email'])?$_POST['email']:NULL;

а так:
PHP
<?
$email = isset($_POST['email'])?$_POST['email']:NULL;


Цитата
Не так:
PHP
<?
$email= isset($_POST['email'])?$_POST['email']:NULL;

а так:
PHP
<?
$email = isset($_POST['email'])?$_POST['email']:NULL;


Что то я отличий не вижу

Спустя 3 минуты, 36 секунд (6.03.2009 - 12:43) twin написал(а):
Вот:
PHP
<?
ail= is
ail 
= is <?
Я не придираюсь, просто это когда в привычку войдет, будет все красиво и грамотно.

Спустя 4 минуты, 52 секунды (6.03.2009 - 12:47) lira1 написал(а):
Понятно
а редактор notepad

Спустя 4 минуты, 16 секунд (6.03.2009 - 12:52) twin написал(а):
У меня работает... Даж не знаю что сказать.
Вот этот попробуй

Спустя 12 минут, 51 секунда (6.03.2009 - 13:05) lira1 написал(а):
Да с vars у меня вроде нет проблем
С регистрацией нормально
Проблема в ancet.php
Переписала ancet
Все равно ошибка в 14 строке
Свернутый текст

SQL
<?
$insert = "INSERT INTO `".PREFIX."ancet` ( `id` , `id_user` , `date` , `tel` , `icq` , `find` ,
`age` , `regsex` , `sex1-2` , `groupsex` , `virtsex` , `predsexmoney` , `findsexmoney`
, `findlook` , `brak` , `children` , `growth` , `weight` , `dohod` , `orientation` )
VALUES (
'',
NOW( ) ,
'".$tel."',
'".$icq."',
'".$find."',
'".$age."',
'".$regsex."',
'".$sex1-2."',
'".$groupsex."',
'".$virtsex."',
'".$predsexmoney."',
'".$findsexmoney."',
'".$findlook."',
'".$brak."',
'".$children."',
'".$growth."',
'".$weight."',
'".$dohod."',
'".$orientation."');";
$sql = mysql_query($insert);
?>

Спустя 9 минут, 59 секунд (6.03.2009 - 13:15) twin написал(а):
Ошибка у тебя не на 14, а на 13 строке. Интерпретатор выдает строку, на которой споткнулся. А споткнулся он на следующей.
PHP
<?
'".$sex1-2."',
Тут зачем минус два?

Спустя 44 минуты, 22 секунды (6.03.2009 - 13:59) lira1 написал(а):
понятно значит нужно переименовать строку, а как это в таблице исправить?

Спустя 20 минут, 37 секунд (6.03.2009 - 14:20) twin написал(а):
А зачем? Ты просто не совсем понимаешь, как это работает.
В форме ты должна была сделать так:
HTML
<td valign="top">Ваш пол </td>
<td><input name="sex" type="radio" value="1" />
Мужской <br />
<input name="sex" type="radio" value="2" />
Женский <br />
<br /></td>


Вот чтоб было понятней, в индекс сразу после
PHP
<?
include(
"config.php");

напиши это:
PHP
<?
print_r($_POST);
заполни форму и посмотри, что он выдаст. Вот это:
[sex] => 1 и есть нужный нам элемент массива $_POST. Если поэксперементируешь, увидишь, что ключ ([sex]) не меняется, а меняется только хначение. Вот мы его примем и попросим мускул прописать в поле нужное нам значение из списка enum('ж', 'м'). Если 1, то запишется 'ж', а если 2, то 'м'. То есть не надо мудрить, просто напиши:
PHP
`sex`='".$sex."'


ЗЫ Пока писал, ты сама разобралась. Ну мож кому пригодится, чтоб не пропало зря biggrin.gif

Спустя 12 минут, 24 секунды (6.03.2009 - 14:32) twin написал(а):
С массивами я поторопился. Впринципе можно уже попробовать собрать в кучу и проверить. Индекс:
Свернутый текст
PHP
<?php

include("language/ru.php");
include(
"config.php");
include(
"tpl/header.html");
include(
"tpl/menu.html");
$page = isset($_GET['page'])?$_GET['page']:NULL;

switch(
$page

    case 
"ancet":
include(
"modules/vars.php");    
include(
"modules/registr/ancet.php");      
include(
"tpl/ancet.html");
    break;    
    
    case 
"registr":
include(
"modules/vars.php");    
include(
"modules/registr/registr.php");           
include(
"tpl/registr.html"); 
    break;
    
default:
include(
"modules/ancet/ancet.php");    
include(
"tpl/ancet.html");              
}
include(
"tpl/footer.html");
  
registr.php
Свернутый текст
PHP
<?php
if(isset($_POST['ok']))
{
$insert "INSERT INTO `strana_user` 
( `id` , `date` , `login` , `password` , 
`email` , `sex` , `name` , `day` , 
`month` , `year` , `сode` ) 
VALUES (
'', 
NOW( ) ,
'"
.$login."',
'"
.$password."',
'"
.$email."', 
'"
.$sex."', 
'"
.$name."', 
'"
.$day."', 
'"
.$month."', 
'"
.$year."', 
'"
.$сode."');";

$sql mysql_query($insert);
}
и у кнопки в форме registr.html поставь имя name="ok". Запусти и попробуй заполнить форму. Потом глянь, появилась ли запись в базе.

Спустя 2 часа, 25 секунд (6.03.2009 - 16:32) lira1 написал(а):
А sex это не про пол, это цели знакомства

Спустя 5 минут, 8 секунд (6.03.2009 - 16:37) twin написал(а):
Ну если и цель, то объявлена явно. biggrin.gif
Вот же у тебя:
PHP
<td valign="top">Ваш пол </td>
      <
td><input name="sex" type="radio" value="1" />
      
Мужской <br />
        <
input name="sex" type="radio" value="2" />
        
Женский <br />
        <
br /></td>
или я чего напутал?

Спустя 5 минут, 26 секунд (6.03.2009 - 16:43) lira1 написал(а):
как проверить отразилось это в базе или нет7

Спустя 1 минута, 34 секунды (6.03.2009 - 16:44) lira1 написал(а):
Цитата
PHP
<td valign="top">Ваш пол </td>
<td><input name="sex" type="radio" value="1" />
Мужской <br />
<input name="sex" type="radio" value="2" />
Женский <br />
<br /></td>


Это в форме регистрации


А в форме анкеты
Свернутый текст
HTML
<td valign="top">Цель знакомства:</td>
<td><input name="regsex" value="regsex" type="checkbox" />
Регулярный секс вдвоем<br />
<input name="sexone" value="sexone" type="checkbox" />
Секс на один-два раза<br />
<input name="groupsex" value="groupsex" type="checkbox" />
Групповой секс<br />
<input name="virtsex" value="virtsex" type="checkbox" />
Виртуальный секс<br />
<input name="predsexmoney" value="sexmoney" type="checkbox" />
Предлагаю интим за мат.поддержку <br />
<input name="findsexmoney" value="sexmoney1" type="checkbox" />
Ищу интим за мат.поддержку <br />
<br /></td>

Спустя 1 минута, 25 секунд (6.03.2009 - 16:46) lira1 написал(а):
Нашла отразилось но не все

Спустя 1 минута, 54 секунды (6.03.2009 - 16:48) lira1 написал(а):
Почему то месяц, код, и и пол не отражается

Спустя 25 минут, 28 секунд (6.03.2009 - 17:13) twin написал(а):
На цель знакомства у тебя должно быть поле на каждый чекбокс. Потому что можно выбрать две или три цели, а можно все сразу. Там у тебя наверное с именами полей напутано, раз не все отображается. Сравнивай и исправляй. Должны быть одинаковые. Это уже называется отладка. Надо добиться того, что бы все заносилось в базу. У меня уже работает.
Код отображаться не должен, это поле не для того, его пока не трогай.

Спустя 1 минута, 36 секунд (6.03.2009 - 17:15) lira1 написал(а):
Да у меня так и прописаны

Пол отражается только первичный "м", даже сли выбираешь женский
Месяц не отражается. В таблице мы делали month INT(2) может другое значение, там ведь месяцы прописаны словами, а не 01,02,03....
Код вообще не отражается

Спустя 6 минут, 45 секунд (6.03.2009 - 17:22) twin написал(а):
Ну если словами, то тогда конечно varchar(20). Код не нужен, а у пола посмотри внимательно value. Должны быть разные циферки.

Спустя 20 минут, 43 секунды (6.03.2009 - 17:42) lira1 написал(а):
<td valign="top">Ваш пол </td>
<td><input name="sex" type="radio" value="1" />
Мужской <br />
<input name="sex" type="radio" value="2" />
Женский <br />
<br /></td>

Я так до отлаживалась, что сейчас не чего не пишет в таблицу

Спустя 4 минуты, 26 секунд (6.03.2009 - 17:47) lira1 написал(а):
Наверно нельзя было удалять из таблицы занесенные записи?

Спустя 2 минуты, 27 секунд (6.03.2009 - 17:49) twin написал(а):
Можно. Ничего страшного.
Ничего, бывает хуже... но реже. Вот так сделай:
PHP
<?
$sql mysql_query($insert)or die(mysql_error());
Если ошибка в запросе, то мускул откликнится и покажет где.
Еще print_r($_POST);как я выше написал. Смотри, что где, анализируй и исправляй. Это называется трассировка. То есть поэтапный вывод данных из скрипта. Можно смотреть где и на каком этапе что происходит и предпринимать меры. Если сложно, копируй все сюда, что выдаст.

Спустя 9 минут, 35 секунд (6.03.2009 - 17:59) lira1 написал(а):
А куда это вставлять?
В Выполнить SQL запрос(ы) на БД �

Спустя 2 минуты, 50 секунд (6.03.2009 - 18:02) twin написал(а):
Нет, это в скрипт регистрации. У тебя там последняя строчка - запрос. Вот её дополни функцией or die(mysql_error());

Спустя 13 минут, 6 секунд (6.03.2009 - 18:15) lira1 написал(а):
Все заработало

Спустя 1 минута, 54 секунды (6.03.2009 - 18:17) lira1 написал(а):
А как valid сюда вставить?

Спустя 7 минут, 11 секунд (6.03.2009 - 18:24) lira1 написал(а):
и города?

Спустя 4 минуты, 54 секунды (6.03.2009 - 18:29) twin написал(а):
Все вставим. Погоди пока. Вот сейчас, если не писала (mysql_error()); то напиши. Потом в любое поле формы напиши Mc'donalds и посмотри что будет.

Спустя 8 минут, 39 секунд (6.03.2009 - 18:37) lira1 написал(а):
(mysql_error()); писала , вышла ошибка, я исправила, все заработало

Спустя 2 минуты, 15 секунд (6.03.2009 - 18:40) lira1 написал(а):
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'donalds', '123456', '53535', '2', 'авава', '19', 'Января', ' at line 7

Спустя 55 секунд (6.03.2009 - 18:41) lira1 написал(а):
Я читала что то об этом, там в кавычки как то надо заключать

Спустя 22 минуты, 58 секунд (6.03.2009 - 19:04) twin написал(а):
Это называется SQL-инъекция. То есть нарушение структуры запроса. Вот что бы этого избежать, запомни: НИКОГДА не суй в базу необработанные данные. Cтроковые (литеральные) константы (данные) обрабатываются функцией mysql_escape_string(). Она экранирует бэкслэшем опсные символы. Но есть одна тонкость. Если на сервере включена директива magic_quotes_gpc (мы её отключили в .htaccess), то будет двойное экранирование. По этому лучше подстраховаться. Вот эта функция обрабатывает данные корректно, не зависимо от. Причем может обрабатывать массивы.
PHP
<?
function magic_off($data)   
{   
    if
(is_array($data))   
    
{ 
        if
(get_magic_quotes_gpc()) 
        $data 
= array_map("stripslashes", $data); 
         
    $data 
= array_map("mysql_escape_string", $data); 
return  $data
;  
    
}   
    else   
    
{ 
        if
(get_magic_quotes_gpc()) 
        $data 
= stripslashes($data); 
         
    $data 
= mysql_escape_string($data);           
return $data
;   
    
}   
}
Положи её в файл default.php в директорию functions и подключи к индексу.
Так как у нас будет валидация на аяксе, то не зачем возвращать заполненную форму в случае некорректного заполнения. По этому прямого вывода не будет. То есть мы можем обработать все данные на входе, не волнуясь за то, что бэеслэши вылезут на экран. Причем сделаем это одним махом, не расписывая по кусочкам:
PHP
<?
switch(
$page) 
{ 
    case 
"ancet":
$_POST = magic_off($_POST);    
include("modules/vars.php");    
include("modules/ancet/ancet.php");      
include("tpl/ancet.html");
    break;    
    
    case 
"registr":
$_POST = magic_off($_POST);    
include("modules/vars.php");    
include("modules/registr/registr.php");           
include("tpl/registr.html"); 
    break
;
Сделай это и проверь еще раз макдональдом.

Спустя 2 часа, 24 минуты, 36 секунд (6.03.2009 - 21:28) lira1 написал(а):
Все понятно, сделала, все нормально занеслось

Спустя 16 минут, 10 секунд (6.03.2009 - 21:44) twin написал(а):
Ну а теперь уже пора занятся аяксом. Аякс это очень просто. Его зря многие боятся, на самом деле это то же самое, что и простой запрос, только идет он фоном, без перезагрузки страницы. Остальные законы почти те же самые. За небольшими исключениями. Осуществляется этот запрос из JS. И ответ получает он же. Вот это вот:
HTML
var req = Create();
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}

function Request(query)
{
d.body.style.cursor='wait';
req.open('post', path , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}
function Refresh()
{
var a = req.readyState;
var b = req.responseText;
if ( a == 4 )
d.getElementById('newsdiv').innerHTML = b;
}
сделай отдельным файлом ajax.js и положи в каталог js

Спустя 2 минуты, 42 секунды (6.03.2009 - 21:47) lira1 написал(а):
Сделала конечно. Но почти нечего в этой записи не поняла

Спустя 26 минут, 55 секунд (6.03.2009 - 22:14) twin написал(а):
В конфигу допиши это:
PHP
<?
define('DOMEN','http://localhost/mamba');
только путь поставь свой.
В индекс так:
PHP
<?
    case 
"registr":
$select DOMEN."/modules/select.php";
include(
"functions/selects.php");

header.html дополни этим:
HTML
<script type="text/jscript"language="javascript" >
var pach = "<?php echo $select ?>";
</script>
<script type="text/jscript" src="js/ajax.js" language="javascript" ></script>
</head>

в форму регистрации добавь это:
HTML
<tr>
<td>Место жительства: </td>
<td><?php echo country() ?> </td>
</tr>
и почисти файл selects.php

Свернутый текст
PHP
<?php 
function country()
{
$country_id = isset($_POST['country_id'])?$_POST['country_id']:NULL;
// выбираем столбец name из таблицы country
$query "SELECT * FROM `".PREFIX."country`";
$res mysql_query($query);
$select "<select name=\"country_id\" onchange=\"Country()\" >
<option value='0'>- Выберите страну -</option>"
;
    while(
$row mysql_fetch_array($res))
    {
    
$select .= "<option ";
        if(
$row['country_id'] == $country_id)
        
$select .="selected=\"selected\"";
    
$select .= " value='".$row['country_id']."'>".$row['name']."</option>\r\n";
    }
$select .= "</select>";    
return     
$select;
}

function 
region()
{
$country_id = isset($_POST['country_id'])?$_POST['country_id']:NULL;
$region_id = isset($_POST['region_id'])?$_POST['region_id']:NULL;
$query "SELECT * FROM `".PREFIX."region` WHERE `country_id`='".(int)$country_id."'";
$res mysql_query($query);
$select "<select name=\"region_id\" onchange=\"Region()\" >
<option  id=\"region\" value='0'>- Выберите pегион -</option>"
;

    while(
$row mysql_fetch_array($res))
    {
    
$select .= "<option ";
        if(
$row['region_id'] == $region_id)
        
$select .="selected=\"selected\"";
    
$select .= " value='".$row['region_id']."'>".$row['name']."</option>\r\n";
    }
$select .= "</select>";    
return     
$select;
}

function 
city()
{
$region_id = isset($_POST['region_id'])?$_POST['region_id']:NULL;
$city_id = isset($_POST['city_id'])?$_POST['city_id']:NULL;
$query "SELECT * FROM `".PREFIX."city` WHERE `region_id`='".(int)$region_id."'";
$res mysql_query($query);
$select "<select name=\"city_id\" >
<option  value='0'>- Выберите город -</option>"
;
    while(
$row mysql_fetch_array($res))
    {
    
$select .= "<option ";
        if(
$row['city_id'] == $city_id)
        
$select .="selected=\"selected\"";
    
$select .= " value='".$row['city_id']."'>".$row['name']."</option>\r\n";
    }
$select .= "</select>";    
return  
$select;
}

if(isset(
$_POST['country_id']))
echo 
region();

if(isset(
$_POST['region_id']))
echo 
city();


Теперь попробуй все это запустить.














Спустя 59 секунд (6.03.2009 - 22:15) twin написал(а):
Цитата
Сделала конечно. Но почти нечего в этой записи не поняла

Разберемся попозже, когда заработает smile.gif

Спустя 10 минут, 28 секунд (6.03.2009 - 22:25) lira1 написал(а):
Как почистить?
Так все вставила, вышел select с выбором страны

Спустя 12 минут, 51 секунда (6.03.2009 - 22:38) twin написал(а):
Отлично. Теперь я забыл чуток, допиши id в селекты:
PHP
<?
$select = "<select id=\"country_id\" name=\"country_id\" onchange=\"Country()\" >";
# И в остальные тоже



В файл ajax.js сверху добавь это и попробуй выбрать страну.
HTML
var d = document;
function Country()
{
var a = d.getElementById('country_id').value;
alert(a);
}

Спустя 15 минут, 57 секунд (6.03.2009 - 22:54) lira1 написал(а):
Все сделала ничего не происходит

Спустя 4 минуты, 51 секунда (6.03.2009 - 22:59) twin написал(а):
Ты можешь это залить на хостинг?

Спустя 55 секунд (6.03.2009 - 23:00) lira1 написал(а):
Как в архиве или так?

Спустя 3 минуты, 28 секунд (6.03.2009 - 23:03) twin написал(а):
Лучше так. Нагляднее будет.

Спустя 3 минуты (6.03.2009 - 23:06) lira1 написал(а):
сейчас!

Спустя 1 час, 2 минуты, 7 секунд (7.03.2009 - 00:08) lira1 написал(а):
C кодировками опять что то http://profsvaha.ru/strana/ пока не могу исправить

Спустя 5 минут, 37 секунд (7.03.2009 - 00:14) twin написал(а):
Не, аяксом я тебя рановато загрузил конечно, каюсь. Не мучайся.
Вот рабочий скрипт
А вот архив. Смотри пока, вопросы конспектируй. Потом все в куче задашь. А я завтра напишу валидацию.
С праздником тебя кстати, и всех девушек, кто читает эту тему!

user posted image


user posted image

Спустя 5 минут, 34 секунды (7.03.2009 - 00:20) lira1 написал(а):
Спасибо biggrin.gif

Спустя 1 минута, 7 секунд (7.03.2009 - 00:21) lira1 написал(а):
Цитата
Вот рабочий скрипт

А там тоже страну выбираешь и ничего не происходит

Спустя 26 минут, 8 секунд (7.03.2009 - 00:47) twin написал(а):
Прошу пардона... Ошибочка тут:
HTML
<script type="text/javascript" language="javascript" >
var pach = "<?php echo $select ?>";
</script>
<script type="text/javascript" src="js/ajax.js" language="javascript" ></script>
Вот почему я мазилу ненавижу... Опера это прощает smile.gif . Поправил, смотри. И в хидере поменяй у себя.

Спустя 9 минут, 36 секунд (7.03.2009 - 00:57) lira1 написал(а):
Понятно, в чем там у меня дело с этими вопросиками, вроде везде кодировка utf стоит?

Спустя 5 минут, 14 секунд (7.03.2009 - 01:02) twin написал(а):
У меня везде. Ты заливай мой вариант, прям как есть, вместе со .htaccess
Должно сработать.

Спустя 17 минут, 52 секунды (7.03.2009 - 01:20) lira1 написал(а):
Получается надо везде кодировку UTF without BOM ??? Просто utf тоже не читаема!!!

Спустя 28 минут, 27 секунд (7.03.2009 - 01:48) Bezdna написал(а):
Цитата (lira1 @ 6.03.2009 - 22:20)
везде кодировку UTF without BOM


Не поможет.

Спустя 7 часов, 5 минут, 44 секунды (7.03.2009 - 08:54) lira1 написал(а):
Залила твой архив, с кодировками разобралась. Это у меня на хостинге база cp1251
Но после выбора страны все равно ничего не происходит sad.gif
Вот

Спустя 46 минут, 39 секунд (7.03.2009 - 09:40) twin написал(а):
И не произойдет. Потому что ты registr.html залила свой. В моем есть
<div id="region" ></div> и <div id="sity" ></div> Это приёмники, куда должны прописаться склекты. А как говорится: нет дива - нет селекта. Посмотри еще раз внимательно.

Спустя 1 час, 45 минут, 46 секунд (7.03.2009 - 11:26) lira1 написал(а):
Мне ты про эти строчки не говорил, но все равно не работает sad.gif

Спустя 3 минуты, 1 секунда (7.03.2009 - 11:29) lira1 написал(а):
Почему то у тебя в select.php только это
Свернутый текст

PHP
<?php 
function country()
{
$country_id = isset($_POST['country_id'])?$_POST['country_id']:NULL;
// выбираем столбец name из таблицы country
$query "SELECT * FROM `".PREFIX."country`";
$res mysql_query($query);
$select "<select id=\"country_id\" name=\"country_id\" onchange=\"Country()\" >
<option value='0'>- Выберите страну -</option>"
;
    while(
$row mysql_fetch_array($res))
    {
    
$select .= "<option ";
        if(
$row['country_id'] == $country_id)
        
$select .="selected=\"selected\"";
    
$select .= " value='".$row['country_id']."'>".$row['name']."</option>\r\n";
    }
$select .= "</select>";    
return     
$select;
}

Спустя 25 минут, 59 секунд (7.03.2009 - 11:55) twin написал(а):
Цитата
Почему то у тебя в select.php только это

Потому что я безнадежно от тебя отстал... Не успеваю. smile.gif
На самом деле я разнес их по разным файлам. И про дивы не написал, потому что там вообще много изменений.
Не расстраивайся, все щас заработает. Погоди сек.

Спустя 51 минута, 37 секунд (7.03.2009 - 12:47) twin написал(а):
Вот проверяй.
А тут архив.
Ты прямо целиком заливай, только в конфиге свои даннык проставь.
Если хочешь, все разберем по полочкам.

Спустя 18 минут, 50 секунд (7.03.2009 - 13:06) lira1 написал(а):
Вот сейчас получилось. Щас все посмотрю и вопросы задам

Спустя 1 минута, 58 секунд (7.03.2009 - 13:08) lira1 написал(а):
И за поздравление спасибо, код тоже полезный!

Спустя 5 минут, 12 секунд (7.03.2009 - 13:13) lira1 написал(а):
$page = isset($_GET['page'])?$_GET['page']:NULL;
Зачем так пишут, одно и то же 2 раза?


$buffer = ob_get_contents();
ob_end_clean();
echo $buffer;

Это что значит?

Спустя 4 минуты, 29 секунд (7.03.2009 - 13:17) lira1 написал(а):
Почему то я когда дату рождения не указываю , он все равно пропускает, вроде в valid это прописано

Спустя 27 минут, 12 секунд (7.03.2009 - 13:45) twin написал(а):
Цитата
$page = isset($_GET['page'])?$_GET['page']:NULL;
Зачем так пишут, одно и то же 2 раза?
Это сокращенная запись вот такого примерно выражения:
PHP
<?
if(isset(
$_GET['page']))
$page = $_GET['page'];
else
$page = NULL;
Нужно для того чтобы
1. Не было ошибки при обращении к несуществующему элементу массива. Если в массиве $_GET не окажется page, то будет а-я-яй..
2. Объявляется переменная. Если не писать $page = NULL; то переменной не будет, а так она есть, хотя и пустая.
Дословно верхняя запись звучит так:
Переменная $page спрашивает: существует ли в массиве элемент $_GET['page'](функция isset()) ? Если да, то примет её значение. Если нет, то будут пустой (null).

PHP
$buffer = ob_get_contents(); 
ob_end_clean
();
echo $buffer;

Это что значит?Это буфферизация. Только еще нужно ob_start(); Все, что находится между ob_start(); и ob_end_clean(); не выводится в поток, то есть не отдается клиенту, а пишется в буффер сервера. Потом мы это все из буфера читаем: $buffer = ob_get_contents(); и вот теперь нате вам: echo $buffer; Нужно это для того, что бы можно было выдавать заголовки ниже вывода. Иначе header() будет ругаться. Ну еще есть пара моментов, для чего нужна буфферизация, но не в этом случае. Если ты это уберешь, увидишь нотис.

Спустя 23 минуты, 17 секунд (7.03.2009 - 14:08) twin написал(а):
Цитата
Почему то я когда дату рождения не указываю , он все равно пропускает, вроде в valid это прописано
Потому что в валидаторе проверяется отсутствие переменной. А она есть, потому что "Число". Вообще лучше прописывать в опшены value, не всегда браузеры корректно это воспринимают. И кирилицу в валуе прописывать не рекомендуется. По этому нужно сделать так:

<option value="0" >Месяц</option>
<option value="1" >Январь</option>
и так далее. А значения выбирать из ENUM в базе. А в валидаторе так:
PHP
<?
    if($month == 0)
     {
     $cnt = 1;
    $error[] = NO_MONTH;
     }

Спустя 2 минуты, 57 секунд (7.03.2009 - 14:11) lira1 написал(а):
Все ясно. Исправим. Еще нужно чтоб город в базу заносился, ведь он нам потом понадобиться для поиска.

Спустя 4 минуты, 45 секунд (7.03.2009 - 14:16) lira1 написал(а):
Ты еще в форме везде проставил id
<input id="sex0" name="sex" type="radio" value="1" />
Мужской <br />
<input id="sex1" name="sex" type="radio" value="2" />
Женский <br />

Для чего это? Ведь и без id значения заностся

Спустя 9 минут, 25 секунд (7.03.2009 - 14:25) twin написал(а):
Это для того, что бы работал аякс. Он работает на JS. Мы же не отправляем форму, пока не пройдена валидация. Мы считываем значения из элементов и отправляем на валидатор фоном. Если откроешь файл ajax.js то увидишь это:
HTML
var login = d.getElementById('login').value;
Это обращение к элементу по id. мы в переменную JS login пишем то, что находится в поле, потом собираем в кучу:
HTML
var query = 'login='+login+'&password='+password+'.........
и полученную строку (query) отправляем на сервер:
HTML
function Request(query)
{
req.open('post', path_req , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}
без перезагрузки. Ниже получаем ответ сервера:
HTML
function Refresh()
{
var a = req.readyState;
var b = req.responseText;
if( a == 4 && valid == 0)
.
.
.
и прописываем в "приемник":
HTML
d.getElementById(div_select).innerHTML = b;
Вот основной принцип аякса.

Спустя 6 часов, 28 минут, 46 секунд (7.03.2009 - 20:54) lira1 написал(а):
На Хостинге че то опять не работает. На локальном нормально работает.

Спустя 4 минуты, 49 секунд (7.03.2009 - 20:59) twin написал(а):
ДолжОн. Я у себя поменял - все айс. Может хостера сменить? smile.gif Смотри внимательно, где то чего то недотягиваешь.

Спустя 2 минуты, 29 секунд (7.03.2009 - 21:01) lira1 написал(а):

Ну я смотрю смотрю... Все тоже самое, может это как то с базой связано?

Спустя 2 минуты, 7 секунд (7.03.2009 - 21:03) lira1 написал(а):
С датой рождения я тоже поменяла. И еще когда появляются красные записи, поля скачут dry.gif

Спустя 3 минуты, 7 секунд (7.03.2009 - 21:06) twin написал(а):
Поля скачут - это не ко мне. smile.gif Это верстка уже. Там спаны стоят, в которые ошибки пишуться, их куда нибудь сама рассовывай, чтоб не скакали.

Спустя 1 минута, 41 секунда (7.03.2009 - 21:08) twin написал(а):
И чёт не вижу я у тебя на хостинге изменений... Ты не туда уже заливаешь что ли?

Спустя 3 минуты, 24 секунды (7.03.2009 - 21:11) lira1 написал(а):
Как это? blink.gif Туда http://profsvaha.ru/strana/

Спустя 2 минуты, 17 секунд (7.03.2009 - 21:14) twin написал(а):
Ну а изменерия то где? Где value="0"?

Спустя 8 минут, 39 секунд (7.03.2009 - 21:22) lira1 написал(а):
Только тот файл не меняла, сейчас сделала.
Только я немного не так как ты.
НЕ правильно наверно?
ENUM в таблицу прописала

Спустя 3 минуты, 17 секунд (7.03.2009 - 21:26) twin написал(а):
Правильно. Так даже лучше. Вооот. Работает теперь. Еще есть вопросы, или дальше поедем? Смотри - анкету сама делать будешь biggrin.gif

Спустя 6 минут, 41 секунда (7.03.2009 - 21:32) lira1 написал(а):
Я и так и подумала. Я вот не поняла как эти аяксы через id присобачивать
<span class="error" id="error_5" ></span
откуда вот это берется

А файл js вообще очень сложный

Спустя 5 минут, 33 секунды (7.03.2009 - 21:38) twin написал(а):
class="error" это просто класс CSS, что бы красненько было. Сам CSS в соответствующей директории. id="error_5" ни откуда не берется, это я написал smile.gif . А файл ajax.js я сейчас раскомменчу. Только что бы понять, надо немного в JS ориентироваться.

Спустя 36 минут, 15 секунд (7.03.2009 - 22:14) lira1 написал(а):
Хорошо.Жду

Спустя 11 минут, 28 секунд (7.03.2009 - 22:25) lira1 написал(а):
В анкете то одно обязательное поле, там делать то особо нечего

Спустя 22 минуты, 43 секунды (7.03.2009 - 22:48) twin написал(а):
Вот:
Свернутый текст
HTML
// Сначала объявляем глобальные переменные. Это такие переменные, которые видно внутри функций
// Это что бы место сэкономить, так меньше весу у скрипта. В JS это важно, потому что он клиенту грузится.
var d = document;
// Это будет строка запроса
var query;
// Сюда мы запишем, какой выбрать див-приемник для ответа сервера
var div_select;
// Это будет переключатель аякса с селектов на валидатор
var valid = 0;
// В эту запишем текущий путь, куда отправить запрос
var path_req;
// Сюда запишем объект
var req = Create();


// Функция выбора страны. Она сформирует запрос для получения селекта регионов
function Country()
{
// Переключатель устанавливаем на селекты. Если 1 - валидатор будет.
valid = 0;
// Определяем нужный путь до скрипта php
path_req = path_sel;
// Выбираем див-приемник. Это id нужного дива.
div_select = "region";
// Сносим селект с городами, если он есть. Чтоб глаза не мозолил.
d.getElementById('city').innerHTML = '';
// Убираем из спана ошибку
d.getElementById('error_8').innerHTML = '';
// Читаем значение селекта страны
var a = d.getElementById('country_id').value;
// формируем строку данных запроса.
//Это значит, что в массиве POST будет создан элемент country_id со значением, которое записано в a
query = "country_id="+a;
// Вызываем функцию отправки запроса. См. ниже
Request(query);
}
// Тут все аналогично
function Region()
{
d.getElementById('error_9').innerHTML = '';
valid = 0;
path_req = path_sel;
div_select = "city";
var a = d.getElementById('region_id').value;
query = "region_id="+a;
Request(query);
}
//Это функция, формирующая запрос для валидатора
function Pusk_reg()
{
// Устанавливаем начальные значения. Если этого не делать, на сервер будет передано слово Undefined
var region_id = '', city_id = '', sex = '', rule = '';
//Это проходили
path_req = path_valid;
valid = 1;
// Читаем что в полях
var login = d.getElementById('login').value;
var password = d.getElementById('password').value;
var password2 = d.getElementById('password2').value;
var email = d.getElementById('email').value;
var name = d.getElementById('name').value;
// Это выбор отмеченной радиокнопки
for(i = 0; i < 2; i++)
if (d.getElementById('sex'+i).checked )
sex = d.getElementById('sex'+i).value;

var day = d.getElementById('day').value;
var month = d.getElementById('month').value;
var year = d.getElementById('year').value;
var country_id = d.getElementById('country_id').value;
// Здесь опреднляем, есть ли нужный элемент на странице.
// Потому что если нет, то скрипт валидации остановится и не будет работать, пока не выбрать регион.
if(d.getElementById('region_id'))
region_id = d.getElementById('region_id').value;

if(d.getElementById('city_id'))
city_id = d.getElementById('city_id').value;

// Проверяем - стоит ли галочка на правилах
if(d.getElementById('rule').checked == true)
rule = 1;
// Формируем строку. Когда переменных несколько, их надо писать через амперсанд.
var query = 'login='+login+'&password='+password+'&password2='+password2+'&email='+email+'&name='+name+'&sex='+sex
+'&day='+day+'&month='+month+'&year='+year+'&country_id='+country_id+'&region_id='+region_id+'&city_id='+city_id+'&rule='+rule;
Request(query);
}
// Это для кроссбраузерности. Определяем браузер и записываем нужный объект
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}
// Функция отправки запроса.
function Request(query)
{
//Вот тут он формируется. 'post'- метод отправки, path_req - адрес, куда отправим запрос.
//Мы его меняли выше. true - это значит, что скрипт продолжит работу после отправки данных
req.open('post', path_req , true );
// эдесь прописывается функция, которая будет вызвана при ответе сервера. См. ниже
req.onreadystatechange = Refresh;
// Тут мы формируем заголовок, в нем же указываем кодировку.
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
// Пое-е-е-хали!!!
req.send(query);
}
//Функция разбора полетов (ответа сервера)
function Refresh()
{
//Здесь смотрим, в каком состоянии ответ.
//Нас интересует 4, потому что это значит - ответ получен и загружен.
var a = req.readyState;
// А сюда пишем, что нам за гостинцы прислал сервер.
var b = req.responseText;
//Если ответ загружен (4) и выбраны селекты, то рисуем селект в нужный див
if( a == 4 && valid == 0)
d.getElementById(div_select).innerHTML = b;
//Если ответ загружен (4) и выбран валидатор, и ответ сервера 200 - (условный сигнал)
if( a == 4 && valid == 1 && b == 200)
{
// Пишем в скрытое поле 1, потому что отправляем форму не кнопкой, а из скрипта.
// А в обработчике есть условие if(isset($_POST['ok']))
d.getElementById('ok').value = 1;
// Ну и отправляем форму.
d.getElementById('reg').submit();
}
//Если ответ загружен (4) и выбран валидатор, и ответ сервера не 200, значит ошибка
if ( a == 4 && valid == 1 && b != 200 )
{
// Разбиваем строку ответа в массив
var mass = b.split("|");
// И пишем в нужный спан.
for(i = 0; i < mass.length; i++)
d.getElementById('error_'+i).innerHTML=mass[i];
}
}
// вуаля.

Спустя 1 час, 1 минута, 13 секунд (7.03.2009 - 23:49) lira1 написал(а):
Да уж. ... Помощь зала!!! wacko.gif
для проверки анкеты надо отдельный js создавать или в этот нужно добавлять?

Спустя 8 минут, 7 секунд (7.03.2009 - 23:58) twin написал(а):
Путанно написал? Анкету пока рано делать. Мы тут еще половины не сделали biggrin.gif . Спрашивай, что конкретно не понятно.

Спустя 9 минут, 21 секунда (8.03.2009 - 00:07) lira1 написал(а):
Да тут с этими селектами, так много не понятного. А вот без селектов проще наверное, этот аякс выглядит?

Спустя 2 минуты, 1 секунда (8.03.2009 - 00:09) lira1 написал(а):
Я сегодня больше не могу, уже ничего не соображаю...Завтра на светлую голову, еще все посмотрю.

Спустя 8 часов, 37 минут, 5 секунд (8.03.2009 - 08:46) twin написал(а):
Кошки съели. smile.gif Нужно бэкапить файлы, и лучше на отдельный диск или вообще носитель. Иначе в один прекрасный момент может случиться страшное. А диск у денвера иногда просто глючит. Попробуй перезагрузить комп.
PS Видимо нашла, раз сообщение пропало. Или это аномалия и у тебя не только диск пропадает? С праздником тебя, теперь уже по настоящему!

Спустя 10 минут, 24 секунды (8.03.2009 - 08:56) lira1 написал(а):
Аякс этот если честно вообще не понятный. Да нашелся. Спасибо.

Спустя 1 час, 10 минут, 9 секунд (8.03.2009 - 10:07) twin написал(а):
Щас все поймешь. Для начала нужно четко понимать, что где происходит. Давай по порядку. Вот сделай такой файл:
ajax.html
HTML
<html>
<head>
</head>
<body>
<div id="ajax"></div>
</body>
</html>


Если его запустишь, выйдет фига. Вот теперь сделай так, чтоб понятней, откуда что:

HTML
<html>
<head>
<script type="text/javascript" language="javascript">
function Print_ajax()
{
document.getElementById('ajax').innerHTML = "ВОТ КАКАЯ ТО НАДПИСЬ";
}
</script>
</head>
<body>
<div id="ajax"></div>
<input type="button" value="ТЫРЦ" onClick="Print_ajax()">
</body>
</html>
Нажми на кнопку - получишь результат (песенка). Свойство объекта JS innerHTML позволяет рисовать в элементы разметки, такие как <div> <span> и иже с ними то, что нам нужно в динамике.
Вот это свойство и юзается аяксом. Теперь наша задача получить в JS что то, что находится на сервере. Сделай такой файл:
ajax.php
PHP
<?
echo 
"Я - НАДПИСЬ В ФАЙЛЕ PHP";
. Если просто его запустить, то все ясно. Но для этого нужно уйти со страницы ajax.html, а сие нам не дозволено. По этому будем выкручиваться. Благо JS позволяет отправить на сервер запрос и получить ответ, не покидая страницы. По этому делаем это:
HTML
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();
// Это для кроссбраузерности. Определяем браузер и записываем нужный метод
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}
</script>
</head>
<body>
<div id="ajax"></div>
<input type="button" value="ТЫРЦ" onClick="Print_ajax()">
</body>
</html>
То есть запускаем встроенную прграмму (создаем объект), который будет соединять нас с сервером. Потом пишем функцию, которая управляет этим объектом (программой):

Свернутый текст
HTML
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();
// Это для кроссбраузерности. Определяем браузер и записываем нужный метод
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}

function Request(query)
{
//Вот тут он формируется. 'post'- метод отправки, path_req - адрес, куда отправим запрос.
//Мы его меняли выше. true - это значит, что скрипт продолжит работу после отправки данных
req.open('post', 'ajax.php' , true );
// эдесь прописывается функция, которая будет вызвана при ответе сервера. См. ниже
req.onreadystatechange = Refresh;
// Тут мы формируем заголовок, в нем же указываем кодировку.
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
// Пое-е-е-хали!!!
req.send(null);
}
</script>
</head>
<body>
<div id="ajax"></div>
<input type="button" value="ТЫРЦ" onClick="Print_ajax()">
</body>
</html>
и еще одну, которая будет писать нам ответ сервера в див.
Свернутый текст
HTML
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();
// Это для кроссбраузерности. Определяем браузер и записываем нужный метод
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}

function Print_ajax()
{
//Вот тут он формируется. 'post'- метод отправки, path_req - адрес, куда отправим запрос.
//Мы его меняли выше. true - это значит, что скрипт продолжит работу после отправки данных
req.open('post', 'ajax.php' , true );
// эдесь прописывается функция, которая будет вызвана при ответе сервера. См. ниже
req.onreadystatechange = Refresh;
// Тут мы формируем заголовок, в нем же указываем кодировку.
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
// Пое-е-е-хали!!!
req.send(null);
}

function Refresh()
{
//Здесь смотрим, в каком состоянии ответ.
//Нас интересует 4, потому что это значит - ответ получен и загружен.
var a = req.readyState;
// А сюда пишем, что нам за гостинцы прислал сервер.
var b = req.responseText;
//Если ответ загружен (4) рисуем его в див
if( a == 4 )
document.getElementById('ajax').innerHTML = b;
}
</script>
</head>
<body>
<div id="ajax"></div>
<input type="button" value="ТЫРЦ" onClick="Print_ajax()">
</body>
</html>
Вот теперь нажми на кнопку и посмотри. Надпись получилас, а страницу мы не трогали. Теперь дальше. Файл ajax.php это обычный php-скрипт, со всеми вытекающими. То есть он может принимать данные, обрабатывать их и выдавать результат. Усложним малость задачу:

Свернутый текст
HTML
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();
// Это для кроссбраузерности. Определяем браузер и записываем нужный метод
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}

function Print_ajax(query)
{
//Вот тут он формируется. 'post'- метод отправки, path_req - адрес, куда отправим запрос.
//Мы его меняли выше. true - это значит, что скрипт продолжит работу после отправки данных
req.open('post', 'ajax.php' , true );
// эдесь прописывается функция, которая будет вызвана при ответе сервера. См. ниже
req.onreadystatechange = Refresh;
// Тут мы формируем заголовок, в нем же указываем кодировку.
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
// Пое-е-е-хали!!!
req.send(query);
}

function Refresh()
{
//Здесь смотрим, в каком состоянии ответ.
//Нас интересует 4, потому что это значит - ответ получен и загружен.
var a = req.readyState;
// А сюда пишем, что нам за гостинцы прислал сервер.
var b = req.responseText;
//Если ответ загружен (4) рисуем его в див
if( a == 4 )
document.getElementById('ajax').innerHTML = b;
}

function Pusk()
{
var txt = document.getElementById('txt').value;
var query = 'txt='+txt;
Print_ajax(query)
}
</script>
</head>
<body>
<div id="ajax"></div>
<input id="txt" type="text"><br>
<input type="button" value="ТЫРЦ" onClick="Pusk()">
</body>
</html>
а файл ajax.php так:
PHP
<?

echo 
"Я - НАДПИСЬ В ФАЙЛЕ PHP";
$txt = isset($_POST['txt'])?$_POST['txt']:NULL;
echo 
"<br>";
echo 
$txt;
Вот теперь можешь попробовать. Знач что получается. Мы передали данные из поля на сервер, не имея даже формы. Потом получили ответ сервера, то есть результат работы php скрипта и вывели его на страницу, не перегружая её. Вот в принципе и все. Остальное дело фантазии - что вывести и как.







Спустя 1 час, 56 минут, 43 секунды (8.03.2009 - 12:03) lira1 написал(а):
Столько манипуляций для того чтоб вывести одну строчку

Спустя 7 минут, 12 секунд (8.03.2009 - 12:10) twin написал(а):
Нифигасе одну... Я недавно целый сайт на аяксе написал biggrin.gif . Ты хоть чё нибудь поняла?

Спустя 3 минуты, 2 секунды (8.03.2009 - 12:13) lira1 написал(а):
Я поняла что при нажатии кнопки выходит одна фраза, безе перезагрузки страницы.

Спустя 3 минуты, 1 секунда (8.03.2009 - 12:16) twin написал(а):
Ну так напиши в файл ajax.php стпицот фраз или селект нарисуй, как мы делали, или из базы чего нибудь вынь... Все и выйдет. Вот валидатор у нас сколько всего выводит.

Спустя 33 минуты (8.03.2009 - 12:49) lira1 написал(а):
Ну да это понятно. Когда нужно вывести мнго информации. А если одну фразу, может что попроще есть?

Спустя 13 минут, 40 секунд (8.03.2009 - 13:03) twin написал(а):
Ну нам то не одна фраза нужна. Да и куда проще то? Ты лучше спрашивай, чого не поняла.

Спустя 35 минут, 54 секунды (8.03.2009 - 13:39) lira1 написал(а):
Я не понимаю как это совместить с Валидатором

Спустя 10 минут, 19 секунд (8.03.2009 - 13:49) twin написал(а):
Ну как... Читаем все из полей формы, отправляем фоном валидатору. Он все данные получает, обрабатывает и выдает ответ. Вот в примере выше мы передали одно значение, а можно сколько угодно. Вот так сделай, посмотришь:

Свернутый текст
ajax.html
HTML
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();
// Это для кроссбраузерности. Определяем браузер и записываем нужный метод
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}

function Print_ajax(query)
{
//Вот тут он формируется. 'post'- метод отправки, path_req - адрес, куда отправим запрос.
//Мы его меняли выше. true - это значит, что скрипт продолжит работу после отправки данных
req.open('post', 'ajax.php' , true );
// эдесь прописывается функция, которая будет вызвана при ответе сервера. См. ниже
req.onreadystatechange = Refresh;
// Тут мы формируем заголовок, в нем же указываем кодировку.
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
// Пое-е-е-хали!!!
req.send(query);
}

function Refresh()
{
//Здесь смотрим, в каком состоянии ответ.
//Нас интересует 4, потому что это значит - ответ получен и загружен.
var a = req.readyState;
// А сюда пишем, что нам за гостинцы прислал сервер.
var b = req.responseText;
//Если ответ загружен (4) рисуем его в див
if( a == 4 )
document.getElementById('ajax').innerHTML = b;
}

function Pusk()
{
var txt1 = document.getElementById('txt1').value;
var txt2 = document.getElementById('txt2').value;
var query = 'txt1='+txt1+'&txt2='+txt2;
Print_ajax(query)
}
</script>
</head>
<body>
<div id="ajax"></div>
<input id="txt1" type="text"><br>
<input id="txt2" type="text"><br>
<input type="button" value="ТЫРЦ" onClick="Pusk()">
</body>
</html>

ajax.php
PHP
<?
echo 
"Я - НАДПИСЬ В ФАЙЛЕ PHP";
$txt1 = isset($_POST['txt1'])?$_POST['txt1']:NULL;
$txt2 = isset($_POST['txt2'])?$_POST['txt2']:NULL;
echo 
"<br>ПЕРВОЕ ЗНАЧЕНИЕ :";
echo 
$txt1;
echo 
"<br>ВТОРОЕ ЗНАЧЕНИЕ :";
echo 
$txt2;

Спустя 2 часа, 24 минуты, 7 секунд (8.03.2009 - 16:13) lira1 написал(а):
Все равно до мне я не доходить как это к radio и checkbox применить sad.gif

Спустя 56 минут, 52 секунды (8.03.2009 - 17:10) twin написал(а):
smile.gif Вот:

Свернутый текст
HTML
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}

function Print_ajax(query)
{
req.open('post', 'ajax.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}

function Refresh()
{
var a = req.readyState;
var b = req.responseText;
if( a == 4 )
document.getElementById('ajax').innerHTML = b;
}

function Pusk()
{
var txt1 = document.getElementById('txt1').value;
var txt2 = document.getElementById('txt2').value;
// Вот тут мы в цикле переьираем все радиокнопки. и если она отмечена - вынаем валуе
var rad = '';
for(i = 0; i < 2; i++)
if (document.getElementById('rad'+i).checked )
rad = document.getElementById('rad'+i).value;

// А вот тут смотри, роверяем - стоит ли галочка
// если да, то отправляем единичку, а на нет - суда нет.
var check = '';
if(document.getElementById('check').checked == true)
check = 1;

var query = 'txt1='+txt1+'&txt2='+txt2+'&rad='+rad+'&check='+check;

Print_ajax(query)
}
</script>
</head>
<body>
<div id="ajax"></div>
<input id="check" type="checkbox"><br>
1 <input id="rad0" type="radio" value="1"><br>
2 <input id="rad1" type="radio" value="2"><br>
<input id="txt1" type="text"><br>
<input id="txt2" type="text"><br>
<input type="button" value="ТЫРЦ" onClick="Pusk()">
</body>
</html>


<?

PHP
echo "Я - НАДПИСЬ В ФАЙЛЕ PHP";
$txt1 = isset($_POST['txt1'])?$_POST['txt1']:NULL;
$txt2 = isset($_POST['txt2'])?$_POST['txt2']:NULL;
$rad = isset($_POST['rad'])?$_POST['rad']:NULL;
$check = isset($_POST['check'])?$_POST['check']:NULL;
echo 
"<br>ПЕРВОЕ ЗНАЧЕНИЕ :";
echo 
$txt1;
echo 
"<br>ВТОРОЕ ЗНАЧЕНИЕ :";
echo 
$txt2;
echo 
"<br>ВЫБРАНА <b>"$rad"</b> РАДИОКНОПКА";
if(
$check)
echo 
"<br>СТОИТ ГАЛОЧКА";
else
echo 
"<br>НЕТУ ГАЛОЧКИ";





Спустя 36 минут, 45 секунд (8.03.2009 - 17:47) lira1 написал(а):
Так по отдельности более менее понятно но как вот это к анкете применить wacko.gif
Мне уже начинает казаться, что я дура, хотя никогда таковой не была biggrin.gif

Спустя 19 минут, 5 секунд (8.03.2009 - 18:06) twin написал(а):
Это творческий запор кризис. Я в тебя вкачал столько информации, сколько другие получают за полгода. Не мудрено. Зато потом прорвет откроется второе дыхание и все станет так ясно, что сама будешь смеяться - как же я не понимала таких простых вещей. Я поражаюсь твоему упрямству. Если чесно, думал давно плюнешь. Забудь про анкету, тут до анкеты как ползком до Китая. Спрашивай, что еще не понятно, подробно, не стесняйся.

Спустя 8 минут, 52 секунды (8.03.2009 - 18:15) lira1 написал(а):
Цитата
что сама будешь смеяться - как же я не понимала таких простых вещей.

Это точно. Так же думаю.

Вопросов нет пока

Спустя 34 минуты, 27 секунд (8.03.2009 - 18:50) twin написал(а):
Вот это уже хуже, когда вопросов нет. А потому хуже, что это самая распространенная ошибка начинающих программистов - обрадоваться первому результату. Если скрипт пишешь для себя, то конечно хозяин-барин. Но если за это получаешь деньги, то ответственность там уже другая. Я специально оставил дырочку, что бы показать, как может повести себя недоделанный скрипт. Вот набери в поле "Логин" любую строку, начинающуюся я амперсанда(&) и увидишь, что юзера с логином к примеру &amper мы обидели. Это конечно мелочи, но важен сам подход к постановке вопроса. Мелочей быть не должно. Всего конечно можно и не предусмотреть, баги вылазят даже на очень продвинутых ресурсах, но стараться надо.

Спустя 1 час, 26 минут, 23 секунды (8.03.2009 - 20:16) lira1 написал(а):
Цитата
Вот набери в поле "Логин" любую строку, начинающуюся я амперсанда(&) и увидишь,


Да это почему так мы ведь вроде нигде не прописывали какие символы разрешены и запрещены в логине?

Цитата
Вот это уже хуже, когда вопросов нет. А потому хуже, что это самая распространенная ошибка начинающих программистов - обрадоваться первому результату.


Да не поэтому нет, просто я предпочитаю все по ходу пьесы разбирать, мы вроде все разобрали, что не понятно.

Спустя 47 минут, 20 секунд (8.03.2009 - 21:03) twin написал(а):
Цитата
Да это почему так мы ведь вроде нигде не прописывали какие символы разрешены и запрещены в логине?
Нет. Вот смотри, я в форме твоей тоже видел, что пароль может быть только из английских букв и цифр. С чего бы вдруг? Чем больше можно использовать символов, тем сложнее пароль. Наша задача не запрещать, а правильно обрабатывать символы, что бы можно было все. Амперсанд в нашем случае просто портит строку в аяксе. Потому что является разделителем между переменными. Сделай так:

HTML
var login = encodeURIComponent(d.getElementById('login').value);
var password = encodeURIComponent(d.getElementById('password').value);
var password2 = encodeURIComponent(d.getElementById('password2').value);
var email = d.getElementById('email').value;
var name = encodeURIComponent(d.getElementById('name').value);
Так мы закодируем символы, которые могут навредить и все будут довольны.


Ткперь дальше, про пароль. Вот представь себе, что твой сайт взломали (Тьфу-тьфу-тьфу конечно) и злой хацкер получил доступ к базе данных. А там на всеобщем обозрении лежат логин-пароль. Логин, это информация не секретная, а вот когда в паре, уже страшнее. Человек по природе ленив и забывчив, по этому часто использует одни и те же пароли везде подряд. Злоумышленник забъет это в свою хацкерскую базу и будет ломать аккуанты на других сайтах. А может и до вебмани доберется... Косвенно ты будешь виновата. По этому никогда нельзя хранить пароль не в зашифрованном виде. Шифруется пароль односторонне. То есть так, что его вообще невозможно расшифровать. Есть такой алгоритм MD5, который позволяет это сделать. И функция. которая шифрует (хэширкет) строки называется так же md5();
Если интересно, можешь посмотреть, что будет, когда сделаешь так:
PHP
<?
echo md5('lira1');


Вот перед занесением в базу, нужно пароль обработать этой функцией. Только одно но. Мы на входе весь массив POST обработали mysql_escape_string() и теперь, если в пароле окажется к примеру апостроф, то хэш пароля будет уже не тем, какой должен быть, потому что там же окажется и бэкслэш. По этому значение пароля из массива POST нужно выдернуть ДО обработки его функцией magic_off(), которую мы сочинили чуть раньше. То есть нужно вынуть его инициализацию из vars.php и поставить выше $_POST = magic_off($_POST); Так как хэш состоит из латиницы и цифр, то в базу ничего страшного не попадет.

Спустя 18 минут, 18 секунд (8.03.2009 - 21:22) lira1 написал(а):
Свернутый текст

Цитата
HTML
var login = encodeURIComponent(d.getElementById('login').value);
var password = encodeURIComponent(d.getElementById('password').value);
var password2 = encodeURIComponent(d.getElementById('password2').value);
var email = d.getElementById('email').value;
var name = encodeURIComponent(d.getElementById('name').value);


Этим я так поняла нужно заменить вот это
var login = d.getElementById('login').value;
var password = d.getElementById('password').value;
var password2 = d.getElementById('password2').value;
var email = d.getElementById('email').value;
var name = d.getElementById('name').value;


Цитата
его инициализацию из vars.php и поставить выше $_POST = magic_off($_POST); Так как хэш состоит из латиницы и цифр, то в базу ничего страшного не попадет.


Тут я что то не поняла. У меня в vars нет $_POST = magic_off($_POST)

Спустя 2 минуты, 59 секунд (8.03.2009 - 21:25) lira1 написал(а):
Или это в index менять, просто местами строчки переставить?

Спустя 6 минут, 58 секунд (8.03.2009 - 21:31) twin написал(а):
Из vars.php убери строку
PHP
<?
$password = isset($_POST['password'])?$_POST['password']:NULL;
, поставь её в валидатор, потому что он автономный, а в индексе так:
PHP
<?
$password = isset($_POST['password'])?md5($_POST['password']):NULL;
$_POST = magic_off($_POST);

ЗЫ Не, ну ты точно упертая... Ты же должна сидеть за банкетным столом, а не за компьютерным biggrin.gif

Спустя 7 минут, 35 секунд (8.03.2009 - 21:39) lira1 написал(а):
Сделала

Цитата

ЗЫ Не, ну ты точно упертая... Ты же должна сидеть за банкетным столом, а не за компьютерным biggrin.gif

Для меня это важней, за банкетным потом, когда все сделаем!

Спустя 11 минут, 12 секунд (8.03.2009 - 21:50) twin написал(а):
Вооот. Теперь с учетной записью вроде все нормально. Нужно в этом убедиться. Начинается промежуточный тест-драйв. Для этого у каждого профессионального программиста есть набор тестов, которыми он проверяет готовый продукт. Вот тебе моя таблица имен, пробуй их занести в базу в качестве логинов


Код
Mc''robbins
O"Relly
Jensen & partners
total %25 of sales
&amp;
&
characterictics of volt&amp;
Guest004
и сравни с тем, что в базе. Ни какие изменения не допускаются. Еще сделай хэш какой нибудь строки, введи такую же в качестве пароля и сравни хэши в базе и эталонный. Попробуй различные варианты мыла. с дефисом, с заглавными буквами и т.д. Если все норм, поедем дальше.

Спустя 23 минуты, 41 секунда (8.03.2009 - 22:14) lira1 написал(а):
Все логины пропускает и заносит

емаил с заглавными и квачками не пропускает

пароли шифрует

Еще я в форме везде убрала максимальное кол-во символов

Спустя 6 минут, 54 секунды (8.03.2009 - 22:21) twin написал(а):
Емайл с заглавными нужен. По этому вот те первый ляп. Поставь в регулярку модификатор i
PHP
<?
    elseif(!
preg_match("/^[a-z0-9_.-]+@([a-z0-9_]+.)+[a-z]{2,4}$/i"$email))

Спустя 12 минут, 55 секунд (8.03.2009 - 22:34) lira1 написал(а):
Сейчас пропускает.
А если человек забудет пароль, как будет напоминаться, если шифруется?

Спустя 8 минут, 25 секунд (8.03.2009 - 22:42) twin написал(а):
А нефиг забывать. smile.gif Вообще, по правилам делается восстановление пароля. То есть мы сгенерим что нибудь временное, и дадим возможность еще раз ввести пароль. А времянку отправим на мыло. Но давай все по порядку.
Открываем ТЗ
Код
После регистрации переход на
новую страницу
Поздравляем!
Регистрация прошла успешно.
Вам необходимо подтвердить e-mail адрес, для этого следуйте инструкциям в письме, которое отправлено
Вот. Значит теперь нам нужна эта новая страница. Я в верстке дуб, по этому делай сама, прям на чистом html

Спустя 3 минуты, 4 секунды (8.03.2009 - 22:45) lira1 написал(а):
Хорошо.
Я все хотела спросить в каком ты городе?

Спустя 20 минут, 10 секунд (8.03.2009 - 23:05) twin написал(а):
Новокузнецк. Это Кемеровская область. Но я давно живу по московскому времени, если ты про это biggrin.gif

Спустя 7 часов, 10 минут, 40 секунд (9.03.2009 - 06:16) twin написал(а):
Знач теперь смотри что мы имеем. Во первых, у нас на всех страницах будет одинаковые хидер и футер, то бишь не просто одинаковые, а одни. Они уже есть в каталоге tpl. Это делается для того, что бы потом можно было одним махом изменить дизайн на всех страницах, добавить счетчики к примеру или банеры или рекламу или еще чего. По этому теперь все страницы, которые мы будем делать, надо делать без них, только контентную часть.
Теперь дальше. На странице с регистрацией у тебя по плану должна быть каптча, то бишь картинка с кривыми цифрами. Давай подумаем, так ли она нужна, если мы все равно хотим делать подтверждение регистрации через мыло. Дело в том, что по статистике до 70% юзеров отказываются от регистрации, если на ней есть эта самая каптча. У нас и так получается довольно внушительная форма. Может быть стоит сделать не подтверждение а именно активацию записи? То есть разрешить пользоваться ресурсом только после определенных действий с мылом, а не удалять аккуант через сутки?

Спустя 3 часа, 40 минут, 23 секунды (9.03.2009 - 09:56) lira1 написал(а):
Цитата
Может быть стоит сделать не подтверждение а именно активацию записи? То есть разрешить пользоваться ресурсом только после определенных действий с мылом, а не удалять аккуант через сутки?


Да, как скажешь. Код уберем.

Спустя 19 минут, 55 секунд (9.03.2009 - 10:16) twin написал(а):
Не я как скажешь, а ты. smile.gif Ты же заказчик и исполнитель в одном лице. Хотя убеждать заказчика в том, что можно что то сделать рациональней - тоже та еще наука. Они попадаются такие вредные, ойой.
Тогда значит так. Переделай страницу, на ней должна быть форма с полем ввода для кода активации учетной записи.

Спустя 14 минут, 12 секунд (9.03.2009 - 10:31) lira1 написал(а):
Может вообще без активаций, а то меня ведь бесит когда надо какой то код ждать. Я закрываю обычно такой сайт. Может лучше. Просто логин и пароль на емаил отправлять и все

Спустя 42 минуты, 57 секунд (9.03.2009 - 11:14) twin написал(а):
Можно. Но тогда злые спамеры завалят твой сайт всякой гадостью. А так как сайт определенной тематики, то порно-боты там прям гнездиться будут. Они и так будут пытаться, но хоть какая то минимальная защита быть должна.

Спустя 1 час, 15 минут, 30 секунд (9.03.2009 - 12:29) lira1 написал(а):
Ясно. В чем отличие для нас потврждения и активации?
Вообще будет 2 сайта. Один такой тематики, другой серьезной.
И вопрос как можно несколько доменов подключить к одной базе? Есть ли в этом сложность?

Спустя 7 минут, 2 секунды (9.03.2009 - 12:36) twin написал(а):
Цитата
Вообще будет 2 сайта. Один такой тематики, другой серьезной.

А это что, не серъёзная тематика разве? Народ жаждет общения. Святое дело помочь. smile.gif
Цитата
В чем отличие для нас потврждения и активации?
Подтверждение, это когда зарегался и сразу можешь пользоваться. А не подтвердил - через сутки капут. Вот за эти сутки боты тебя завалят спамом с ног до головы. А активация, это когда нужно сначала ввести код, полученный на мыло, и только потом можно что то писать.
Цитата
как можно несколько доменов подключить к одной базе? Есть ли в этом сложность?
Никакой сложности, если домены на одной площадке. Сервер MySQL у них один. Более того, несколько сайтов на одном хостинге могут пользовать одну на всех базу, то есть вносить изменения и т.д.

Спустя 7 минут, 8 секунд (9.03.2009 - 12:43) lira1 написал(а):
Цитата
А это что, не серъёзная тематика разве? Народ жаждет общения. Святое дело помочь. smile.gif


Да это понятно, просто я решила разделить серьезные отношения и не серьезные, чтоб сразу с первой страницы сайта это было понятно.

А то на мамбе серьезных отношений ищешь, а они все секс...И многих это там задалбало.


Ну тогда будем делать активацию. Но можно сделать так, что человек может смотреть все страницы сайта, не зарегистрированный, а вот писать и смотреть полноразмерные фото не может?

Спустя 10 минут, 36 секунд (9.03.2009 - 12:54) twin написал(а):
Ну так конечно можно. Для того и сочиняется ТЗ. А потом бедные программисты греют головы, как все прихоти заказчика удовлетворить. biggrin.gif Так что давай корректировать. ТЗ. Пиши более подробно про функционал, про взаимодействие и т.д. Так как сейчас мы работаем без малейшего намека на архитектуру. А это не есть хорошо.

Спустя 10 минут, 47 секунд (9.03.2009 - 13:05) SpiderSpy написал(а):
Цитата
Ну тогда будем делать активацию. Но можно сделать так, что человек может смотреть все страницы сайта, не зарегистрированный, а вот писать и смотреть полноразмерные фото не может?
Конечно можно, запрети гостям только то что нужно остальное, разреши, А почему не воспользоваться капчей? И активацию ненадо, и потверждение тоже.

Спустя 17 минут, 34 секунды (9.03.2009 - 13:22) lira1 написал(а):
Цитата
малейшего намека на архитектуру.


Архитектура в мире программистов что значит?

Спустя 29 минут, 41 секунда (9.03.2009 - 13:52) twin написал(а):
Цитата
А почему не воспользоваться капчей? И активацию ненадо, и потверждение тоже.
Можно конечно и каптчу, выбирать заказчику. Но тут два момента. Сочинять свою - довольно хлопотно, а готовые давно уже распарсили и ботам не страшны. Есть особо навароченные каптчи, только чем она сложнее, тем больше проблем юзеру. А во вторых тут маленькая хитрость. Когда юзер видит каптчу, у него СРАЗУ пропадает желание регаться. А когда активацию просят ПОСЛЕ заполнения формы, то становится жалко трудов и хоть и со скрипом, но человек полезет в свой ящик за кодом.

Цитата
Архитектура в мире программистов что значит?
Архитектура в мире программистов значит примерно то же, что и в мире строителей. Прежде чем построить здание, нужно его нарисовать. Что бы знать как он будет выглядеть, какие в нем корпуса, пристройки, крыша, подвал, окна, двери и прочее. То есть нужно попытаться расписать подробно, что и как должно работать. Иначе получится много лишнего или чего то не хватит.

Спустя 5 минут, 6 секунд (9.03.2009 - 13:57) lira1 написал(а):
Я незнаю что еще писать пока, я вроде все подробно уже расписала. Просо это путаница из за активации. Главное отб было, просто и доступно, как на мамбе
Свернутый текст
HTML
<form action="" method="post" name="active" id="active">
<table width="843" height="427" border="0" cellpadding="0">
<tr>
<td width="229" height="115">&nbsp;</td>
<td width="414">&nbsp;</td>
<td width="192">&nbsp;</td>
</tr>
<tr>
<td height="184">&nbsp;</td>
<td bgcolor="#CCFFFF"><table width="100%" border="0" cellpadding="0">
<tr>
<td height="45"><div align="center">Введите код подтверждения полученный на email </div></td>
</tr>
<tr>
<td height="57"><div align="center">
<input name="textfield" type="text" size="50" />
</div></td>
</tr>
<tr>
<td height="25"><div align="center">
<input type="submit" name="Submit" value="ОК" />
</div></td>
</tr>
</table></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<p>&nbsp;</p>
</form>

Спустя 36 минут, 32 секунды (9.03.2009 - 14:33) twin написал(а):
Ну ладно, в процессе поймешь, что и как надо проектировать. Следующий будешь делать уже по науке smile.gif
Форма такая годится. Теперь нам нужно редириктом отправить на неё зареганного юзера. Вот тут сразу вопрос. ЧПУ будем пользовать или так сойдет?

Спустя 1 час, 19 минут, 25 секунд (9.03.2009 - 15:53) lira1 написал(а):
Цитата
редириктом

Цитата
ЧПУ


Незнакомые слова... ohmy.gif

Спустя 2 минуты, 14 секунд (9.03.2009 - 15:55) twin написал(а):
Редерикт - это перенаправление. То есть когда скрипт отработал, выдается заголовок, который отправляет браузер на другую страницу.
А вот ЧПУ

Спустя 34 минуты, 19 секунд (9.03.2009 - 16:29) lira1 написал(а):
Зачем ЧПУ Так можно. В письме обычно такие ссылки приходят, уж точно не ЧПУ

Спустя 14 минут, 15 секунд (9.03.2009 - 16:44) twin написал(а):
Я если чесно его тож недолюбливаю, просто думал ты захочешь научиться. Ну как хош. Хотя это довольно просто. Пока вот это почитай, будет проще потом объяснить что дальше.

Спустя 3 часа, 56 минут, 45 секунд (9.03.2009 - 20:40) lira1 написал(а):
прочитала

Спустя 2 часа, 24 минуты, 33 секунды (9.03.2009 - 23:05) twin написал(а):
Теперь нужно сделать модуль, который будет отпралять письма на почту. Можно сделать это один раз и использовать его потом для разных целей. Например для обратной связи или для отправки личных сообщений прямо с сайта на почту юзеру, с кем хочется познакомиться или для подписки - ну мало ли. Так вот сейчас сделаем универсального почтальёна. Это называется класс. Основа ООП (объектно ориентированное программирование). Класс по сути своей, это отдельная программа, набор функций, в которую можно передать нужные даннве и она сама по себе уже будет делать то, что нам нужно. Вот давай начнем по порядку. Вот класс, внутри функция.

PHP
class Create_Mail
{
    function SendMail() 
    
{
            if(!mail("lira1@swaha.ru", "", "Привет"))   
            return false
; 
            else 
             return true
;
    }
}

Вызываетс так:

PHP
$mail = new Create_Mail();
$mail->SendMail();
То есть мы фактически в переменную $mail записали нашу програмку и потом заставили сработать нужную функцию. Вот запусти (сделай отдельным файлом mail.php в каталоге functions), а потом посмотри, что у тебя в почтовой заглушке.

Спустя 1 час, 32 минуты, 11 секунд (10.03.2009 - 00:37) Joker написал(а):
а почему допустим сразу не отослать писмо? намногопроще же полуаеться? или у классов есть какие то преимущества?
PHP
$r = (mail("lira1@swaha.ru""""Привет"))?true:false;

Также вроде проще получаеться?

Спустя 18 минут (10.03.2009 - 00:55) twin написал(а):
Joker
Следи за процессом. smile.gif А вообще глянь что у тебя получилось. Если ты в utf-8 работаешь, то поймешь, что не проще.

Спустя 7 часов, 41 минута (10.03.2009 - 08:36) lira1 написал(а):
Ну вот так получается
X-Sendmail-Cmdline: sendmail.pl -t -i
To: lira1@swaha.ru
Subject:

Привет

Да я сегодня думала, что нужно еще сделать рассылку новых анкет.

Спустя 52 минуты, 51 секунда (10.03.2009 - 09:29) twin написал(а):
Вообще странно, Привет получиться было не должно, или ты файлы делаешь опять в виндовской кодировке. Дело в том, что кодировку письма нужно указывать явно, и должна она быть utf-8. Так как далеко не все почтовые сервера работают с win-1251. Тем более, что ты делаешь не местечковый сайт, а мирового значения. По этому нужно указать кодировку. А так же нужно указать тип передаваемых данных. Они могут быть в формате text/plain или text/html. Если нужны письма с вложенными файлами, фотографиями допустим, то немного сложнее. Нужны? Пока сделаем так:

PHP
class Create_Mail
{
    var $C_Type = "text/plain";
    var $Charset = "utf-8";
    var $Rn = "\r\n";
    var 
$Header NULL;
        
    function Create_Mail
() 
    
{
        if(substr(PHP_OS, 0, 3) == "WIN")
        $this->Rn =    "\n";    
    
}
        
    function TypeHTML
($ct) 
    
{
        if($ct == true)
        $this->C_Type = "text/html";        
    
}
        
    function HeaderMail
($from) 
    
{
    $headers = "MIME-Version: 1.0;".$this->Rn;
    $headers .= "Content-Type: ".$this->C_Type."; charset=".$this->Charset.$this->Rn;

        if($from == false)
        $headers .= "From: <".MAIL_SUPPORT."> ".$this->Rn;
        else
        $headers 
.= "From: <".$from."> ".$this->Rn;

    $this->Header = $headers;   
    
}    
    
    function SendMail
() 
    
{    
            if
(!mail("lira1@swaha.ru", "", "Привет", $this->Header))   
            return false
; 
            else 
             return true
;
    }     
    
}
Знач что тут. Сначала мы определяем переменные внутри класса по умолчанию. Тип, кодировку и разделитель. Разделитель (перенос строки) на разных платформах используется разный, по этому в первой функции мы определяем платформу и в зависимости от выбираем разделитель. Функция имеет название такое же как класс, по этому выполняется автоматически при запуске класса. Конструкция $this-> означает, что это местная, внутриклассовая переменная. То есть это вместо $, но только для тех переменных, которые определены в классе.
Вторая функция позволяет выставить нужный тип письма. Это с заделом на будущее, вдруг нам захочется расскрасить его html тегами.
Третья функция форимирует заголовок. В ней мы выставляем тип, кодировку, а так же от кого это письма. Если нет обратного адреса, значит ставим адрес сайта. В конфигу теперь нужно дописать это:
PHP
define('MAIL_SUPPORT','lira1@swaha.ru');
с твоим почтовым ящиком. А вызывать будем так:
PHP
$mail = new Create_Mail();
$mail -> HeaderMail(false);
if(
$mail -> SendMail())
echo "<h1>Ура!</h1>"
Разбирайся и пробуй.

Спустя 14 минут, 16 секунд (10.03.2009 - 09:43) lira1 написал(а):
Все равно он привет пишет
X-Sendmail-Cmdline: sendmail.pl -t -i
To: stranaintima@mail.ru
Subject:
MIME-Version: 1.0;
Content-Type: text/plain; charset=utf-8
From: <MAIL_SUPPORT>


Привет


Цитата
$mail = new Create_Mail();
$mail -> HeaderMail(false);
if($mail -> SendMail())
echo "<h1>Ура!</h1>"

Это в отдельный файл?
Или в файл с классом?

Спустя 25 минут, 39 секунд (10.03.2009 - 10:09) twin написал(а):
Пишет он все правильно у тебя, просто ты читаешь не через почтовый клиент, а в блокноте. Попробуй открыть в Outlook Express допустим.
Цитата
Это в отдельный файл?
Или в файл с классом?
Пока для отладки в файл с классом, потом будем ставить туда, где нужно отправлять письмо.

Спустя 42 минуты, 30 секунд (10.03.2009 - 10:51) lira1 написал(а):
Кому, он мой адрес подставляет.

Спустя 18 минут, 5 секунд (10.03.2009 - 11:10) twin написал(а):
Правильно подставляет, потому что кому - это первый аргумент функции mail(); Вот посмотри, что там. Что бы отправить письмо кому нибудь, нужно туда подставить адрес. Еще нужно сделать тему письма, вот этим и займемся. Сначла адрес.

PHP
var $To NULL;
    function 
ToMail($to
    {
$to str_replace(",","",$to);    
$to str_replace("Cc:","",$to);
$to str_replace("Bcc:","",$to);    
$this->To $to;

    }
Зачем это надо. Да в принципе и незачем, просто для подстраховки. Дело в том, что если написать подряд несколько адресов через запятую или Сс, то письма отправятся по всем адресам. Это клад для спамеров. Они будут использовать твой сайт как Байконур для рассылки своих наглых спамовских сообщений. Правда если стоит валидатор, то он на входе не пустит ничего лишнего, но мало ли, вдруг где нибудь забудем.

Теперь тема. Кирилицу в теме письма нужно обязательно кодировать, иначе может придти абра-кадабра. Делается это так:

PHP
var $Subj MAIL_SUPPORT;
    function 
SubMail($sb
    {
    
$this->Subj "=?utf-8?b?".base64_encode($sb)."?=";  
    }
Добавь это в класс, а вызывать теперь будем так:

PHP
$mail = new Create_Mail();
$mail -> HeaderMail(false);
$mail -> ToMail("vasa@pup.ru");
$mail -> SubMail('От Васи Пупкина');
if(
$mail -> SendMail())
echo 
"<h1>Ура!</h1>"

Спустя 3 минуты, 38 секунд (10.03.2009 - 11:13) twin написал(а):
Да, забыл. Функцию отправки надо тоже переделать:

PHP
function SendMail() 
    {    
            if(!
mail($this->To,  $this->Subj"Привет"$this->Header))   
            return 
false
            else 
             return 
true;
    }

Спустя 1 час, 53 минуты, 3 секунды (10.03.2009 - 13:06) lira1 написал(а):
И как сюда подставлять адрес который вводятся в регистрации
$mail -> ToMail("vasa@pup.ru");
$mail -> SubMail('От Васи Пупкина');

И как сюда прописать адрес сайта
.MAIL_SUPPORT.

Спустя 49 минут, 44 секунды (10.03.2009 - 13:56) twin написал(а):
Цитата
И как сюда прописать адрес сайта
.MAIL_SUPPORT.
Я же написал, что в конфигу эту крнстанту.
А адрес мы подставим оч. даже просто. Но сначала давай класс доделаем, чтоб не возвращаться. Нам же надо не просто привет послать, а что то полезное. По этому сделаем так:

PHP
function SendMail($body
    {
            
            if(!
mail($this->To,  $this->Subj$body$this->Header))   
            return 
false
            else 
             return 
true;
    }


А вызывать будем так:
PHP
$mail = new Create_Mail();
$mail -> HeaderMail(false);
$mail -> ToMail('vasa@pup.ru');
$mail -> SubMail('От Васи Пупкина');
if(
$mail -> SendMail('Привет'))
echo 
"<h1>Ура!</h1>";

Теперь можно сюда поставить нужный нам адрес, который достанем из базы:
PHP
$mail -> ToMail($email);
сюда тему:
PHP
$mail -> SubMail(ACTIVE);
а сюда информационное письмо с кодом активации:
PHP
if($mail -> SendMail($active_info))
Если ты прочитала, что там по ссылке, то код активации сможешь сгенерить уже сама. И информационное письмо составить тоже.



Спустя 8 минут, 50 секунд (10.03.2009 - 14:05) Joker написал(а):
KOI8-U а вот эта кодировка это же радная кодировка почтовых серверов?

Спустя 15 минут, 39 секунд (10.03.2009 - 14:20) twin написал(а):
Сервер будет работать с той кодировкой, которую ему указать. А раз мы все делаем в utf-8 то зачем нам каша? К тому же utf-8 это универсальная кодировка и будет работать хоть в Китае, хоть в Папуа-Новой-Гвинее.

Спустя 45 минут, 11 секунд (10.03.2009 - 15:06) lira1 написал(а):
Ну там совсем все по другому написано, я пробовала не получается.
Куда че подставлять ohmy.gif

Спустя 13 минут, 56 секунд (10.03.2009 - 15:20) twin написал(а):
Сначала делаем редерикт на страницу с формой активации. Только не совсем так, как я сделал в поздравлении, а прям на саму себя, только с GET параметром. Вот:

PHP
if($sql)
header("location: ".DOMEN."/?page=active&id=".mysql_insert_id());


Теперь все страницы будут подключаться так :
index.php
PHP
<?php

include("language/ru.php");
include(
"config.php");
include(
"functions/default.php");
$select DOMEN."/functions/selects.php";
$valid DOMEN."/modules/registr/valid.php"

ob_start();
include(
"tpl/header.html");
include(
"tpl/menu.html");
$page = isset($_GET['page'])?$_GET['page']:NULL;

switch(
$page

    case 
"ancet":
$_POST magic_off($_POST);    
include(
"modules/vars.php");    
include(
"modules/ancet/ancet.php");      
include(
"tpl/ancet.html");
    break;    
    
    case 
"registr":
include(
"functions/select_country.php");    
$_POST magic_off($_POST);    
include(
"modules/vars.php");    
include(
"modules/registr/registr.php");           
include(
"tpl/registr.html"); 
    break;

    case 
"active":
include(
"functions/mail.php");
include(
"modules/registr/active.php");           
include(
"tpl/active.html"); 
    break;
    
default:
include(
"modules/ancet/ancet.php");    
include(
"tpl/ancet.html");              
}
include(
"tpl/footer.html");
  
$buffer ob_get_contents();  
ob_end_clean();
echo 
$buffer;

Вот в новый файл active.php и напиши функцию генерации случайной строки. Там же по запросу можно выдернуть E-mail вновьиспеченного юзера и состряпать информационное письмо.

Спустя 9 минут, 1 секунда (10.03.2009 - 15:29) lira1 написал(а):
А эту строку из индекса убираем?
$password = isset($_POST['password'])?md5($_POST['password']):NULL;

Спустя 5 минут, 7 секунд (10.03.2009 - 15:34) twin написал(а):
Нет, это просто у меня старый. Я же говорю - безнадежно отстал biggrin.gif

Спустя 1 час, 22 минуты, 33 секунды (10.03.2009 - 16:56) lira1 написал(а):
Не получается в registr.php дописала
if($sql)
header("location: ".DOMEN."/?page=active&id=".mysql_insert_id());

active.php
Свернутый текст
PHP
<?
if(
count($array_error) == 0 && isset($_POST['registr']))  
{  
mysql_query
("INSERT INTO `".PREFIX."user` SET   
`date`=NOW(),  
`login`='"
.magic_off($_POST['login'])."',  
`password`='"
.md5($_POST['password'])."',  
`email`='"
.$_POST['email']."'")  
or die 
("Ошибка запроса №1 : " . mysql_error());    
$id 
= mysql_insert_id();  

$hash 
= md5($id.rand_str());

mysql_query("UPDATE `".PREFIX."user` SET `hash`='".$hash."' WHERE `id`='".$id."'")   
or die 
("Ошибка запроса №2 : " . mysql_error());   

     $sudject 
= "Активация аккуанта";
    $info = "С Вашего электронного почтового адреса поступила заявка регистрации ра сайте <b> www...................</b>
    <br> Для активации аккуанта пройдите по <a href='http://localhost/book/guestbook_reg/index.php?select=regist&active="
.$hash."' >этой ссылке</a> <br> или введите в поле активации этот код: <b>".$hash."</b>";
    $headers = "From: www.irbis-team\nX-Mailer: www.irbis-team\nContent-Type: text/html; charset=utf-8 \r\n"; 
    
mail
($_POST['email'], $sudject, $info, $headers);
 
header
("location: location: ".DOMEN."/?page=active&id".rawurlencode("Введите код активации"));    
exit();  
}  


if(isset($_GET['active']))
{
    if(isset($_GET['active_start']))
$res = mysql_query("SELECT `id`,`login` FROM `".PREFIX."user`  
 WHERE `hash`='"
.magic_off($_GET['active'])."'")    
or die 
("Ошибка запроса №3 : " . mysql_error());  
    if
(mysql_num_rows($res) > 0) 
    
{
    $_SESSION['login'] = mysql_result($res,0,'login');
    
        if
(isset($_GET['autologin']))
        {    
        $hash 
= md5($id.rand_str());
    mysql_query("UPDATE `".PREFIX."user` SET `active`='1', `hash`='".$hash."'
    WHERE `id`='"
.mysql_result($res,0,'id')."'")   
    or die 
("Ошибка запроса enter_exit.php №4 : " . mysql_error());  
    setcookie
('hash',$hash, time()+3600*24*30*3,"/");
        }
      header("location: .DOMEN."/?page=active&id";
    }
    else
    {
    include_once("
tpl/active.

Спустя 8 минут, 31 секунда (10.03.2009 - 17:05) twin написал(а):
Нееее. Так не пойдет. Нельзя бездумно копировать. Там же все совсем по другому. Надо вникнуть в суть проблемы.
Давай по порядку. Первым делом нужно вынуть из базы E-mail.

Спустя 21 минута, 23 секунды (10.03.2009 - 17:26) lira1 написал(а):
Я думала, но не понимаю я wacko.gif

$query= SELECT `email` FROM `".DOMEN."_user`

Спустя 12 минут, 45 секунд (10.03.2009 - 17:39) twin написал(а):
Тебе наверное отдохнуть надо. Такие то откровенные ляпы совсем зря. И зачем ты его сюда, запрос этот? Суй тогда уж сразу в скрипт и смотри, что получится.

Спустя 1 час, 29 минут, 11 секунд (10.03.2009 - 19:08) lira1 написал(а):
Мы только селекты из базы вытаскавали, а как имя вытащить или другой параметр, мы не обсуждали.
Свернутый текст

Вот так пыталась
<?
include ("config.php");
$base=mysql_query("SELECT * FROM strana_user");
while($row=mysql_fetch_array($base)){
$vibor.= "<table><tr>";
$vibor.= "<td>$row[email]</td>";
$vibor.= "</tr></table>"; }
echo $vibor;

?>

Спустя 2 часа, 1 минута, 49 секунд (10.03.2009 - 21:10) twin написал(а):
Попытка зачетная, но не для такого случая. Тут все гораздо проще. Нам нужно только одно значение - E-mail нового юзера. По этому запрос будет примерно таким:
PHP
<?
$res mysql_query("SELECT `email` FROM `".PREFIX."user` WHERE `id`='".(int)$id."'");
$email mysql_result($res,0,0);
Конфигу подключать не надо, потому что она уже подключена к индексу. А разметка я вообще не понял зачем. Нам же надо почту отправить, а таблица тут совсем не причем. Вот теперь в файл можешь засунуть такой тег
HTML
<?php echo $email ?>
туда, где написано "На адрес...." и он напишет нужныое мыло. А так же его мы подставим в вызов метода:
PHP
$mail -> ToMail($email);
и письмо пойдет нужному адресату. Ну а теперь нужно сформировать само содержания письма, то что мы подставим сюда:
PHP
if($mail -> SendMail($info))

Там, по ссылке, это есть, только не копируй просто так, а попробуй разобраться.

Спустя 16 минут, 47 секунд (10.03.2009 - 21:27) lira1 написал(а):
Я пробовала так
PHP
include("config.php");
$result mysql_query("SELECT email FROM `".PREFIX."user` ") or die ("Ошибка запроса " mysql_error());

echo 
mysql_result($result,0,`email`);


Расскажи значение этого
WHERE `id`='".(int)$id."'");
$email = mysql_result($res,0,0);


Спустя 14 минут, 32 секунды (10.03.2009 - 21:41) twin написал(а):
Цитата
Расскажи значение этого
WHERE `id`='".(int)$id."'");
$email = mysql_result($res,0,0);
WHERE (англ. "где"), то есть запрос выдаст строчку, где значение поля `id` равняется $id. Её кcтати надо достать из GET. (int) приводит значение к целому числу, то есть исключает все, кроме цифр. Это для защиты от редисок. Про http://ru.php.net/mysql_result почитай в мануале, я давно тебе советовал смотреть там незнакомые функции. Если не разберешься сходу, растолкую.

Спустя 9 минут, 31 секунда (10.03.2009 - 21:51) lira1 написал(а):
Все вставила, вроде пока понятно

Спустя 1 минута, 20 секунд (10.03.2009 - 21:52) lira1 написал(а):
а по той ссылке вообще ни че не понятно, автологин, хэш и прочее

Спустя 7 минут, 13 секунд (10.03.2009 - 21:59) twin написал(а):
Ну ладно, раз не понятно, то давай пр порядку. Автологин это когда ты к примеру на этот форум заходишь, а он тебя узнает, здоровается и пароля никакого не просит. Потому что ты при регистрации поставила галочку "
запомнить Вас" Но это пока рано, нам нужно состряпать код подтверждения, который отправим юзеру. А потом, когда он по ссылке вернется мы ему и предложим такую лялю. Напиши текст письма, что бы в нем была ссылка на твой сайт и гет параметром этот код. А как сделать код, я сейчас расскажу.

Спустя 4 минуты, 59 секунд (10.03.2009 - 22:04) twin написал(а):
Вот эту функцию засунь в default.php она будет генерякать случайную строку. Как это происходит, можно узнать здесь, мне повторяться не хочется. Если что не понятно - спрашивай.

PHP
function rand_str() 
{
$arr_num range("0","9");  
$arr_let range("a","z");  

$arr array_merge($arr_num,$arr_let);  
$arr array_merge($arr,$arr);  
$arr array_merge($arr,$arr_let);  
$arr[] = "a";  

$rand microtime(1);  
    for(
$i 0$i 10$i++)  
    {  
    
$key .= $arr[(round(($rand 1000 floor($rand 1000)),2) * 100 )];  
    
$rand microtime(1);  
    } 
return 
$key
}

Спустя 7 минут, 17 секунд (10.03.2009 - 22:12) lira1 написал(а):
Написала $info вставлять в mail.php?

Это я и не читала ты ведь меня на шаг 8 отправлял




Спустя 11 минут, 57 секунд (10.03.2009 - 22:23) twin написал(а):
Нет, отправлять письмо будем из блока регистрации, так надежнее. Поставь это перед редериктом. Туда же вызов класса. и покажи что получилось.

Спустя 12 минут, 59 секунд (10.03.2009 - 22:36) lira1 написал(а):
Цитата
<?
$res = mysql_query("SELECT `email` FROM `".PREFIX."user` WHERE `id`='".(int)$id."'");
$email = mysql_result($res,0,0);


Это в active.php?

Спустя 4 минуты, 41 секунда (10.03.2009 - 22:41) lira1 написал(а):
что то я не туда вставляю
Свернутый текст
PHP
<?php
if(isset($_POST['ok']))

$insert "INSERT INTO `strana_user` 
( `id` , `date` , `login` , `password` , 
`email` , `sex` , `name` , `day` , 
`month` , `year` ) 
VALUES (
'', 
NOW( ) ,
'"
.$login."',
'"
.$password."',
'"
.$email."', 
'"
.$sex."', 
'"
.$name."', 
'"
.$day."', 
'"
.$month."', 
'"
.$year."');";

$info "С Вашего электронного почтового адреса поступила заявка регистрации на сайте <b> www.%%%%.ru </b>
    <br> Для активации аккуанта пройдите по <a href='http://www.%%%%.ru/index.php?select=regist&active="
.$key."'>
    этой ссылке</a> <br> или введите в поле активации этот код: <b>"
.$key."</b>"

include(
"functions/mail.php"); 
///Вместо этого пыталась и это
$mail = new Create_Mail();
$mail -> HeaderMail(false);
$mail -> ToMail($email);
$mail -> SubMail(ACTIVE);
if(
$mail -> SendMail($active_info))///

if($sql)
header("location: ".DOMEN."/?page=active&id=".mysql_insert_id());

Спустя 31 минута, 30 секунд (10.03.2009 - 23:13) twin написал(а):
Все правильно вставляешь. Только аккуратнее надо. Вот почему у тебя тут так:
PHP
$info = "С Вашего э...";
а отправлять собираешься это:
PHP
if($mail -> SendMail($active_info))
Теперь опять объясню. В скриптах не должно быть ни одной буквы, не относящейся к коду. Все, что мы вытаскиваем наружу, на экран или в письмо, нужно выносить в файл language/ru.php в виде констант. Вот это будет в теме письма
Код
ACTIVE
и все надписи подели на константы и так же туда.
Теперь дальше. Раз у нас в тексте письма есть html разметка, значит выставляем нужный тип:
PHP
$mail -> TypeHTML(true);

Теперь еще. Нам нужно код, который будем передавать, занести в базу, что бы было с чем сверяться. Он должен быть обязательно уникальным. Потому что может получиться путаница, ведь ожидается огромное количество страждущих. По этому надо добавить к случайной строке id записи. (А записи то и нет, потому что ты прохлопала где то запрос. Вернее ты его подготовила и где то потеряла.) А для форсу еще и захэшировать. Только для того, что бы получить $key тебе нужно было вызвать функцию, которую я написал чуть раньше. Ну в общем все вместе будет выглядеть так:

PHP
$key = md5(mysql_insert_id().rand_str());

Этот же код нужно еще одним запросом отправить в поле code, про которое я говорил - пригодится. Сама напишешь запрос?
Теперь то, что не доделали прошлый раз. В этом файле вместо
PHP
if(isset($_POST['ok']))
нужно поставить
PHP
if(isset($_SESSION['pusk']))
и весь блок в фигурные скобки. В index.php стартани сессию. А в валидаторе по моему мы уже все подготовили. Собирай все в кучу и пробуй зарегаться.

Спустя 46 минут, 46 секунд (10.03.2009 - 23:59) lira1 написал(а):
a в active.php что?

Цитата
Теперь опять объясню. В скриптах не должно быть ни одной буквы, не относящейся к коду. Все, что мы вытаскиваем наружу, на экран или в письмо, нужно выносить в файл language/ru.php в виде констант. Вот это будет в теме письма


Что именно, письмо делить на константы?



Цитата
PHP
$key = md5(mysql_insert_id().rand_str());


Это куда?

mysql_query("INSERT INTO `".PREFIX."user` SET `code`='$key', $sql);

Так?

В каких файлах то все это делать, а то боюсь не туда записать



Спустя 6 часов, 4 минуты, 41 секунда (11.03.2009 - 06:04) twin написал(а):
Это все один файл - registr.php Запрос не так надо. Вот нужно учиться мыслить логически. Попробуй выстроить всю цепочку последовательностей. Заполняем форму - проходим валидацию - что дальше? В зависимости от требуемых действий и нужно что то предпринимать. А ты просто на угад лепишь лишь бы было. INSERT INTO вставит новую строку, а как мы узнаем, чей это код?
На константы делить нужно разумеется письмо. А почему делить - потому что там есть переменная - $key. А её в константу не засунешь. И вот откуда она у тебя кстати взялась? Что в ней будет? Вот подумай и поймешь, куда это:
PHP
$key md5(mysql_insert_id().rand_str());
А в a в active.php пока только запрос на выборку мыла, который мы чуть раньше сделали, что бы его на страницу вывести. Кстати, почтовый класс подключи в индексе в группу registr а не active

Спустя 3 часа, 51 минута, 59 секунд (11.03.2009 - 09:56) lira1 написал(а):
Тебе легко говорить, я никогда этого не делала, и еще не очень понимаю, как это все вместе сделать. Я и так и сяк. Если бы можно было понимать где ошибка? А то ведь ни че не поймешь.

Я понимаю, после валидации, составление уникального кода, составление письма.
Отправка письма. Переход на форму активации
Но как все это????????Все я умираю! sad.gif

Спустя 1 час, 1 секунда (11.03.2009 - 10:56) Bezdna написал(а):
Цитата (lira1 @ 11.03.2009 - 06:56)
Все я умираю! sad.gif


Держись, осталось всего 10 дней. biggrin.gif

Спустя 33 минуты, 33 секунды (11.03.2009 - 11:30) twin написал(а):
А кому щас легко... Кризис бушует. smile.gif Всегда что то в первый раз и всегда это трудно (и даже больно). А отчаивться не надь. Все наладится и понравится потом. smile.gif

Свернутый текст
PHP
<?php
if(isset($_SESSION['pusk']))
{
$insert = "INSERT INTO `strana_user` 
( `id` , `date` , `login` , `password` , 
`email` , `sex` , `name` , `day` , 
`month` , `year` ) 
VALUES (
'', 
NOW( ) ,
'"
.$login."',
'"
.$password."',
'"
.$email."', 
'"
.$sex."', 
'"
.$name."', 
'"
.$day."', 
'"
.$month."', 
'"
.$year."'
);"
;
# Вот запрос, который потерялся
$sql = mysql_query($insert);
# Получаем id новой записи
$id = mysql_insert_id();
# Вот тут делаем ключ, стладывая id и случайную строку. Для форса - md5()
$key = md5($id.rand_str());
# Вот второй запрос, который добавит ключ в базу
mysql_query("UPDATE `".PREFIX."user` SET `code`='".$key."' WHERE `id`='".$id."'", $sql);
# Вынаем все русские буквы в константы
$info = INFO_FOR."<b>".DOMEN."</b><br>".INFO_ACT."
    <br><a href='"
.DOMEN."/?page=active&key=".$key."'>".INFO_LINK."
    </a> <br>"
.INFO_LAST."<b>".$key."</b>"; 
# Отправляем письмо    
$mail = new Create_Mail();
$mail -> TypeHTML(true);
$mail -> HeaderMail(false);
$mail -> ToMail($email);
$mail -> SubMail(ACTIVE);
if(
$mail -> SendMail($info))    
# И поехали на страницу с кодом активации.
header("location: ".DOMEN."/?page=active&id=".$id);
}
а в индекс так:

Свернутый текст
PHP
<?php
session_start
();
include(
"language/ru.php");
include(
"config.php");
include(
"functions/default.php");
$select = DOMEN."/functions/selects.php";
$valid = DOMEN."/modules/registr/valid.php"; 

ob_start
();
include(
"tpl/header.html");
include(
"tpl/menu.html");
$page = isset($_GET['page'])?$_GET['page']:NULL;

switch(
$page) 
{ 
    case 
"ancet":
$_POST = magic_off($_POST);    
include("modules/vars.php");    
include("modules/ancet/ancet.php");      
include("tpl/ancet.html");
    break;    
    
    case 
"registr":
include(
"functions/select_country.php");
include(
"functions/mail.php"); 
$password 
= isset($_POST['password'])?md5($_POST['password']):NULL;       
$_POST 
= magic_off($_POST);    
include("modules/vars.php");    
include("modules/registr/registr.php");           
include("tpl/registr.html"); 
    break
;
    
    case 
"active":    
include("modules/registr/active.php");           
include("tpl/active.html"); 
    break
;    
    
default:
include(
"modules/ancet/ancet.php");    
include("tpl/ancet.html");              
}
include(
"tpl/footer.html");
  $buffer = ob_get_contents();  
ob_end_clean
();
echo $buffer;


А вот константы:
Свернутый текст
PHP
define("INFO_FOR","С Вашего электронного почтового адреса поступила заявка регистрации на сайте ");
define("INFO_ACT","Для активации аккуанта пройдите");
define("INFO_LINK","по этой ссылке");
define("INFO_LAST","или введите в поле активации этот код: ");
define("ACTIVE","Активация аккуанта");

Пробуй.

Спустя 1 час, 17 минут, 52 секунды (11.03.2009 - 12:47) HardWoman написал(а):
Цитата
Всегда что то в первый раз и всегда это трудно (и даже больно). А отчаивться не надь. Все наладится и понравится потом. 


Вот это мне особенно понравилось smile.gif

Надо создать форум перлы

Спустя 1 час, 32 минуты, 33 секунды (11.03.2009 - 14:20) lira1 написал(а):
Спасибо! До тебя мне еще как до Китая...

A в registr.html
как это поменять
<input type="hidden" id="ok" name="ok"/>
<div align="center">
<input type="button" onclick="Pusk_reg()" value="Зарегистрироваться" />


Спустя 28 минут, 8 секунд (11.03.2009 - 14:48) twin написал(а):
Можешь ничего не менять, это не мешает smile.gif Но вообще просто скрытое поле выкинь, оно нам больше не надо. Получилось что нибудь? Если получилось, залей на хостинг, я гляну.

Спустя 1 час, 39 минут, 28 секунд (11.03.2009 - 16:28) lira1 написал(а):
Нет не получается.

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

и пишет Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in F:\home\test1.ru\www\strana\modules\registr\active.php on line 3

Письмо отправляется
INFO_FORhttp://test1.ru/strana
INFO_ACT
INFO_LINK
или введите в поле активации этот код: 267044c7c5be39fdb2371371aef70efc


Спустя 9 минут, 27 секунд (11.03.2009 - 16:37) lira1 написал(а):
Про константы поняла, там проста ошибка в их написании была

Спустя 27 минут, 5 секунд (11.03.2009 - 17:04) twin написал(а):
Знач смотри, какие ошибки. 27 строка:
PHP
mysql_query("UPDATE `".PREFIX."user` SET `code`='".$key."' WHERE `id`='".$id."'");

Проверь константы, где то ошибка.
В файл registr.php добавь это:

PHP
if(isset($_SESSION['pusk']))
{
unset(
$_SESSION['pusk']);

Полю code в базе поставь тип varchar(32)
И не понял я, что он и где ругался на класс. Письмо приходит не в html формате, но может у тебя так настроен клиент. Добавь в письмо \r\n
PHP
$info INFO_FOR."<b>".DOMEN."</b><br>".INFO_ACT."
    <br>\r\n<a href='"
.DOMEN."/?page=active&key=".$key."'>".INFO_LINK."
    </a> <br>"
.INFO_LAST."<b>".$key."</b>";
и попробуй еще раз.

PS У меня большие проблемы со связью mad.gif , по этому меньше жди, больше думай сама.

Спустя 51 минута, 36 секунд (11.03.2009 - 17:56) lira1 написал(а):
Я думаю., но все равно что то не то
Вот Залила

Спустя 10 минут, 2 секунды (11.03.2009 - 18:06) twin написал(а):
Если ты убрала скрытое поле, то и обращение к нему из JS надо тоже убрать. Вот эту строчку снеси:
HTML
d.getElementById('ok').value = 1;

Спустя 57 минут, 26 секунд (11.03.2009 - 19:03) lira1 написал(а):
А как с этим бороться?
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 11 in /home/virtwww/w_profsvaha-ru_581f9ced/http/strana/modules/registr/active.php on line 3

Свернутый текст
PHP
<?
$res mysql_query("SELECT `email` FROM `".PREFIX."user` WHERE `id`='".(int)$id."'");
$email mysql_result($res,0,0);



Свернутый текст
HTML
<form action="active" method="post" name="active" id="active">
<table width="843" height="427" border="0" cellpadding="0">
<tr>
<td width="229" height="115">&nbsp;</td>
<td width="414">&nbsp;</td>
<td width="192">&nbsp;</td>
</tr>
<tr>
<td height="184">&nbsp;</td>
<td bgcolor="#CCFFFF"><table width="100%" border="0" cellpadding="0">
<tr>
<td height="45"><div align="center">Введите код подтверждения полученный на <?php echo $email ?> </div></td>
</tr>
<tr>
<td height="57"><div align="center">
<input name="textfield" type="text" size="50" />
</div></td>
</tr>
<tr>
<td height="25"><div align="center">
<input type="submit" name="Submit" value="ОК" />
</div></td>
</tr>
</table></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<p>&nbsp;</p>
</form>

Спустя 31 минута, 3 секунды (11.03.2009 - 19:34) twin написал(а):
Весь active.php Должен выглядеть так:
PHP
<?php
include("config.php");
if(isset(
$_GET['id']))
{
$query "SELECT `email` FROM `".PREFIX."user` WHERE `id`='".(int)$_GET['id']."'";
$sql mysql_query($query)or die(mysql_error());
$email mysql_result($sql,0,0);
}
У тебя $id не определена, по этому и ругается.

Спустя 34 минуты, 34 секунды (11.03.2009 - 20:09) lira1 написал(а):
Вот...теперь все супер!

Спустя 11 минут, 4 секунды (11.03.2009 - 20:20) twin написал(а):
А вот и не супер. Опять ты обрадовалась, а не надо бы. Надо всегда думать - что то тут все таки не так. И если хорошо подумать, то можно в адресной строке набрать:
Код
http://mamba.inkz.ru/?page=active&id=1
А потом
Код
http://mamba.inkz.ru/?page=active&id=2
http://mamba.inkz.ru/?page=active&id=3
http://mamba.inkz.ru/?page=active&id=4
.
.
.
http://mamba.inkz.ru/?page=active&id=1000
и все емайлы из твоей базы вынуть. Представь теперь, как обрадуются спамеры такому кладу. Все твои клиенты будут очень информированы и благодарны.
Это не просто дырка, это прямо катлован. Так что давай её заткнем. В registr.php убери
PHP
unset($_SESSION['pusk']);
а в active.php сделай так:
PHP
if(isset($_GET['id']) && isset($_SESSION['pusk']))
{
unset(
$_SESSION['pusk']);
Вот теперь спать можно относительно спокойно. smile.gif

Спустя 3 минуты (11.03.2009 - 20:23) lira1 написал(а):
ну я таких тонкостей не знаю...
И еще когда из ссылки переходишь, код автоматически не подставляет(

Спустя 3 минуты, 49 секунд (11.03.2009 - 20:27) lira1 написал(а):
Исправила. А почему так?

Спустя 9 минут, 59 секунд (11.03.2009 - 20:37) twin написал(а):
Потому что открыт запрос. Ведь скрипт не знает, кто его запрашивает, чесно выдает нужную запись по id из GET. А теперь если сессии нет, то есть валидатор не разрешил попасть в блок запроса, то фиг. И если разрешил, то только один раз, потому что мы переменную сессии сразу же хрякнули:
PHP
unset($_SESSION['pusk']);
А код разумеется он не подставит, с чего бы вдруг? Надо теперь это сделать. То есть вынуть его из GET и засункть в поле
HTML
<input name="textfield" type="text" size="50" />
Почему оно так называется, я не понял. Вообще лучше, чтоб не путаться, использовать сквозные имена. Если это код, то и поле должно называться code. Вот теперь в active.php инициализируй переменную из письма и подставь её в value

Спустя 31 минута, 3 секунды (11.03.2009 - 21:08) lira1 написал(а):
Как в value подставить чтоб код появлялся только переходом через письмо а не сразу?

Спустя 22 минуты, 59 секунд (11.03.2009 - 21:31) twin написал(а):
Так если переменная будет пустая, то есть не будет GET параметра, то там и будет пусто. Надо принять переменную из письма:
PHP
$code = isset(GET['code'])?GET['code']:NULL;

и засунуть в валуе:
HTML
<input name="code" type="text" size="50" value="<?php echo $code ?>" />
. И вся недолга.

Спустя 1 час, 20 минут, 2 секунды (11.03.2009 - 22:51) lira1 написал(а):
уже час ищу как исправить ошибку
Parse error: syntax error, unexpected '[', expecting T_PAAMAYIM_NEKUDOTAYIM mad.gif

Как правильно $code записать в active? mad.gif sad.gif

Спустя 7 минут, 2 секунды (11.03.2009 - 22:58) twin написал(а):
так ты покаж, что там у тебя, я ж не вижу smile.gif

Спустя 5 минут, 27 секунд (11.03.2009 - 23:03) lira1 написал(а):
PHP
<?php
include("config.php");
if(isset(
$_GET['id']))if(isset($_GET['id']) && isset($_SESSION['pusk']))
{
unset(
$_SESSION['pusk']);

$query "SELECT `email` FROM `".PREFIX."user` WHERE `id`='".(int)$_GET['id']."'";
$sql mysql_query($query)or die(mysql_error());
$email mysql_result($sql,0,0);

$query "SELECT `name` FROM `".PREFIX."user` WHERE `id`='".(int)$_GET['id']."'";
$sql mysql_query($query)or die(mysql_error());
$name mysql_result($sql,0,0);
}
{
$code = isset(GET['code'])?GET['code']:NULL;
}

Спустя 6 минут, 9 секунд (11.03.2009 - 23:09) twin написал(а):
Так. Во первых убери это:
PHP
include("config.php");
это я прохлопал наверное из отладочного скрипта. Оно есть уже в индексе. А во вторых, что за скобки
PHP
{
$code = isset(GET['code'])?GET['code']:NULL;
}
?

Спустя 4 минуты, 44 секунды (11.03.2009 - 23:14) twin написал(а):
И зачем два запроса? Если надо вывести еще и имя, то тогда надо так:
PHP
<?php
if(isset($_GET['id']))if(isset($_GET['id']) && isset($_SESSION['pusk']))
{
unset(
$_SESSION['pusk']);

$query = "SELECT `email`, `name` FROM `".PREFIX."user` WHERE `id`='".(int)$_GET['id']."'";
$sql = mysql_query($query)or die(mysql_error());
$row = mysql_fetch_assoc($sql);
$email = $row['email'];
$name = $row['name'];
}

$code = isset(GET['code'])?GET['code']:NULL;

Спустя 2 минуты, 49 секунд (11.03.2009 - 23:17) lira1 написал(а):
Цитата
include("config.php");

Об этом я думала, но подумала что тебе виднее

Я и без скобок пробовала

А про два запроса, я сделала, как умею

Спустя 48 секунд (11.03.2009 - 23:18) twin написал(а):
Ой, а это что:
PHP
if(isset($_GET['id']))if(isset($_GET['id']) && isset($_SESSION['pusk']))
? зачем 2 раза?
PHP
if(isset($_GET['id']) && isset($_SESSION['pusk']))

Спустя 2 минуты, 2 секунды (11.03.2009 - 23:20) twin написал(а):
Цитата
Об этом я думала, но подумала что тебе виднее
Нет не виднее. Конь о 4 лапах, и тот падает. smile.gif Сомневаешься - спроси лучше.

Спустя 5 минут, 47 секунд (11.03.2009 - 23:26) lira1 написал(а):
Цитата
Ой, а это что:


ohmy.gif Сама не поняла че это такое

Спустя 22 минуты, 24 секунды (11.03.2009 - 23:48) lira1 написал(а):
Ошибка не проходит

Спустя 5 минут, 49 секунд (11.03.2009 - 23:54) twin написал(а):
Надо быть чуточку внимательней. Мало ли чего я сдуру напишу:
PHP
$code = isset($_GET['code'])?$_GET['code']:NULL;

Спустя 22 минуты, 23 секунды (12.03.2009 - 00:16) lira1 написал(а):
Все равно переходя по ссылке код не вставляется.
А почему переменная code, в письме ведь key прописано?

Спустя 10 минут, 50 секунд (12.03.2009 - 00:27) lira1 написал(а):
НА хостинг залила Вот


Спустя 16 минут, 39 секунд (12.03.2009 - 00:44) twin написал(а):
Цитата
А почему переменная code, в письме ведь key прописано?
Потому что я привык к сквозным именам и уже даже и не задумываюсь о том, что имя может где то измениться. Конечно же key, только я советовал бы сменить его на code.

Спустя 8 часов, 26 минут, 16 секунд (12.03.2009 - 09:10) lira1 написал(а):
Везде key заменила на code. Но переходя по ссылке он все равно не подставляет

Может в письме что изменить
$info =$name."<br>".INFO_FOR."<b>".DOMEN."</b><br>".INFO_ACT."
<br><a href='".DOMEN."/?page=active&code=".$code."'>".INFO_LINK."
</a> <br>".INFO_LAST."<b>".$code."</b>";

Спустя 49 минут, 24 секунды (12.03.2009 - 09:59) twin написал(а):
А выше? Вот тут:
PHP
$key md5($id.rand_str());

Спустя 33 минуты, 31 секунда (12.03.2009 - 10:33) lira1 написал(а):
Цитата
$key = md5($id.rand_str());

и тут

в html так
<input name="code" type="text" size="50" value ="<?php echo $code?>"/>

Спустя 49 минут, 47 секунд (12.03.2009 - 11:23) twin написал(а):
Цитата
в html так
<input name="code" type="text" size="50" value ="<?php echo $code?>"/>
Надо или точку с запятой ставить, или хотя бы пробел:
HTML
<?php echo $code; ?>
<?php echo $code ?>

Спустя 3 часа (12.03.2009 - 14:23) lira1 написал(а):
Все равно не че не меняется

Спустя 1 час, 27 минут, 40 секунд (12.03.2009 - 15:50) twin написал(а):
Сложи все в архив и давай сюда.

Спустя 8 минут, 50 секунд (12.03.2009 - 15:59) lira1 написал(а):
Сейчас
Вот тут мне кажется что то не то
$rand = microtime(1);
for($i = 0; $i < 10; $i++)
{
$code .= $arr[(round(($rand * 1000 - floor($rand * 1000)),2) * 100 )];
$rand = microtime(1);
}
return $key;

Спустя 9 минут, 18 секунд (12.03.2009 - 16:08) lira1 написал(а):

Спустя 21 минута, 13 секунд (12.03.2009 - 16:30) Bezdna написал(а):
Цитата (lira1 @ 12.03.2009 - 12:59)

$code .= $arr[(round(($rand * 1000 - floor($rand * 1000)),2) * 100 )];
$rand = microtime(1);
}
return $key;


$code .= $arr[(round(($rand * 1000 - floor($rand * 1000)),2) * 100 )];
$rand = microtime(1);
}
return $key;

Спустя 13 минут, 38 секунд (12.03.2009 - 16:43) twin написал(а):
Вот здесь не надо в блоке, мы же туда больше одного раза не пускаем:
PHP
}
$code = isset($_GET['code'])?$_GET['code']:NULL;

Спустя 20 минут, 49 секунд (12.03.2009 - 17:04) lira1 написал(а):
И так просто, сума сойти

Спустя 22 минуты, 35 секунд (12.03.2009 - 17:27) twin написал(а):
А я говорил - ничего сложного. smile.gif Теперь надо юзьверя активировать. Добавь в таблицу поле active ENUM('0', '1')только последним столбиком. Нам нужно написать запрос, который будет ставить в нем единичку для строки, code которой совподает с тем, что получили из письма. Только не из GET, а уже из формы активации.

Спустя 45 минут (12.03.2009 - 18:12) lira1 написал(а):
Добавила, а вот как и где запрос писать? rolleyes.gif

Спустя 13 минут, 19 секунд (12.03.2009 - 18:25) twin написал(а):
В файле active.php делаем новый блок, который будет запускаться из формы:
PHP
if(isset($_POST['Submit'])) 
{
# Тут запрос
}
Подсказка smile.gif UPDATE и WHERE

Спустя 40 минут, 4 секунды (12.03.2009 - 19:05) lira1 написал(а):
PHP
if(isset($_POST['Submit'])) 
{
mysql_query("UPDATE `".PREFIX."user` SET `active`='1', `code`='".$code."'
    WHERE `id`='"
.mysql_result($res,0,'id')."'")   
   or die(
mysql_error()); 
}

Не подставляет sad.gif

Спустя 12 минут, 24 секунды (12.03.2009 - 19:17) twin написал(а):
Потому что теперь мы юзера должны узнать по походке коду из письма:
PHP
if(isset($_POST['Submit'])) 
{
mysql_query("UPDATE `".PREFIX."user` SET `active`='1'
    WHERE `code`='"
.$code."'")   
   or die
(mysql_error()); 
}
А $code надо взять из формы. И про инъекции не забывай.

Спустя 1 час, 10 минут, 31 секунда (12.03.2009 - 20:28) lira1 написал(а):
Цитата
А $code надо взять из формы. И про инъекции не забывай.

а подсказка? rolleyes.gif

Спустя 17 минут, 12 секунд (12.03.2009 - 20:45) twin написал(а):
Вот подсказка:
Свернутый текст
smile.gif
Свернутый текст
PHP
if(isset($_POST['Submit'])) 
{
$code = isset($_POST['code'])?$_POST['code']:NULL;
mysql_query("UPDATE `".PREFIX."user` SET `active`='1'
    WHERE `code`='"
.magic_off($code)."'")   
   or die(
mysql_error()); 
}

Теперь нужно сделать автологин. Добавь в форму чекбокс с надписью "Запомнить Вас?" Щас будем кукисы юзать. Ты то, что сделали, все понимаешь, или с трудом?

Спустя 8 минут, 48 секунд (12.03.2009 - 20:54) lira1 написал(а):
Многое понимаю.

Цитата
у чекбокс с надписью "Запомнить Вас?

Сделала

Спустя 14 минут, 24 секунды (12.03.2009 - 21:08) twin написал(а):
Ну это радует. Теперь надо так:

PHP
if(isset($_POST['Submit'])) 
{
$code = isset($_POST['code'])?$_POST['code']:NULL;
mysql_query("UPDATE `".PREFIX."user` SET `active`='1'
    WHERE `code`='"
.magic_off($code)."'")   
   or die(
mysql_error()); 
    if(isset(
$_POST['Имя_чекбокса']))
    
setcookie('code',$codetime()+3600*24*30*3,"/");
header("location: куда_там_дальше");
}


Спустя 5 минут, 31 секунда (12.03.2009 - 21:14) lira1 написал(а):
Чтобы это значило?
Цитата
setcookie('code',$code, time()+3600*24*30*3,"/");


Спустя 3 минуты, 23 секунды (12.03.2009 - 21:17) twin написал(а):
Это кукис

Спустя 3 минуты, 6 секунд (12.03.2009 - 21:20) lira1 написал(а):
Понятно

Спустя 2 минуты, 10 секунд (12.03.2009 - 21:23) twin написал(а):
Ну что там по плану, кда после регистрации юзера будем отправлять?

Спустя 18 минут, 21 секунда (12.03.2009 - 21:41) lira1 написал(а):
На форму добавить фото добавить анкету

Спустя 6 минут, 32 секунды (12.03.2009 - 21:47) twin написал(а):
Ну дык где форма то? Рисуй. Бум отправлять болезного... Или это анкета и есть?

Спустя 2 часа, 22 минуты (13.03.2009 - 00:09) lira1 написал(а):
Свернутый текст

HTML
<form id="form1" name="form1" method="post" action="">
<table width="100%" height="610" border="0" cellpadding="0">
<tr>
<td><div id="block" align="center">
<a href="#"><strong>Создать анкету</strong></a></div></td>
<td><div id="block1" align="right">
<div align="left"><a href="#"><strong>Добавить фото</strong></a></div>
</div></td>
</tr>
</table>
</form>


А как низ и вверх к форме подключаются?

Спустя 5 часов, 48 минут, 23 секунды (13.03.2009 - 05:58) twin написал(а):
Ну какая же это форма? Мы вот аякс делали, там были элементы без формы. А вот форма без элементов... я по крайней мере такого не встречал. Форма, это такой тег, внутри которого должны быть элементы. Данные из этих элементв упаковываются в массив POST или GET (смотря какой выбран метод) и передаются на сервер. Допустим так:
HTML
<form id="form1" name="form1" method="post" action="" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" name="ok" />
</form>
можно передать на сервер файл (ну фотку к примеру). А у тебя в форме нет ни элементов ни кнопки отправки... sad.gif Чего мы будем передавать? А если это промежуточная страница, то я рекомендую от неё вообще отказаться. Чем меньше мороки, тем больше шансов удержать юзера. Я вот попробовл зарегаться на мамбе (на что не пойдешь ради искусства), так мне терпения не хватило. Только если уж очень сильно хочется с кем нибудь пообщаться, тогда можно терпеть эти мучения.
Давай после активации отправим юзьверя сразу в профиль, а там в одном месте и анкету и фотки и редактирование данных?

Спустя 2 часа, 54 минуты, 25 секунд (13.03.2009 - 08:52) lira1 написал(а):
Ну да так будет лучше

Спустя 15 минут, 51 секунда (13.03.2009 - 09:08) twin написал(а):
Ну рисуй страницу профиля. Что там нужно, какие действия. Кстати, на мамбе все за деньги, и гороскоп и рейтинг и ещё всяка бяка. Ты буш бабло заколачивать, или это для души? Если будешь, надо тебе персональный аттестат на вебманях иметь как минимум.

Спустя 12 минут, 35 секунд (13.03.2009 - 09:21) lira1 написал(а):
Вот схемотично это должно выглядеть так
Ссылки там с мамбы, потом на наши надо поменять
Это я просто для того чтоб было понятней, что нужно, а ты уже объясни как лучше это сделать
Свернутый текст
HTML
<table width="100%" border="0" cellpadding="0">
<tr>
<td height="69">&nbsp;</td>
<td colspan="2"><h1 align="center">Моя анкета </h1></td>
</tr>
<tr>
<td width="38%" height="100">Ваша страница находится<br />
на <a target="_blank" href="http://love555.ru/search.phtml?showplace=1&action=search&s_i=N&s_l=F&s_f=&s_t=&s_c=3159_3563_3612&s_m=0&s_ty=All&offset=0"><strong>2 месте</strong></a>. Просмотров за <br />
сегодня: <a href="http://love555.ru/my/hit_list.phtml?period=0">1</a>, за месяц: <a href="http://love555.ru/my/hit_list.phtml?period=-30">1</a> <br />
<strong><a href="http://love555.ru/my/maketop.phtml">Поднять «наверх»?</a></strong></td>
<td width="24%"><div align="center">
<table border="0" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<td><table align="left" border="0" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<td bgcolor="#edeef0"><a href="http://love555.ru/my/edit_home.phtml?afolder=albums"><img src="http://62.105.135.100/images/default/default/photo_small_add.gif" alt="Добавить фотографию" title="Добавить фотографию" border="0" width="46" height="62" /></a> </td>
</tr>
</tbody>
</table></td>
<td><table align="left" border="0" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<td bgcolor="#edeef0"><a href="http://love555.ru/my/edit_home.phtml?afolder=albums"><img src="http://62.105.135.100/images/default/default/photo_small_add.gif" alt="Добавить фотографию" title="Добавить фотографию" border="0" width="46" height="62" /></a> </td>
</tr>
</tbody>
</table></td>
<td><table align="left" border="0" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<td bgcolor="#edeef0"><a href="http://love555.ru/my/edit_home.phtml?afolder=albums"><img src="http://62.105.135.100/images/default/default/photo_small_add.gif" alt="Добавить фотографию" title="Добавить фотографию" border="0" width="46" height="62" /></a> </td>
</tr>
</tbody>
</table></td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<td> Нет фото | <a href="http://love555.ru/my/edit_home.phtml?afolder=albums">Добавить…</a></td>
</tr>
</tbody>
</table>
</div> </td>
<td width="38%"><div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>
<td>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td><strong>Dana</strong>  </td>
<td><img src="http://62.105.135.100/images/default/default/ico_f.gif" alt="Девушка" title="Девушка" border="0" width="11" height="11" /> </td>
</tr>
</tbody>
</table>
</div></td>
</tr>
<tr>
<td><div align="center">Россия, Нижний Новгород</div></td>
</tr>
<tr>
<td><div align="center"><br />
</div></td>
</tr>
<tr>
<td><div align="center">Возраст: <strong>30 лет</strong>, знак Зодиака: Стрелец </div></td>
</tr>
<tr>
<td></td>
</tr>
</tbody>
</table>
</div>
<div>
<div>
<hr align="center" />
</div>
</div>
<div align="center"><a href="http://love555.ru/my/edit_personal.phtml">Редактировать личные данные…</a></div></td>
</tr>
<tr>
<td height="111">&nbsp;</td>
<td colspan="2" valign="top"><p>&nbsp;</p>
<p>Форма анкеты </p></td>
</tr>
</table>

Спустя 10 минут, 27 секунд (13.03.2009 - 09:31) lira1 написал(а):
Цитата
Ты буш бабло заколачивать, или это для души?

Все вместе. Все делаю ради сына и для него... Сложно все это объяснить, жизнь у нас не легкая...

Спустя 52 минуты, 29 секунд (13.03.2009 - 10:24) Bezdna написал(а):
Цитата (lira1 @ 13.03.2009 - 06:31)
Сложно все это объяснить, жизнь у нас не легкая...


twin не мучай девушку. Пусть какой-нибудь готовый бесплатный (или нулёный) скрипт воткнёт, а потом, в процессе, матчасть учит.

Спустя 34 минуты, 25 секунд (13.03.2009 - 10:58) lira1 написал(а):
Цитата
twin не мучай девушку. Пусть какой-нибудь готовый бесплатный (или нулёный) скрипт воткнёт, а потом, в процессе, матчасть учит.


Чтобы что то получить нужно приложить усилия...
И twin меня не мучает, это про жизнь имелось в виду, он мне наоборот очень помогает!

Спустя 2 часа, 26 минут, 8 секунд (13.03.2009 - 13:24) twin написал(а):
Цитата
Вот схемотично это должно выглядеть так
Ссылки там с мамбы, потом на наши надо поменять
Вот так совсем не пойдет. Я же не представляю даже, как эта мамба устроена. Я регалку представляю, а мамбу нет. По этому с этого места поподробнее. Вот мы юзера на эту страницу допустим кинули. Что там еще должно быть? Форма анкеты? У тебя есть уже, сложи тогда в один файл. Или анкета, это отдельная песня? Распиши мне подробно, всю инструкцию, что я, как юзер, смогу сделать, попав на эту страницу.

Bezdna
Цитата
twin не мучай девушку.
Буду мучать. Она сама хочет. А потом научится и будет деньги зарабатывать. smile.gif Или ты не веришь, что сможет?

Спустя 1 час, 23 минуты, 50 секунд (13.03.2009 - 14:48) Bezdna написал(а):
Цитата (twin @ 13.03.2009 - 10:24)
А потом научится и будет деньги зарабатывать. smile.gif Или ты не веришь, что сможет?


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

Спустя 22 минуты, 34 секунды (13.03.2009 - 15:11) lira1 написал(а):
Анкета, там я поянения сделала

А чтоб было более понятней можешь зайти на мамбу
вот
логин jyurt44yrfu1
пароль 123456

И еще то что у на логин можно и русскими буквами писать, это нормально, а то на всех сайтах почему то только по английски?



Спустя 1 минута, 36 секунд (13.03.2009 - 15:12) lira1 написал(а):
Цитата
но может лучше сначала использовать готовый сайт

У меня есть такой, но сайт на готовых шаблонах и бесплатных скриптах, дохода который мне нужен не принесет

Спустя 1 час, 17 минут, 9 секунд (13.03.2009 - 16:29) twin написал(а):
Так, из того что есть, я пока понял только, что нужно для начала вывести имя, страну, город, возраст и знак зодиака. Дальше в дебри я пока не полез. Начнем с этого. Для начала нужно организовать такую страничку. Как я понял, её название - это логин. Там кстати по этому используется ЧПУ. Мы же делаем не хуже чем у них, а лучше smile.gif , по этому тоже такую штуку заюзаем. А логин у них английскими буквами, потому что в адресной строке кирилица недопустима. Но мы от своего не отступимся, и сделаем автоматический транслит. Давай по порядку. В индекс пропиши новый блок, или мы это на анкету свешаем?
В таблицу user добавь еще одно поле - pagename varchar(100). Можно конечно логин сразу в транслит коверкнуть, но он нам может еще пригодится. Сейчас напишу скрипт транслитерации.

Спустя 43 минуты, 22 секунды (13.03.2009 - 17:13) lira1 написал(а):
Цитата
или мы это на анкету свешаем?

да, лучше сюда.
Добавила

Спустя 3 минуты, 34 секунды (13.03.2009 - 17:16) twin написал(а):
Вот скрипт транслитерации URL. Правда нам придется пожертвовать всеми символами, кроме дефиса. Но это только в названии странички. Логин трогать не будем - пусть резвяться. Только немного усложним валидатор.
Засунь это в файл translit.php в каталог functions и подключи в индексе в блок с регистрацией. И спрашивай, что не понятно. Ты совсем ничего не спрашиваешь, то ли все понимаешь, то ли наоборот, нипанимаешь ничего и стесняешься спросить. Чем больше задашь вопросов, тем легче будет потом.
Свернутый текст
PHP
<?php        
function encodeurl
($str) 
{ 
$str 
= preg_replace("#[^\da-zа-яё-]#ui","",$str);
$arr = array(  
'а' => 'a', 
'б' => 'b', 
'в' => 'v', 
'г' => 'g', 
'д' => 'd', 
'е' => 'e', 
'ё' => 'jo', 
'ж' => 'zh', 
'з' => 'z', 
'и' => 'i', 
'й' => 'jj', 
'к' => 'k', 
'л' => 'l', 
'м' => 'm', 
'н' => 'n', 
'о' => 'o', 
'п' => 'p', 
'р' => 'r', 
'с' => 's', 
'т' => 't', 
'у' => 'u', 
'ф' => 'f', 
'х' => 'kh', 
'ц' => 'c', 
'ч' => 'ch', 
'ш' => 'sh', 
'щ' => 'shh', 
'ъ' => '9', 
'ы' => 'y', 
'ь' => '6', 
'э' => 'eh', 
'ю' => 'ju', 
'я' => 'ja'
); 
$key 
= array_keys($arr);
$val = array_values($arr);
$trans = str_replace($key,$val, mb_strtolower($str)); 

    return $trans
; 
}

Спустя 9 минут, 41 секунда (13.03.2009 - 17:26) lira1 написал(а):
Я вот index не очень понимаю

Спустя 21 минута, 56 секунд (13.03.2009 - 17:48) twin написал(а):
Это очень просто. Функция include() - это то же самое, что на форуме скрытый текст. И свич тоже похож. Свич - это переключатель. Какое значение в его аргументе (switch($page) ), такой блок и работает. До слова break;
А вместо include(); можно с таким же успехом прописать код из подключаемого файла. Так как все ссылки сайта идут только на индекс, свич помогает нам разобраться, что нужно делать.
Вот смотри, что получается в индексе:
Выбираем "ancet" (<a href="?page=ancet" >Анкета</a>)

switch($page)
{
case "ancet":
$_POST = magic_off($_POST);
include("modules/vars.php");
Свернутый текст
PHP
<?php
$login 
= isset($_POST['login'])?$_POST['login']:NULL;
$password2 = isset($_POST['password2'])?$_POST['password2']:NULL;
$email = isset($_POST['email'])?$_POST['email']:NULL;
$sex = isset($_POST['sex'])?$_POST['sex']:NULL;
$name = isset($_POST['name'])?$_POST['name']:NULL;
$day = isset($_POST['day'])?$_POST['day']:NULL;
$month = isset($_POST['month'])?$_POST['month']:NULL;
$year = isset($_POST['year'])?$_POST['year']:NULL;
$find = isset($_POST['find'])?$_POST['find']:NULL;
$country_id = isset($_POST['country_id'])?$_POST['country_id']:NULL;
$region_id = isset($_POST['region_id'])?$_POST['region_id']:NULL;
$city_id = isset($_POST['city_id'])?$_POST['city_id']:NULL;
$rule =  isset($_POST['rule'])?$_POST['rule']:NULL;

include("modules/ancet/ancet.php");
Свернутый текст
Тут код из файла ancet.php

include("tpl/ancet.html");
Свернутый текст
Тут код из файла ancet.html

break;


То есть мы получили в GET параметре ancet и у нас на данный момент работает только этот блок. Остальные ждут своей участи. Это удобно тем, что в оперативную память сервера грузится только то, что нам необходимо на данный момент, а не весь скрипт. По этому получается очень ресурсобережливо и быстро.

Спустя 8 минут, 14 секунд (13.03.2009 - 17:56) lira1 написал(а):
Цитата
По этому получается очень ресурсобережливо и быстро.

Это главное!

Спустя 6 минут, 41 секунда (13.03.2009 - 18:03) twin написал(а):
Прынцып ясен? Если ясен, продолжим. Файл translit.php подключи в блок "registr" выше валидатора. А в валидаторе изменим функцию:
PHP
function check_login($login)
{
$res mysql_query("SELECT COUNT(*) AS `cnt` FROM `".PREFIX."user` 
WHERE `pagename`='"
.encodeurl($login)."'")or die(mysql_error());
if(
$res)
if(
mysql_result($res,0,0) > 0)
return 
true;
}
И в блоке регистрации надо заполнить в таблице поле pagename логином, обработанным функцией транслита.

Спустя 18 минут, 59 секунд (13.03.2009 - 18:22) lira1 написал(а):
Цитата
И в блоке регистрации надо заполнить в таблице поле pagename логином, обработанным функцией транслита.

Не поняла

Спустя 6 минут, 36 секунд (13.03.2009 - 18:28) twin написал(а):
Вот:

$insert = "INSERT INTO `strana_user`
( `id` , `date` , `login` , `password` ,
`email` , `sex` , `name` , `day` ,
`month` , `year`,`code`, `active`, `pagename` )
VALUES (
'',
NOW( ) ,
'".$login."',
'".$password."',
'".$email."',
'".$sex."',
'".$name."',
'".$day."',
'".$month."',
'".$year."'
'".$year."'
'',
'',
'".encodeurl($login)."'
)";

Спустя 5 минут, 48 секунд (13.03.2009 - 18:34) lira1 написал(а):
Цитата
".$year."'
'".$year."'
'',
'',


Так почему?

Спустя 18 минут, 28 секунд (13.03.2009 - 18:53) twin написал(а):
Там же два пустых поля `code` и `active`. Или ты их не добавила? smile.gif

Спустя 2 часа, 5 минут, 58 секунд (13.03.2009 - 20:59) lira1 написал(а):
Цитата
".$year."'
'".$year."'


Я о том что зачем два year?

Спустя 7 минут, 55 секунд (13.03.2009 - 21:07) twin написал(а):
Обшибочка... unsure.gif Вот, так и дальше. Самостоятельно. smile.gif
Дальше что там кстати? Мы забыли про форму вход-выход. Нарисуй такую, будем делать кордон с собаками..

Спустя 34 минуты, 19 секунд (13.03.2009 - 21:41) lira1 написал(а):
У меня такая ошибка вылазит

Fatal error: Call to undefined function encodeurl() in F:\home\test1.ru\www\strana\modules\registr\valid.php on line 9

Цитата
кордон с собаками..

Чтобы это значило?

Цитата
про форму вход-выход.

Может про форму вход логин пароль ?

Спустя 18 минут, 42 секунды (13.03.2009 - 22:00) twin написал(а):
Цитата
Может про форму вход логин пароль ?
Ну да. А кордон - это граница. Враг не пройдет! А ошибка потому что не подключила или не туда подключила транслит. Или в названиях функции путаница.
Да, и на денвере работать не будет. Там mb нужна.

Спустя 51 минута, 4 секунды (13.03.2009 - 22:51) lira1 написал(а):
На хостинге тоже не работает sad.gif

Спустя 57 секунд (13.03.2009 - 22:52) lira1 написал(а):
case "registr":
include("functions/select_country.php");
include("functions/mail.php");
$password = isset($_POST['password'])?md5($_POST['password']):NULL;
$_POST = magic_off($_POST);
include("modules/vars.php");
include("functions/translate.php");
include("modules/registr/registr.php");
include("tpl/registr.html");
break;

Спустя 19 минут, 46 секунд (13.03.2009 - 23:11) twin написал(а):
Блин, забыл. Прости подонка. sad.gif В валидатор тоже подключи транслит.

Спустя 21 минута, 2 секунды (13.03.2009 - 23:32) lira1 написал(а):
Свернутый текст
HTML
<table width="100%" border="0" cellpadding="0">
<tr>
<td width="33%" height="213"><br> </td>
<td colspan="2" valign="top"><h2>Авторизация</h2>
<p>Для того, чтобы никто не мог воспользоваться вашими данными, они защищены паролем, который вы указывали при регистрации. <br>
</td>
</tr>
<tr>
<td> </td>
<td width="31%"><h5 align="center">Уже регистрировались? </h5>
<form name="input" method="post" action="">
<table width="100%" border="0" align="center" cellpadding="10">
<tr>
<td width="26%">Логин:</td>
<td width="74%"><input type="text" name="login"></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input type="text" name="password"></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Войти">
</div></td>
</tr>
</table>
</form> </td>
<td width="36%"></td>
</tr>
</table>


Спустя 4 минуты, 13 секунд (13.03.2009 - 23:37) lira1 написал(а):
Щас он на регистрации пропускает, а потом пишет Call to undefined function encodeurl() in /home/virtwww/w_profsvaha-ru_581f9ced/http/strana/modules/registr/registr.php on line 21

Спустя 23 минуты, 9 секунд (14.03.2009 - 00:00) twin написал(а):
Call to undefined function переводится как обращение к неопределенной функции. То есть он функцию транслита не видит. Ты из индекса её не убрала случаем? Проверь имя функции, может опять русская буква затесалась.

Так, теперь нужен новый блок в индексе - enter Ты уже умеешь. Сделай файл - enter.php в каталог registr Этот файл и форму в блок. Щас напишем вход-выход.

Спустя 16 минут, 55 секунд (14.03.2009 - 00:17) lira1 написал(а):
В базе почему то в pagename ничего не отображается

Спустя 18 минут, 50 секунд (14.03.2009 - 00:35) twin написал(а):
Цитата
В базе почему то в pagename ничего не отображается
Щас отобразим. Ошибка пропала?
Вот вход-выход. Только добавь в форму чекбокс - Запомнить Вас? с именем autologin

PHP
<?php

if(isset($_POST['Submit']) && isset($_POST['login']) && isset($_POST['password'])) 

$res mysql_query("SELECT `id` FROM `".PREFIX."user` 
WHERE `login`='"
.magic_off($_POST['login'])."' 
AND `password`='"
.md5($_POST['password'])."'");   
    if(
$res)
    { 
        if(
mysql_num_rows($res) !== 0)  
        {  
        
$_SESSION['login'] = $_POST['login'];   
            if(isset(
$_POST['autologin']))  
            {
            
$code md5(mysql_result($res,0,'id').rand_str());  
            
setcookie('code',$codetime()+3600*24*30*3,"/");
            
mysql_query("UPDATE `".PREFIX."user` SET `code`='".$code."' WHERE `id`='".$id."'");   
            }  
        }
    }  
}
if(isset(
$_GET['exit'])) 

unset(
$_SESSION['login']); 
session_destroy(); 
setcookie('code',''time()-3600*24,"/"); 


Спустя 14 минут, 28 секунд (14.03.2009 - 00:50) lira1 написал(а):
Сделала

if(mysql_num_rows($res) !== 0)
вот это не понятно

Спустя 11 минут, 44 секунды (14.03.2009 - 01:02) twin написал(а):
В транслите сделай так:
PHP
$trans = str_replace($key,$val,mb_strtolower($str,"utf-8"));
и все будет чики пики.
Цитата
вот это не понятно
а это значит, что если нет ни одной записи, удовлетворяющей условиям (логин-пароль), то фигу. То есть нет такого юзера. Функция mysql_num_rows() выдает количество рядов, которое вернул запрос. Ты читай про функции в мануале, без него ни когда не научишься.

Спустя 5 минут, 36 секунд (14.03.2009 - 01:07) twin написал(а):
Теперь надо где то поставить ссылки
HTML
<a href="?page=enter">Войти</a>
<a href="?page=enter&exit=1">Выйти</a>

а вот тут поставить редирикт куда нибудь:

PHP
if(isset($_GET['exit'])) 
{ 
unset($_SESSION['login']); 
session_destroy
(); 
setcookie
('code','', time()-3600*24,"/"); 
#Вот тута.
}
и пробовать войти - выйти.

PS В блок входа тоже наверное редирикт надо...

Спустя 4 минуты, 50 секунд (14.03.2009 - 01:12) twin написал(а):
Остался последний блок - кордон с собаками. То есть защита. Я вот что подумал. Регалку сделаем отдельным модулем, а весь сайт начнем с нуля. С анкетами, фотками и иже с ними. Но это завтра уже.

Спустя 8 часов, 13 минут, 9 секунд (14.03.2009 - 09:25) lira1 написал(а):
Цитата
В блок входа тоже наверное редирикт надо...

Не представляю

Спустя 3 часа, 30 минут, 5 секунд (14.03.2009 - 12:55) twin написал(а):
Вобщем так. Я порядок начал наводить,
Вот тут посмотри
а тут архив.
Я не проверял, пробуй, ищи ошибки и приводи в порядок. Мне сейчас некогда - срочный заказ. К вечеру постараюсь скрипт грорскопа написать. Главное разберись со структурой и задавай вопросы. Можешь все сразу, законспектируй и вывали. Я по позже посмотрю.

Спустя 16 минут, 20 секунд (14.03.2009 - 13:12) lira1 написал(а):
А гороскоп то зачем?

Спустя 18 минут, 37 секунд (14.03.2009 - 13:30) twin написал(а):
Не гороскоп, блин, зодиак. Там же надо вычислить какой знак зодиака...

Спустя 31 минута, 53 секунды (14.03.2009 - 14:02) lira1 написал(а):
А тогда понятно. У тебя архив какой то не понятный. В индексе enter не подключен. defanse.php появился, так я и не поняла зачем.
В анкете тож добавления не понятные
Свернутый текст
PHP
$query "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql mysql_query($query)or die(mysql_error());
$row mysql_fetch_assoc($sql);

$name $row['name'];
$sex $row['sex'];
$country $row['country'];
$sity $row['sity'];

Спустя 52 минуты, 32 секунды (14.03.2009 - 14:55) twin написал(а):
Индексов таперь два. Один главный, второй - индекс модуля регалки. Она теперь автономным блоком сделана. В главном индексе подключен второй индекс. Так мы будем подключать все модули, их ведь будет много, как я понял. Сайт то ты затеяла недецкий. У каждого модуля - свой индекс. Так мы сможем легко и просто добавдлять новые или убирать не нужные модули.
defanse.php это файл защиты. Тот самый кордон. Его надо подключать первой строкой во все блоки, которые только для зареганных пользователей.
А в анкете надо же выводить все данные - имя, пол и так далее. Ты же сама инструкцию написала smile.gif Вот в registr.php есть изменения и в базе. С этим разберись пока.

Спустя 1 час, 41 минута, 57 секунд (14.03.2009 - 16:37) lira1 написал(а):
Значит мне все менять у себя?
И ошибки искать?

Спустя 4 минуты, 56 секунд (14.03.2009 - 16:42) twin написал(а):
Да, поставь мою версию и в ней поковыряйся пока. Вроде должна работать.

Спустя 3 часа, 7 минут, 17 секунд (14.03.2009 - 19:49) twin написал(а):
Ну вот, как обещал, выкроил пару минут. Вот зодиаки. В ru.php пропиши константы, вроде я ничего не напутал. Я в них плохо разбираюсь. Как говорится:
Я в гороскопы не верю. Потому что я близнец. А близнецы в гороскопы не верят. smile.gif Проверь. Это в файл functions/zodiac.php и подключи к анкете.
Свернутый текст
PHP
<?php
class Zodiac
{
    var 
$Num NULL;
    var 
$World = array(
    
=> RAM,
    
BULL,
    
TWINS,
    
CRAB,
    
LION,
    
VIRGIN,
    
BALANCE,
    
SCORPION,
    
ARCHER,
    
GOAT,
    
WATER,
    
FISH
    
);
    
    
    function 
NumZodiac($day,$month
    { 
        switch(
$day
        {  
        case 
$day >= 21 && $day <= 31 && $month == 1:  
         
$this->Num 1
         break; 
         case 
$day <= 20 && $month == 2
          
$this->Num 1
          break;    
        case 
$day >= 21 && $day <= 31 && $month == 2
         
$this->Num 2
         break; 
        case 
$day <= 20 && $month == 3:  
           
$this->Num 2
           break;      
        case 
$day >= 21 && $day <= 31 && $month == 3
         
$this->Num 3
         break; 
        case 
$day <= 20 && $month == 4
         
$this->Num 3
         break;   
        case 
$day <= 21 && $month == 5
         
$this->Num 4
         break; 
        case 
$day >= 21 && $day <= 31 && $month == 4:  
         
$this->Num 4
         break;   
        case 
$day >= 22 && $day <= 31 && $month == 5:  
         
$this->Num 5
         break; 
        case 
$day <= 21 && $month == 6:  
         
$this->Num 5
         break;  
        case 
$day >= 22 && $day <= 31 && $month == 6
         
$this->Num 6
         break; 
        case 
$day <= 23 && $month == 7
         
$this->Num 6
         break; 
        case 
$day <= 24 && $month == 8
         
$this->Num 7
         break; 
        case 
$day 23 && $day 32 && $month == 7
         
$this->Num 7
         break;   
        case 
$day >= 24 && $day <= 31 && $month == 8
         
$this->Num 8
         break; 
        case 
$day <= 23 && $month == 9
         
$this->Num 8
         break;   
        case 
$day >= 24 && $day <= 31 && $month == 9
         
$this->Num 9
         break; 
        case 
$day <= 23 && $month == 10
         
$this->Num 9
         break;   
        case 
$day >= 24 && $day <= 31 && $month == 10
         
$this->Num 10
         break; 
        case 
$day <= 22 && $month == 11
         
$this->Num 10
         break;  
        case 
$day >= 23 && $day <= 31 && $month == 11
         
$this->Num 11
         break; 
        case 
$day <= 21 && $month == 12
         
$this->Num 11
         break; 
        case 
$day >= 22 && $day <= 31 && $month == 12
         
$this->Num 12
         break; 
        case 
$day <= 20 && $month == 1
         
$this->Num 12
         break;   
        }
    }
    
    function 
ImgZodiac($sel false)
    {
        if(!
$sel)
        return 
$this->World[$this->Num];
        else
        return 
"<img src=\"images/zodiac/".$this->Num.".jpeg\" border=\"0\" />";
                
    }

}
А вызывать будем так (в файле ancet.php):

PHP
$query "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql mysql_query($query)or die(mysql_error());
$row mysql_fetch_assoc($sql);

$name $row['name'];
$sex $row['sex'];
$country $row['country'];
$sity $row['sity'];
$zod = new CreateZodiac();
$zod -> NumZodiac($row['day'],$row['month']);
# Если картинка - то TRUE, а если слово - FALSE
$zodiac -> ImgZodiac(TRUE);
Если ты месяца в базе прописала словами, то переделай на номера. Мы слова потом массивом подставим.


Спустя 2 часа, 2 минуты, 23 секунды (14.03.2009 - 21:51) lira1 написал(а):
Цитата
function ImgZodiac($sel = false)
{
if(!$sel)
return $this->World[$this->Num];
else
return "<img src=\"images/zodiac/".$this->Num.".jpeg\" border=\"0\" />";


Это разъясни пожалуйста, я поняла что это что то связанное с изображением?
И еще для пола тоже нужно картинки включить

Спустя 27 минут, 59 секунд (14.03.2009 - 22:19) twin написал(а):
Ну если мы при вызове метода ставим TRUE,
($zodiac -> ImgZodiac(TRUE))
то вернет тег <img> то есть картинку. А адрес будет такой, какой выбран зодиак. То есть тебе надо в каталоге images сделать еще один, zodiac и в него положить картинки со знаками. Назвать их номерами :
1.jpeg - телец
2.jpeg - близнец
и так далее. Тогда выдаст эту картинку. А если поставить FALSE, то вернет константу из массива $World. Вот её надо прописать в ru.php
А для пола проще, их два всего. Я попозже сделаю. Остальное все понятно?

Спустя 1 минута, 34 секунды (14.03.2009 - 22:21) lira1 написал(а):
Как он узнает какой знак под
1, 2 и.т.д номером?
$this->Num = 1;

Спустя 6 минут, 14 секунд (14.03.2009 - 22:27) twin написал(а):
Мы сначала вызываем метод, который определяет этот номер:
PHP
$zod -> NumZodiac($row['day'],$row['month']);

а потом вытаскиваем нужную картинку (я кстати ошибся):
PHP
$zodiac $zod -> ImgZodiac(TRUE);


Спустя 2 минуты, 8 секунд (14.03.2009 - 22:29) lira1 написал(а):
а откуда метод номер достает?

Спустя 4 минуты, 42 секунды (14.03.2009 - 22:34) lira1 написал(а):
Может не так вопрос задаю
case $day >= 21 && $day <= 31 && $month == 1:
$this->Num = 1;
break;
case $day <= 20 && $month == 2:
$this->Num = 1;
break;
case $day >= 21 && $day <= 31 && $month == 2:
$this->Num = 2;

$this->Num = 2;
А под номер 1 знак Водолей, откуда он понимает то это?

Спустя 8 минут, 36 секунд (14.03.2009 - 22:42) twin написал(а):
Метод, это просто функция внутри класса. Когда мы делаем экземпляр класса, то в нем можно все менять, он просто в память записан и ждет указаний. Вот мы создали экземпляр класса:
PHP
$zod = new CreateZodiac();

Теперь в переменной $zod находится код, который под скрытым текстом у меня выше, то есть класс. Потом мы управляем этой программой, вызывая её функции:
PHP
$zod -> NumZodiac($row['day'],$row['month']);
То есть мы передали в функцию NumZodiac() этого зкземпляра данные из базы. Функция обработала их и изменила значение внутриклассовой переменной $this->Num Теперь мы запускаем вторую функцию класса:
PHP
$zodiac = $zod -> ImgZodiac(TRUE);
и она, в зависимости от того, что в неё передали
PHP
function ImgZodiac($sel = false)
{
if(!
$sel)

(! - это инверсия, то есть наоборот, нет переменной) выдает результат. Если нет переменной, то есть фальсе, то выдаст элемент массива, который прописан выше, по номеру, который уже определен:
PHP
return $this->World[$this->Num];

а если труе, то картинку:
PHP
else
return "<img src=\"images/zodiac/".$this->Num.".jpeg\" border=\"0\" />";
с таким же номером в адресе.

ЗЫ А под номером 1 всегда вроде был телец...

Спустя 2 минуты, 26 секунд (14.03.2009 - 22:45) twin написал(а):
Или тебе сама функция не понятна?

Спустя 3 минуты, 38 секунд (14.03.2009 - 22:49) lira1 написал(а):
Функция

case $day >= 21 && $day <= 31 && $month == 1:
$this->Num = 1;
break;
case $day <= 20 && $month == 2:
$this->Num = 1;

это я так понимаю
с 21 января по 20 февраля это Водолей

Но где это прописано то
Если тут
1 => RAM,
BULL,
TWINS,
CRAB,
LION,

То первый я так понимаю Овен, потом Телец...

Спустя 3 минуты, 22 секунды (14.03.2009 - 22:52) twin написал(а):
Ну да... Я же говорю - я в гороскопах мертвый. Проверяй сама.

Спустя 4 минуты, 37 секунд (14.03.2009 - 22:57) twin написал(а):
И еще мне надо понять алгоритм вычисления рейтингов. От чего зависит, на каком месте эта анкета? Ты можешь сама придумать, свой алгоритм или ихний расписать, мне разницы нет, все равно с нуля делать.

Спустя 25 минут, 15 секунд (14.03.2009 - 23:22) lira1 написал(а):
Ну алгоритм по моему у них такой, что новая размещается, твоя отпускается по городу.

Спустя 21 минута, 39 секунд (14.03.2009 - 23:43) lira1 написал(а):
Свернутый текст
[php]
Цитата
case $day > 23 && $day < 32 && $month == 7:
$this->Num = 7;
break;


вот тут наверное так

case $day >= 24 && $day <= 31 && $month == 7:
$this->Num = 7;
break;
?
[php]

Спустя 18 минут, 34 секунды (15.03.2009 - 00:02) twin написал(а):
Ну подгоняй сама, я второпях писал, запросто мог ошибиться. А что значит опускается по городу?

Спустя 8 минут, 16 секунд (15.03.2009 - 00:10) lira1 написал(а):
Зарегистрировалось 50 человек в твоем городе, ты на 51 месте, соответственно на 6 странице в поиске.

Спустя 1 минута, 50 секунд (15.03.2009 - 00:12) lira1 написал(а):
На loveplanet вот так пишут
# на сайте: 242,268 место,
# в городе: 18,999 место.

Ну я думаю это не к чему

Спустя 49 секунд (15.03.2009 - 00:13) twin написал(а):
Не понял логики... Или на последнем, или на первом, если 51... Почему на шестом?

Спустя 8 минут, 39 секунд (15.03.2009 - 00:22) lira1 написал(а):
Ну вот я зарегистрировалась на сайте, 1 в поиске, после меня еще 10 человек, и анкета соответственно вниз отпускается. Потом еще 10 я уже на 21 месте.
Зоходишь в поиск,
выбираешь искать девушку Екатеринбург
выходит результат 21 анкета, на страницу выводятся по 10
Первые показываются последние зарегистрированные, если к примеру из этих 20, 5 мужчин то моя анкета среди девушек будет на 16 месте.

А если 20 000 после меня зариг-лись, До меня ни кто и не дойдет
Некоторые каждый день регистрируются, чтоб анкета на первых позициях была

Спустя 31 минута, 56 секунд (15.03.2009 - 00:53) twin написал(а):
Цитата
До меня ни кто и не дойдет
Да, это серьёзный аргумент. Как говориться - хочешь выиграть в казино, стань его владельцем. smile.gif Ясно теперь. Ну и пусть регаются, вот они на мамбе 10 000 000 и нарегали, а мож натурально 300 человек всего biggrin.gif . Ладно, что у нас дальше по плану? Ты проверила, работает версия? Щас сделаем пол картинкой и надо возраст как то вычислить. Еще есть идеи? Ты придумывай, чтоб мы мамбу обошли на повороте. biggrin.gif

Спустя 43 минуты, 26 секунд (15.03.2009 - 01:37) twin написал(а):
Вот тебе функция вычисления возраста. Засунь её в default.php, она нам может на других страницах пригодиться.
PHP
function find_age($year$month$day
{
$date $year."-".$month."-".$day;
$age date("Y"strtotime("now")) - date("Y"strtotime($date)); 
if(
date("n"strtotime("now")) < date("n"strtotime($date))) 
$age--; 

if(
date("n"strtotime("now")) === date("n"strtotime($date))) 
    if(
date("j"strtotime("now")) < date("j"strtotime($date)))
    
$age--; 
return 
$age;
}

Вот это добавь в ancet.php

PHP
$age find_age($row['year'],$row['month'],$row['day']);
$sex "<img src=\"images/".$row['sex'].".jpeg\" border=\"0\" />";

Ну и в шаблон анкеты соответственно.
Теперь смотри. В базе на поля month и day поставь атрибут UNSIGNED ZEROFILL, что бы они отражались в виде 01, 02, а не 1, 2. В поле sex вместо м и ж smile.gif поставь m и w. А в каталог images соответственно картинки с такими названиями. Я не проверяю, мне некогда. Ты уж сама внимательно смотри, что где не так.


Спустя 8 часов, 16 минут, 41 секунда (15.03.2009 - 09:54) lira1 написал(а):
Цитата
атрибут UNSIGNED ZEROFILL,

Не ставится

syntax to use near 'UNSIGNED ZEROFILL DEFAULT NULL' at line 1



Спустя 1 час, 40 минут, 43 секунды (15.03.2009 - 11:34) twin написал(а):
Вот в SQL сунь это:
SQL
ALTER TABLE `strana_user` CHANGE `day` `day` INT( 2 ) UNSIGNED ZEROFILL DEFAULT NULL ,
CHANGE `month` `month` INT( 2 ) UNSIGNED ZEROFILL DEFAULT NULL

Только сначала таблицу очисти.

Спустя 2 часа, 35 минут, 45 секунд (15.03.2009 - 14:10) lira1 написал(а):
В таблице поменяла.
а хостинг залила, но ничего не работает.
Нажимаешь Регистрация а он переходит ?page=active&id=0 sad.gif

Спустя 2 часа, 2 минуты, 55 секунд (15.03.2009 - 16:13) twin написал(а):
Значит либо не все залила, либо что то исправляля. Я сделал ЧПУ и все ссылки и редирикты теперь делаются по другому. Посмотри в моей версии как. У меня же работает smile.gif

Спустя 29 минут, 48 секунд (15.03.2009 - 16:43) lira1 написал(а):
Ну незнаю, у меня и твоя не работает. После регистрации пишет Unknown column 'country' in 'field list'. А войти вообще белый лист

Спустя 28 минут, 56 секунд (15.03.2009 - 17:12) twin написал(а):
Без паники. Unknown column 'country' in 'field list'. обозначает, что в таблице нет поля 'country'. Надо в этом запросе искать ошибку. Пишет аяксом? Дай ссылку на свой вариант

Спустя 9 минут, 8 секунд (15.03.2009 - 17:21) lira1 написал(а):

Спустя 37 минут, 6 секунд (15.03.2009 - 17:58) twin написал(а):
Згначит вот:
PHP
header("location: ".DOMEN."/registr/active/new/".$id);
Это последний редирикт в registr.php У тебя щас старый стоит. И .htaccess обязательно мой поставь, в нем Rewrite
Вот полностью registr.php
Свернутый текст
PHP
<?php
if(isset($_SESSION['pusk']))
{

$query "SELECT `name` FROM `".PREFIX."country` WHERE `country_id`='".(int)$_POST['country_id']."'";
$res mysql_query($query);
$country mysql_result($res,0,0);

$query "SELECT `name` FROM `".PREFIX."city` WHERE `city_id`='".(int)$_POST['city_id']."'";
$res mysql_query($query);
$sity mysql_result($res,0,0);

$insert "INSERT INTO `strana_user` 
( `id` , `date` , `login` , `password` , 
`email` , `sex` , `name` , `day` , 
`month` , `year`,`country` , `sity`,
`code`, `active`, `pagename` ) 
VALUES (
'', 
NOW( ) ,
'"
.$login."',
'"
.$password."',
'"
.$email."', 
'"
.$sex."', 
'"
.$name."', 
'"
.$day."', 
'"
.$month."', 
'"
.$year."',
'"
.$country."',
'"
.$sity."',
'',
'',
'"
.encodeurl($login)."'
)"
;
# Вот запрос, который потерялся
$sql mysql_query($insert)or die(mysql_error());
# Получаем id новой записи
$id mysql_insert_id();
# Вот тут делаем ключ, стладывая id и случайную строку. Для форса - md5()
$code md5($id.rand_str());
# Вот второй запрос, который добавит ключ в базу
mysql_query("UPDATE `".PREFIX."user` SET `code`='".$code."' WHERE `id`='".$id."'");
# Вынаем все русские буквы в константы
$info IINFO_FOR."<b>".DOMEN."</b><br>".IINFO_ACT."
    <br><a href='"
.DOMEN."/registr/active/".$code."'>".IINFO_LINK."
    </a> <br>"
.INFO_LAST."<b>".$code."</b>"
# Отправляем письмо    
$mail = new Create_Mail();
$mail -> TypeHTML(true);
$mail -> HeaderMail(false);
$mail -> ToMail($email);
$mail -> SubMail(ACTIVE);
if(
$mail -> SendMail($info))    
# И поехали на страницу с кодом активации.
header("location: ".DOMEN."/registr/active/new/".$id);
}

Спустя 42 минуты, 21 секунда (15.03.2009 - 18:40) lira1 написал(а):
вот сейчас работает. Когда вводишь код активации, я так поняла, что в таблице в active должно ставится "1", но она не ставится. а в остальном все ок

Спустя 12 минут, 7 секунд (15.03.2009 - 18:52) twin написал(а):
У тебя что то с письмом. Мне на почту пришла не та ссылка, которая в моём блоке стоит. и почему то нет констант. но это наверное мой ваоиант, а я не успел их сделать. Проверь еще раз registr.php Или покажи.

Спустя 6 минут, 49 секунд (15.03.2009 - 18:59) lira1 написал(а):
registr у меня полностью твой

Вот active
Свернутый текст
PHP
<?php

if(isset($_GET['id']) && isset($_SESSION['pusk']))
{
unset(
$_SESSION['pusk']);

$query "SELECT `email`, `name` FROM `".PREFIX."user` WHERE `id`='".(int)$_GET['id']."'";
$sql mysql_query($query)or die(mysql_error());
$row mysql_fetch_assoc($sql);
$email $row['email'];
$name HELLO.$row['name'];
}
if(isset(
$_POST['Submit'])) 
{
$code = isset($_POST['code'])?$_POST['code']:NULL;
mysql_query("UPDATE `".PREFIX."user` SET `active`='1'
    WHERE `code`='"
.magic_off($code)."'")   
   or die(
mysql_error()); 
    if(isset(
$_POST['autologin']))
    
setcookie('code',$codetime()+3600*24*30*3,"/");

$query "SELECT `login`, `pagename` FROM `".PREFIX."user` WHERE  `code`='".magic_off($code)."'";
$sql mysql_query($query)or die(mysql_error());    
    if(
$sql)
    {        
    
$_SESSION['login'] = mysql_result($sql,0,'login');
    
$_SESSION['pagename'] = mysql_result($sql,0,'pagename'); 
    
header("location: ".DOMEN."/my/".$_SESSION['pagename']);
    exit();
    }
}

$code = isset($_GET['code'])?$_GET['code']:NULL;


А вот константы
Свернутый текст
PHP
<?php
define
('NO_CONNECT','Нет соединения с сервером баз данных');
define('NO_DB','Не удалось выбрать базу данных');
define("NO_LOGIN","Нет логина");
define("DUBLE_LOGIN","К сожалению такой логин уже зарегистрирован");
define("NO_PASSWORD","Нет пароля");
define("NO_EMAIL","Не указан email");
define("NO_SEX","Не выбран пол");
define("NO_NAME","Нет имени");
define("NO_DAY","Не выбрана дата рождения");
define("NO_MONTH","Не выбран месяц рождения");
define("NO_YEAR","Не выбран год рождения");
define("NO_KODE","Нет кода");
define("NO_FIND","Не выбрано кого вы ищете");
define("NO_PASSWORD","Нет пароля");
define("NOT_PASSWORD","Пароль меньше 7 символов");
define("DIFER_PASSWORD","Пароли не совпадают");
define("NO_EMAIL","Не указан email");
define("INVALID_EMAIL","E-mail введен некорректно");
define("NO_COYNTRY","Не выбрана страна");
define("NO_REGION","Не выбран регион");
define("NO_CITY","Не выбран город");
define("NO_RULE","Вы не согласны с нашими правилами?");
define("IINFO_FOR","С Вашего электронного почтового адреса поступила заявка регистрации на сайте ");
define("IINFO_ACT","Для активации аккуанта пройдите");
define("IINFO_LINK","по этой ссылке");
define("INFO_LAST","или введите в поле активации этот код: ");
define("ACTIVE","Активация аккуанта");
define("HELLO","Привет, ");
define("RAM","Овен");  
define("BULL","Телец");  
define("TWINS","Близнецы"); 
define("CRAB","Рак"); 
define("LION","Лев"); 
define("VIRGIN","Дева"); 
define("BALANCE","Весы");  
define("SCORPION","Скорпион");  
define("ARCHER","Стрелец");    
define("GOAT","Козерог");    
define("WATER","Водолей");    
define("FISH","Рыба");    
  

Спустя 5 минут, 32 секунды (15.03.2009 - 19:05) twin написал(а):
Ничего не понимаю. Упакуй все в архив и давай сюда. Бум думать.

Спустя 1 час, 26 минут, 38 секунд (15.03.2009 - 20:31) lira1 написал(а):
Это я видать что то стормазила, все проставляет и там и там

Спустя 2 минуты, 34 секунды (15.03.2009 - 20:34) lira1 написал(а):
У меня еще такая проблема. База на хостинге в кодировке 1251, если ставлю utf, абра кадабра, а в таблице все нормально по русски.
Если 1251, то интерфейс нормальный, а в таблице абра кадабра. Как исправить? dry.gif

Спустя 21 минута, 42 секунды (15.03.2009 - 20:56) twin написал(а):
Когда базу создаешь, нужно ставить сравнение. Вот так должно быть:
user posted image

Спустя 7 минут, 6 секунд (15.03.2009 - 21:03) lira1 написал(а):
Еще в ancet.php ошибка
$zod = new CreateZodiac();
а класс то у нас называется просто class Zodiac

И почему то не пол не зодиак в анкете не проставляет. Имя, город, страна, возраст выводит.

Спустя 5 минут, 44 секунды (15.03.2009 - 21:08) lira1 написал(а):
База у меня через личный кабинет создается, а там кодировку не проставишь

Спустя 9 минут, 50 секунд (15.03.2009 - 21:18) twin написал(а):
Ну а изменить можно? Попробуй в пыхадмине выбрать базу, потом вкладка "операции" и внизу сравнение.
Цитата
И почему то не пол не зодиак в анкете не проставляет.
А ты вывод в шаблон сделала? Вот это:
HTML
<?php echo $sex ?>

Спустя 4 минуты, 15 секунд (15.03.2009 - 21:23) lira1 написал(а):
Цитата
<?php echo $sex ?>

ну конечно сделала

Спустя 24 минуты, 13 секунд (15.03.2009 - 21:47) lira1 написал(а):
Как к возрасту выаодить лет года , ну к примеру 37 лет, 23 года? blink.gif

Спустя 4 минуты, 4 секунды (15.03.2009 - 21:51) twin написал(а):
Да, действительно... чё это я...
Ну а про трассировку забыла? В ancet.php выведи переменные:
PHP
$zod = new Zodiac();
$zod -> NumZodiac($row['day'],$row['month']);
$zodiac = $zod -> ImgZodiac(TRUE);
$age = find_age($row['year'],$row['month'],$row['day']);
$sex = "<img src=\"images/".$row['sex'].".jpeg\" border=\"0\" />";

echo $zodiac;
echo $sex;
а потом опускай их ниже, к шаблону. и ищи где потерялись.

А это исчё одна функция нужна. Я попозже напишу, очень занят до 20-го числа буду. Впринципе можешь и сама. Сделай свич, выдели последнюю цифру и выводи слово в зависимости от. По образу зодиака.

Спустя 1 час, 12 минут, 27 секунд (15.03.2009 - 23:03) lira1 написал(а):
Да разобралась уже
просто путь везде не правильно написан
"<img src=\"images/zodiac/

а надо "<img src=\"../images/zodiac/

и с полом так же

Спустя 5 минут, 12 секунд (15.03.2009 - 23:09) lira1 написал(а):
Цитата
Сделай свич, выдели последнюю цифру и выводи слово в зависимости от. По образу зодиака.


Покажи начало, плиз.
И как к картинки гороскопа еще и слово выводить?

Спустя 26 минут, 42 секунды (15.03.2009 - 23:35) twin написал(а):
Слово вывести очень просто:
PHP
$world_zodiac $zod -> ImgZodiac(FALSE);

А функция так примерно начинается:
PHP
function last_age($age)
{
$last substr($age,1);
switch(
$last)
{
case 
$last == 1:
return 
"год";
break;

case 
$last &&  $last  :
return 
"года";
break;

Спустя 14 часов, 3 минуты, 29 секунд (16.03.2009 - 13:39) lira1 написал(а):
Цитата
$world_zodiac = $zod -> ImgZodiac(FALSE);


А как чтоб вместе картинка и слово?

Спустя 21 минута, 39 секунд (16.03.2009 - 14:00) twin написал(а):
Так две переменные рядом поставь и всё. Или так:
PHP
$zodiac $zod -> ImgZodiac(TRUE)." (".$zod -> ImgZodiac(FALSE).")";

Спустя 6 часов, 15 минут, 49 секунд (16.03.2009 - 20:16) lira1 написал(а):
Пока не дошло как эту функцию сделать sad.gif

Спустя 44 минуты, 55 секунд (16.03.2009 - 21:01) twin написал(а):
Вот смотри. Тут мы выдергиваем последнюю цифру :
PHP
$last = substr($age,1);
закидываем её в свич:

PHP
switch($last)
{
и смотрим, что делать. Если заканчивается на 1, то есть 1, 21, 31, 41 - то год. Если на 2,3,4 - года, если на 5,6,7,8,9,0 - то лет. Но там есть казусы. 11 - заканчивается на 1 , но лет. По этому надо исключить:
PHP
case $last == 1 && $age !== 11:
ну и так пройтись по всем ньюансам.

Спустя 27 минут, 45 секунд (16.03.2009 - 21:29) Sylex написал(а):
прикольно... вот что происходит, стоит зарегистрироваться на форуме девушке smile.gif

А это мысль, ведь любой может представиться девушкой dry.gif wink.gif
biggrin.gif

Спустя 18 минут, 31 секунда (16.03.2009 - 21:47) twin написал(а):
Не, конечно приятно, что говорить. Но мне это не меньше чем ей надо. У меня тож меркантильный интерес имеется smile.gif Я попутно свои скрипты на прочность проверяю, на публике не схалявишь.

Спустя 1 час, 12 минут, 40 секунд (16.03.2009 - 23:00) lira1 написал(а):
Да вроде нет казусов. Регистрация с 18 лет

Разобралась, с этой функцией, все выводит нормально. прогресс biggrin.gif

Спустя 19 минут, 2 секунды (16.03.2009 - 23:19) lira1 написал(а):
Цитата
прикольно... вот что происходит, стоит зарегистрироваться на форуме девушке smile.gif


О!!! Что происходит??? Человек помогает другому человеку. Для вас это так дико?! dry.gif

Цитата
А это мысль, ведь любой может представиться девушкой dry.gif wink.gif

В чем сомнения?

Как говориться делай добро и оно вернется стократно умноженным! biggrin.gif
Ну или сомневайся всю жизнь.... biggrin.gif

Спустя 1 минута, 47 секунд (16.03.2009 - 23:21) twin написал(а):
Поздравляю. user posted image
Мы кстати забыли в регалке систему восстaновления пароля. Сделай страничку с полем для мыла. Может и модуль уже сама сможешь?

Спустя 4 минуты, 28 секунд (16.03.2009 - 23:25) lira1 написал(а):
Цитата
Может и модуль уже сама сможешь?

Думаю пока нет

Спустя 2 часа, 52 минуты, 27 секунд (17.03.2009 - 02:18) twin написал(а):
Вот, только не проверял. Не успеваю.
modules/registr/rebil.php
Свернутый текст
PHP
<?php
if(isset($_POST['email']) && isset($_POST['reb']))
{
$res = mysql_query("SELECT `code` FROM `".PREFIX."users`  
 WHERE `email`='"
.magic_off($_POST['email'])."' LIMIT 1"); 

    if
(mysql_num_rows($res) > 0)
    {
$code = mysql_result($res,0,0);
$info = INFO_REB."<b> www.".DOMEN."</b><br>".INFO_ERR."<br>".LINK_FOR.
<a href='"
.DOMEN."/registr/active/".$code."' >".LINK_END." <b>".$code."</b><br>".REBIL_END;

include(
"functions/mail.php");
$mail = new Create_Mail();
$mail -> TypeHTML(true);
$mail -> ToMail($_POST['email']);
$mail -> SubMail(SUBJECT_REBIL.DOMEN);
$mail -> BodyMail($info, NULL);
$mail -> HeaderMail(false);

$mail -> SendMail();

header("location: ".DOMEN."/registr/active");    
exit();
    }
}

ru.php
Свернутый текст
PHP
define("SUBJECT_REBIL","Восстановление пароля на сайте ");
define("INFO_REB","С Вашего электронного почтового адреса поступил запрос на восстановление пароля для сайта ");
define("INFO_ERR","Если это письмо попало к Вам случайно, просто удалите его.");
define("LINK_FOR","Для активации аккуанта пройдите по <br>");
define("LINK_END","этой ссылке</a> <br> или введите в поле активации этот код: ");
define("REBIL_END","Не забудьте изменить пароль в личном кабинете");

Спустя 7 минут, 20 секунд (17.03.2009 - 02:25) HardWoman написал(а):
Цитата
О!!! Что происходит??? Человек помогает другому человеку. Для вас это так дико?!


Да помогает не страшно. Топ полезный получается. Только пока tvin пишет за вас. Надеюсь, что пока.

Кстати к вам вопрос - как в таком режиме оседают какие то знания? Добавилось понимания? Много нового узнали?

Спустя 7 часов, 6 минут, 9 секунд (17.03.2009 - 09:31) lira1 написал(а):
Цитата

Кстати к вам вопрос - как в таком режиме оседают какие то знания? Добавилось понимания? Много нового узнали?


Прекрасно оседают. Очень много, учитывая, что раньше ничего не знала.

Спустя 1 час, 26 секунд (17.03.2009 - 10:32) lira1 написал(а):
Цитата
Вот, только не проверял. Не успеваю.
modules/registr/rebil.php


Создала этот файл, форму password.html

В enter.html добавила ссылку Забыли пароль?
<a href="<?php echo DOMEN ?>/registr/rebil">

В индексе новый блок
case "rebil":
include("rebil.php");
include("tpl/tpl_registr/password.html");
break;


Что не так?

Спустя 8 минут, 2 секунды (17.03.2009 - 10:40) twin написал(а):
В каком индексе? Нужно в индексе регалки. Если там - то просто великолепно. Но работать не будет. Потому что нужно прописать ссылку в мод реврайт. Открой .htaccess и допиши туда строчку:
Код
RewriteRule ^registr/rebil$ index.php?page=registr&aut=rebil
Тут я думаю и объяснять особо ничего не надо. Все очень наглядно получилось smile.gif

Спустя 32 минуты, 4 секунды (17.03.2009 - 11:12) lira1 написал(а):
Цитата
В каком индексе? Нужно в индексе регалки.


Конечно в регалке.

Щас форма выходит, только вот при нажатии отправить ниче не происходит

if(isset($_POST['email']) && isset($_POST['reb']))

Вот это разъясни пожалуйста

Спустя 1 минута, 59 секунд (17.03.2009 - 11:14) lira1 написал(а):
И вообще как о не понятно, зачем на активация отправлять. Ведь нужно новый пароль создать

Спустя 3 минуты, 5 секунд (17.03.2009 - 11:17) twin написал(а):
В форме текстовое поле должно называться email а кнопка reb. Тогда, если заполнено поле и нажата кнопка, включится блок. Проверку мыла тут делать не нужно, мускул сам проверит.
Пароль новый мы создать не можем, это собственность юзера. Только он может распоряжаться своим аккуантом. А вот пустить в личный кабинет по ссылке из письма можем. Там он пароль сам и поменяет.

Спустя 6 минут, 7 секунд (17.03.2009 - 11:23) lira1 написал(а):
Цитата
называться email а кнопка reb.

Я так и сделала

Спустя 7 минут, 13 секунд (17.03.2009 - 11:30) lira1 написал(а):
И имя формы reb прописала, из за этого наверно не шло.

Сейчас он пишет
Call to undefined method Create_Mail::BodyMail() in F:\home\test1.ru\www\strana\modules\registr\rebil.php on line 18

Спустя 15 минут, 30 секунд (17.03.2009 - 11:46) twin написал(а):
Маленько не то я тебе написал, не из того класса вызов. Вот так надо:

PHP
$mail = new Create_Mail();
$mail -> TypeHTML(true);
$mail -> ToMail($_POST['email']);
$mail -> SubMail(SUBJECT_REBIL.DOMEN);
$mail -> HeaderMail(false);

$mail -> SendMail($info);

Спустя 1 минута, 51 секунда (17.03.2009 - 11:48) lira1 написал(а):
Да я уже поняла

Сейчас такая проблема
http://test1.ru/strana/regist/active/
не находит

Хотя в htacces прописано
RewriteRule ^registr/active$ index.php?page=registr&aut=active

Спустя 9 минут, 57 секунд (17.03.2009 - 11:57) twin написал(а):
r нехватает http://test1.ru/strana/regist/active/
я в листинге исправил, чтоб другие не мучались. Посмотри.

Спустя 2 минуты, 17 секунд (17.03.2009 - 12:00) lira1 написал(а):
biggrin.gif

Спустя 1 минута, 50 секунд (17.03.2009 - 12:02) Sylex написал(а):
Цитата ("lira1")
В чем сомнения?

да нет сомнений smile.gif

Цитата ("lira1")
О!!! Что происходит??? Человек помогает другому человеку. Для вас это так дико?! dry.gif


Нет, не дико, я ж ничего против не имею smile.gif. Просто удивительно то, что ТАК тема..... до 38 страниц НИКОГДА не доходила!! wink.gif По-крайней мере так быстро - точно! smile.gif

Приятного взаимодействия tongue.gif
biggrin.gif

Спустя 10 часов, 1 минута, 39 секунд (17.03.2009 - 22:03) lira1 написал(а):
Переделала немного форму регистрации и валидацию.
Вот архив

Теперь значит такой вопрос. Как несколько вариантов выбрать, мы как то в начале это обсуждали.
Что к примеру Познакомлюсь
С парнем
С девушкой

Делать отдельные поля?

Спустя 7 минут, 47 секунд (17.03.2009 - 22:11) twin написал(а):
Я не совсем понял... То есть обе галочки можно ставить?
К сожалению поставить пока не могу, не дома. Если можешь, залей на хостинг, я гляну в онлайне.

Спустя 1 минута, 20 секунд (17.03.2009 - 22:12) lira1 написал(а):
Я не совсем понял... То есть обе галочки можно ставить?
Да

И с анкетой.
Как сделать так, что редактируешь анкету ...
выбираешь к примеру.
Семейное положение
Не замужем

Нажимаешь сохранить, переход на др. страницу
И там форма но только уже с выводом
Семейное положение
Не замужем

Не доходит sad.gif

Щас залью

Спустя 4 минуты, 7 секунд (17.03.2009 - 22:16) lira1 написал(а):

Спустя 31 минута, 26 секунд (17.03.2009 - 22:48) lira1 написал(а):
Ни че не понимаю. На локальном показывает подпись к возрасту "лет", а а хостинге нет. В чем может быть проблема?

Спустя 11 минут, 29 секунд (17.03.2009 - 22:59) twin написал(а):
Цитата
Любые русские или латинские симоволы и цифры.
это зря наверно. Там все можно.
Потом, очень зря ты сбила в кучу вывод ошибок. если надо в куче, то можно было сделать гораздо проще. Я специально делил их, что бы вывести рядом с тем полем, где косяк. Тут надо просто сверстать нормально, чтоб не прыгало.
В транслите не работает mb_strtollover().
А на счет галочек - вот для этого и нужно проектировать сначала, создавать архитектуру. Что бы потом все не переделывать. Если это надо в регалке, то нужно менять таблицу в базе. А если в анкете, то значит поменяй радиокнопки на галочки. У каждой своё имя. Для каждой поле в таблице. Инициализация и пр.

Спустя 5 минут, 48 секунд (17.03.2009 - 23:05) twin написал(а):
Нет там проблемы. Просто ты функцию не протестировала. У тебя девятка и пятерка выпали из списка.

PHP
case $last >= 5 &&  $last  =< 9 :
return LET;
break;


PHP
$trans = str_replace($key,$val,mb_strtolower($str,"utf-8"));

Спустя 7 минут, 38 секунд (17.03.2009 - 23:13) sergeiss написал(а):
Цитата (Sylex @ 17.03.2009 - 12:02)
Нет, не дико, я ж ничего против не имею smile.gif. Просто удивительно то, что ТАК тема..... до 38 страниц НИКОГДА не доходила!! wink.gif

Да нехай люди поразвлекаются smile.gif Какая-нибудь польза будет по-любому.

Спустя 20 минут, 13 секунд (17.03.2009 - 23:33) twin написал(а):
Цитата
Какая-нибудь польза будет по-любому.
А то! Щас сварганим сайт и увеличим население страны ровно в два раза. А то всё - демографический спа-а-а-д... smile.gif

Спустя 39 минут, 50 секунд (18.03.2009 - 00:13) lira1 написал(а):
Цитата
Любые русские или латинские симоволы и цифры.
это зря наверно. Там все можно.


Ну люди то не знают, обычно везде английские

Цитата
Потом, очень зря ты сбила в кучу вывод ошибок.

Это я временно, понятно что это ужасно выглядит. Потом их расставлю.


Спустя 1 минута, 33 секунды (18.03.2009 - 00:14) lira1 написал(а):
Цитата
Если это надо в регалке, то нужно менять таблицу в базе.

Зачем менять ? Добавить нескольео полей.

На мамбе столько этих галочек, неужели для каждой отдельное поле создают?

Спустя 7 минут, 52 секунды (18.03.2009 - 00:22) lira1 написал(а):
Цитата
case $last >= 5 &&$last=< 9 :
return LET;
break;


case $last >= 5 && $last <= 9 :
return LET;
break;

Спустя 11 минут, 26 секунд (18.03.2009 - 00:34) twin написал(а):
PHP
На мамбе столько этих галочек, неужели для каждой отдельное поле создают?
Обязательно. Это же отдельные данные.
PHP
Зачем менять ? Добавить несколько полей.
Ну я имел ввиду изменять.

Спустя 3 минуты, 47 секунд (18.03.2009 - 00:37) twin написал(а):
Цитата
Ну люди то не знают, обычно везде английские
напиши просто - любые.Русских букв как таковых не бывает, это кирилица. А из надписи можно понять что только буквы и цифры

Спустя 12 минут, 52 секунды (18.03.2009 - 00:50) lira1 написал(а):
Чебоксы с каким значениями в таблицу заносить?

Спустя 14 минут, 29 секунд (18.03.2009 - 01:05) lira1 написал(а):
ошибка sad.gif
Fatal error: Call to undefined function mb_strtolower() in F:\home\test1.ru\www\strana\functions\translate.php on line 42

Спустя 4 минуты, 23 секунды (18.03.2009 - 01:09) twin написал(а):
Ойой. Видно нет у тебя mb на хостинге... сделай так:
PHP
<?
phpinfo();
залей на хостинг и дай ссылку.

Спустя 7 минут, 12 секунд (18.03.2009 - 01:16) lira1 написал(а):

Спустя 1 час, 36 минут (18.03.2009 - 02:52) twin написал(а):
Не соображу пока... Библиотека включена, а функцию не видит... Завтра подумаю. Значения у чекбоксов лучше цифровые. Вообще, если есть возможность использовать цифры, то лучше их. Хлопот гораздо меньше, чем со строками.

Спустя 4 часа, 53 минуты, 10 секунд (18.03.2009 - 07:46) lira1 написал(а):
На мамбе чебоксы вот так прописаны
HTML
<input name="lookfor[m]" id="lookfor_m" type="checkbox"> <label for="lookfor_m">с Парнем</label><br>

<input name="lookfor[f]" id="lookfor_f" type="checkbox"> <label for="lookfor_f">с Девушкой</label><br>

Разве тут не одна переменная с разными значениями?


А в анкете у них так
HTML
<td><input id="age16-20" name="age[]" value="16-20" type="checkbox"></td>
<td><label for="age16-20">16-20 лет</label></td>
</tr>

<tr>
<td><input id="age21-25" name="age[]" value="21-25" type="checkbox"></td>
<td><label for="age21-25">21-25 лет</label></td>
</tr>

<tr>
<td><input id="age26-30" name="age[]" value="26-30" type="checkbox"></td>
<td><label for="age26-30">26-30 лет</label></td>
</tr>

<tr>
<td><input id="age31-35" name="age[]" value="31-35" type="checkbox"></td>
<td><label for="age31-35">31-35 лет</label></td>
</tr>



Спустя 30 минут, 10 секунд (18.03.2009 - 08:16) lira1 написал(а):
И как чебоксы в валидатор прописывать?

Спустя 1 час, 2 минуты, 40 секунд (18.03.2009 - 09:18) twin написал(а):
На мамбе имена чекбоксов передаются массивом. Вот это: lookfor не имя, а коробочка с именами. А имя - это: [m]. Во втором случае массив просто неассоциативный, то есть по номерам. Вот почитай тут, недавно очень классно описали массив. То есть полей все равно по штуке на чекбокс. Массив в аякс прописать крайне сложно, да и ни к чему. Делай просто разные имена и всё. И резве это обязательные поля? Почему же мы раньше валидацию не сделали...
И кстати, с возрастом, не проще сделать просто два списка: "от" и "до"? Только что средний возраст исключить не получиться. То есть педофил и герондофил в одном лице будет оскорблен и обижен smile.gif
А с транслитом вот что. Сделай так:
PHP
<?
echo mb_strtolower("АБВГДЕЁЖЗ","utf-8");
залей и посмотри что будет. Если будет ошибка, стучи в суппорт хостинга. Пусть разбираются.

Спустя 1 час, 14 минут, 19 секунд (18.03.2009 - 10:33) lira1 написал(а):
Translate работает сегодня)

Регистрацию вернула к первоначальному виду.

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


Спустя 26 минут, 45 секунд (18.03.2009 - 10:59) twin написал(а):
Можно конечно и попроще, без аякса. Только будет как то недоделано... Половина так, половина по другому. Давай уж все под один стандарт. Я вот только смысла уловить не могу, почему оно должно быть обязательным... Проще по моему сделать условие по умолчанию. То есть если поле не заполнено, значит поставить туда принудительно "не имеет значения". Тогда вообще мудрить ничего не надо.

Спустя 4 часа, 18 минут, 37 секунд (18.03.2009 - 15:18) lira1 написал(а):
Цитата
Проще по моему сделать условие по умолчанию


Да, проще. А как это сделать?

Спустя 3 минуты, 59 секунд (18.03.2009 - 15:22) twin написал(а):
Ну сделай пока инициализацию переменных формы анкеты. Кстати, а что это за поле:
PHP
`sex1-2`
?
А вообще погодь. Щас проще сделаем, без инициализации.

Спустя 14 минут, 34 секунды (18.03.2009 - 15:37) lira1 написал(а):
Цитата
`sex1-2`


Тут я уже давно переделала. Ты последний архив посмотри, а то у тебя по моему там все по старому

Спустя 7 минут, 24 секунды (18.03.2009 - 15:44) twin написал(а):
Попробуй так (ancet.php):
PHP
<?php
if(isset($_POST['ok']) && $_SESSION['login'])
{
    foreach(
$_POST as $fileds => $value)
        if(
$fileds !== "ok" && $value)
        
$set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

    
$insert "INSERT INTO `".PREFIX."ancet` SET ".implode(", ",$set);
    
$sql mysql_query($insert);
}


$query "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql mysql_query($query)or die(mysql_error());
.
.
.
По идее так должно все из формы прописаться. Только там данные не только из формы ведь... Логин, возраст, что то еще наверное. Пока пробуй и напиши чего не хатает.

Спустя 1 час, 51 минута, 57 секунд (18.03.2009 - 17:36) lira1 написал(а):
Цитата
Я вот только смысла уловить не могу, почему оно должно быть обязательным... Проще по моему сделать условие по умолчанию.


Как сделать условие обязательным?

Спустя 23 минуты, 23 секунды (18.03.2009 - 17:59) twin написал(а):
Щас сделаем. Ты эту штуку проверила? Как называется это поле?

Спустя 38 минут, 50 секунд (18.03.2009 - 18:38) lira1 написал(а):
поле findnot

Я еще анкету доделываю, пока не проверила

Спустя 1 час, 51 минута, 34 секунды (18.03.2009 - 20:30) lira1 написал(а):
Цитата
$query = "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql = mysql_query($query)or die(mysql_error());
.
.
.


Зачем три точки в конце?

Не работает, все не так загружает, почти везде ноль пишет.
Радио нормально прописывает
А где текст нужно ввести \r\n

Может я в таблице не правильно что то сделала?
Свернутый текст

SQL
CREATE TABLE `strana_ancet` (
`id` int(11) NOT NULL auto_increment,
`id_user` int(11) NOT NULL,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`tel` varchar(50) NOT NULL,
`icq` varchar(50) NOT NULL,
`obomne` varchar(250) default NULL,
`findnot` varchar(50) default NULL,
`findw` varchar(50) default NULL,
`findm` varchar(50) default NULL,
`findww` varchar(50) default NULL,
`findmw` varchar(50) default NULL,
`findmm` varchar(50) default NULL,
`findageot` enum('0','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') default NULL,
`findagedo` enum('0','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') default NULL,
`regsex` varchar(50) NOT NULL,
`sexone` varchar(50) default NULL,
`groupsex` varchar(50) NOT NULL,
`virtsex` varchar(50) NOT NULL,
`predsexmoney` varchar(50) NOT NULL,
`findsexmoney` varchar(50) NOT NULL,
`findlook` varchar(250) NOT NULL,
`brak` enum('brakmarried','braksingle','braknotanswer') NOT NULL,
`children` enum('childrenyes','childrennot','childrennotanswer') NOT NULL,
`growth` varchar(50) NOT NULL,
`weight` varchar(50) NOT NULL,
`dohod` enum('dohodnotjob','dohodpoorlymoney','dohodaveragemoney','dohodmuchmoney') NOT NULL,
`orientation` enum('orientationtrad','orientationnot') NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

Спустя 2 часа, 32 минуты, 2 секунды (18.03.2009 - 23:02) twin написал(а):
Точки это значит там твой код должен продолжаться. smile.gif Что бы все не писать сюда. Эта штука будет работать только при условии, что поля в базе и имена полей в форме совпадают. Так же как и их количество. Вернее в форме не должно быть лишних элементов. Только кнопку "ok" можно использовать.

Спустя 10 часов, 11 минут, 35 секунд (19.03.2009 - 09:13) lira1 написал(а):
Вообще ничего не заносит, форму я на сто раз проверила

код ancet.php
Свернутый текст
PHP
<?php
if(isset($_POST['ok']) && $_SESSION['login'])
{
    foreach(
$_POST as $fileds => $value)
        if(
$fileds !== "ok" && $value)
        
$set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

    
$insert "INSERT INTO `".PREFIX."ancet` SET ".implode(", ",$set);
    
$sql mysql_query($insert);
}


$query "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql mysql_query($query)or die(mysql_error());

$row mysql_fetch_assoc($sql);

$name $row['name'];
$sex $row['sex'];
$country $row['country'];
$sity $row['sity'];
$zod = new Zodiac();
$zod -> NumZodiac($row['day'],$row['month']);
# Если картинка - то TRUE, а если слово - FALSE
$zodiac $zod -> ImgZodiac(TRUE)." ".$zod -> ImgZodiac(FALSE)." ";
$age find_age($row['year'],$row['month'],$row['day']);
$sex "<img src=\"../images/".$row['sex'].".gif\" border=\"0\" />";
$last last_age($age);



На хостинг тоже залила
Уже незнаю что делать sad.gif

Спустя 55 минут, 42 секунды (19.03.2009 - 10:09) twin написал(а):
Вот смотри. Надо учиться искать ошибки. Самый простой и действенный метод - трассировка. Я сто раз писал. Нужно сделать видимыми все проблемные процессы. Допустим здесь так:
в ancet.php добавь это:
PHP
print_r($_POST);

а в ancet.html прямо первой строчкой нарисуй все поля из таблицы. И сравнивай:
HTML
<pre> `id_user`
`date`
`tel`
`icq`
`obomne`
`findnot`
`findw`
`findm`
`findww`
`findmw`
`findmm`
`findageot`
`findagedo`
`regsex`
`sexone`
`groupsex`
`virtsex`
`predsexmoney`
`findsexmoney`
`findlook`
`brak`
`children`
`growth`
`weight`
`dohod`
`orientation` </pre>

Спустя 47 минут, 3 секунды (19.03.2009 - 10:56) lira1 написал(а):
Спасибо, запомню.

Сейчас вот с этим осталось разобраться
Цитата
Цитата
Я вот только смысла уловить не могу, почему оно должно быть обязательным... Проще по моему сделать условие по умолчанию.


Как сделать условие обязательным?


И как
id_user заносить?
чтоб можно было редактировать анкету. А то он 0 заносит



Спустя 22 минуты, 1 секунда (19.03.2009 - 11:18) lira1 написал(а):
Как id user заносить догадалась

Вот эту строку добавила
$id = $row['id'];
mysql_query("UPDATE `".PREFIX."ancet` SET `id_user`='".$id."' WHERE `id`='".$id."'");

Правильно?

Вроде нормально заносит

Спустя 8 минут, 58 секунд (19.03.2009 - 11:27) twin написал(а):
Правильно, но не оптимально. Зачем нам еще один запрос, можно все сделать одним. id юзера можно достать при аунтификации и прописать в сессию. Вот так в файле defance.php:

PHP
<?
if(empty(
$_SESSION['login']))   
{  
    if
(isset($_COOKIE['code'])) 
    
{  
$res 
= mysql_query("SELECT `id`,`login` FROM `".PREFIX."users`   WHERE `hash`='".magic_off($_COOKIE['code'])."'")     
or die 
("Ошибка запроса №1 : " . mysql_error());   
    if
(mysql_num_rows($res) > 0)   
    $_SESSION
['login'] = mysql_result($res,0,'login');
    $_SESSION['id_user'] = mysql_result($res,0,'id');
          
    
} 
} 

if(empty($_SESSION['login']))   
{
header("location: ".DOMEN);
exit();
}
А в анкете подставить так:

PHP
if(isset($_POST['ok']))
{

$set[] = "`id_user`='".$_SESSION['id_user']."'";
.
.
.


А по умолчанию в базе прописывается DEFAULT. У тебя сейчас NULL стоит, а ты поставь то, что нужно. И при пустом поле в форме будет заноситься это значение.


PS и в файле enter.php сделай так же.

Спустя 4 минуты, 48 секунд (19.03.2009 - 11:32) lira1 написал(а):
Тут наверное так?

PHP
<?
if(empty(
$_SESSION['login']))   
{  
    if(isset(
$_COOKIE['code'])) 
    {  
$res mysql_query("SELECT `id`,`login` FROM `".PREFIX."user`   WHERE `code`='".magic_off($_COOKIE['code'])."'")     
or die (
"Ошибка запроса №1 : " mysql_error());   
    if(
mysql_num_rows($res) > 0)   
    
$_SESSION['login'] = mysql_result($res,0,'login');
    
$_SESSION['pagename'] = mysql_result($res,0,'pagename');      
    
$_SESSION['id_user'] = mysql_result($res,0,'id');
          
    } 


if(empty(
$_SESSION['login']))   
{
header("location: ".DOMEN);
exit();
}

Спустя 9 минут (19.03.2009 - 11:41) lira1 написал(а):
Так он id_user не заносит
И все время при редактировании делает новую строку
id 25
id 26

Спустя 3 минуты, 31 секунда (19.03.2009 - 11:44) twin написал(а):
Да впринципе нам пока не нужна переменная $_SESSION['pagename']. Потом достанем, если понадобится. Я что бы не забыть. Все он занесет, если ты выйдешь и снова зайдешь. Потому что в сессии у тебя пусто. А редактирование еще никто не делал. Это было создание новой анкеты smile.gif Конечно будет новая строчка. Сколько анкет - столько строчек.

Спустя 15 минут, 39 секунд (19.03.2009 - 12:00) lira1 написал(а):

Так сейчас задача вывести заполненную анкету.
Но чтоб выводились только те значения, которые заполнены.
Как это сделать?

Цитата
$_SESSION['pagename']

А это может оставить, не мешает ведь, а то потом забудем?

Спустя 31 минута, 13 секунд (19.03.2009 - 12:31) twin написал(а):
Цитата
А это может оставить, не мешает ведь, а то потом забудем?
Совершенно не верный подход. Я почему тебе написал про оптимизацию. Можно было и оставить. Правда там не совсем правильно было, но принцип верный. Так вот. Если тут что нибудь оставить, там рукой махнуть, здесь сделать попроще... То очень скоро хостер тебя нагонит с хостинга за перерасход ресурсов. Посчитай сама. На мамбе сейчас 10 000 000 пользователей. У тебя задача победить мамбу (иначе и браться не стоит). Так вот 10 000 000 переменных, даже по 1 байту уже.... ужос. Так что очень аккуратно надо.
Вывести заполненную анкету проще пареной репы. Пиши запрос SELECT * FROM ancet для id_user=$_SESSION['id_user'], вытаскивай все переменные и выводи на страницу. Там же поставим кнопоську или ссылку - редактировать.

Спустя 2 часа, 49 минут, 16 секунд (19.03.2009 - 15:21) lira1 написал(а):
Цитата
Вывести заполненную анкету проще пареной репы. Пиши запрос SELECT * FROM ancet для id_user=$_SESSION['id_user'], вытаскивай все переменные и выводи на страницу. Там же поставим кнопоську или ссылку - редактировать.


не понимаю


А как выводить чебоксы ?
PHP
$icq = $row['icq'];
$obomne = $row['obomne'];
$find = $row['findnot','findw','findm','findww','findmw','findmm'];
..


Так? 
или
PHP
$icq = $row['icq'];
$obomne = $row['obomne'];
$findnot = $row['findnot'];
$findw = $row['findw'];

И в ru  $findnot не имеет значения и .т.д
..


А как их вывести на страницу? Чтоб выходило только то что заполнено
К примеру
Чтоб не было так
Об о мне
пусто
Рост пусто

Чтоб Какие поля не заполнены, вообще не выходило их описание(рост, об о мне)

Так путанно написала... rolleyes.gif

Спустя 21 минута, 1 секунда (19.03.2009 - 15:42) twin написал(а):
Вот ты посмотри, что у тебя в базе записано, то и будет на экране.

Вот это вот:
PHP
$find $row['findnot','findw','findm','findww','findmw','findmm'];

называется забыл как. Ну в общем когда делаешь что то на интуитивном уровне методом тыка и подбора. А вовсе не анализа и знаний. Ты себе плохо представляешь, как выводятся данные из базы, а я ведь советовал тебе смотреть мануал, как только встретится что то незнакомое. Когда ты первый раз увидела функцию mysql_fetch_array() ну или mysql_fetch_assoc()то нужно было набрать в браузере http://ru2.php.net/mysql_fetch_array и внимательно почитать. А если что непонятно - спросить. А так ты будешь до скончания века подбирать варианты, их оооооооочень много.

Спустя 2 минуты, 53 секунды (19.03.2009 - 15:44) lira1 написал(а):
Это понимаю что не правильно.
Но там на английском все

Спустя 1 минута, 52 секунды (19.03.2009 - 15:46) twin написал(а):
Что бы небыло сопроводительных надписей, надо их в константы и выводить вместе со значениями, коли те имеются. Примерно так:
PHP
<?
$icq = ($row['icq'])?ICQ.$row['icq']:NULL;

Спустя 2 минуты, 28 секунд (19.03.2009 - 15:49) twin написал(а):
Цитата
Но там на английском все
Ничего не всё, там почти все, особенно самое нужное, на русском. И есть переключалка языков. Ты без этого мануала не научишься никогда.

Спустя 5 минут, 26 секунд (19.03.2009 - 15:54) lira1 написал(а):
То что на русском я читаю, но там я вообще почти ничего не понимаю sad.gif

Спустя 4 минуты, 3 секунды (19.03.2009 - 15:58) lira1 написал(а):
Ну вот сума сойти

как это понять?
Возвращает массив с обработанным рядом результата запроса, или FALSE, если рядов больше нет.
Свернутый текст


mysql_fetch_array() расширенная версия функции mysql_fetch_row(). В дополнении к хранению значений в массиве с численными индексами, функция возвращает значения в массиве с индексами по названию колонок.

Если несколько колонок в результате будут иметь одинаковые названия, последняя колонка будет возвращена. Чтобы получить доступ к первым, используйте численные индексы массива или алиасы в запросе. В случае алиасов используйте именно их -- вы не сможете использовать настоящие имена колонок, как например не сможете использовать 'field' в нижеописанном примере.

Пример #1 Запрос с дублирующимися именами колонок

select table1.field as foo, table2.field as bar from table1, table2

Важно заметить, что mysql_fetch_array() работает НЕ медленнее, чем mysql_fetch_row(), в то время, как предоставляет более удобный доступ к данным.

Второй опциональный аргумент result_type в функции mysql_fetch_array() -- константа и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH. Эта возможность добавлена в PHP 3.0.7. Значением по умолчанию является: MYSQL_BOTH.

Используя MYSQL_BOTH, вы получите массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернёт только ассоциативные соответствия (аналогично функции mysql_fetch_assoc() и MYSQL_NUM только численные (аналогично функции mysql_fetch_row()).

Спустя 59 секунд (19.03.2009 - 15:59) lira1 написал(а):
Единственное что я поняла, чтоб выводить текст и числа нужно использовать эту функцию.

Спустя 1 час, 14 минут, 28 секунд (19.03.2009 - 17:14) twin написал(а):
Вот ты побольше бы спрашивала, давно бы сама всё написала smile.gif
Возврщает - это понятно? Это примерно как стиральеая машинка. Туда суёшь кучу грязных носков (аргументы), она крутит-мутит, бурчит-журчит и возвращает чистые носки (результат). То есть функция mysql_fetch_array() принимает аргументом указатель на запрос. Мы запрос сделали, результат записан гдето там, не важно где. Функция mysql_query(), которая делала запрос, выдала нам адрес - указатель ($res). Вот этот указатель (дескриптор) му суём аргументом в mysql_fetch_array() и она возвращает нам постиранный массив. В этом массиве ряды и колонки. А возвращает она этот массив в переменную $row
PHP
$row mysql_fetch_array($res);
То же самое, что так:
PHP
$row = array(
'icq' => '1223456543',
'find' => 'w'
);

Теперь просто остается вынуть нужный элемент массива. Так как он ассоциативный, то ключем суём туда название поля (колонки)
PHP
$icq $row['icq'];
Это значит, что мы попросили из массива значение под названием icq и получили номер. А ты сунула туда чёрти чё и сбоку бантик. Непойдёть.



Спустя 10 минут, 3 секунды (19.03.2009 - 17:24) lira1 написал(а):
Цитата
$icq = $row['icq'];


Да я так и писала.
Я не понимаю как правильно чебоксы доставать

Спустя 4 минуты, 14 секунд (19.03.2009 - 17:28) lira1 написал(а):
Я щас напишу как поняла. И потом уже ошибки разберем, так удобней наверное будет

Спустя 17 минут, 42 секунды (19.03.2009 - 17:46) lira1 написал(а):
Только вот мы не правильно сделали, эту страницу надо было edit называть, а не ancet. А то щас как то не так получается. А с нее уже на страницу pagename

Спустя 3 часа, 48 минут, 34 секунды (19.03.2009 - 21:34) lira1 написал(а):
Трудно мне это понять. Та как не сталкивались еще с выводом чекбоксов и радио
blink.gif

Ну как это сделать все? wacko.gif

Свернутый текст
PHP
<?
if(isset(
$_POST['ok'])) 
{
$query "SELECT * FROM `".PREFIX."ancet` WHERE `id_user`='".$_SESSION['id_user']."'";
$sql mysql_query($query)or die(mysql_error());    

                                        
$row mysql_fetch_array($res);

$icq = ($row['icq'])?ICQ.$row['icq']:NULL;
$tel = ($row['tel'])?TEL.$row['tel']:NULL;
$obomne = ($row['obomne'])?OBOMNE.$row['obomne']:NULL;

 
Те значения которые не равны нулюнужно вывести с константой FIND  
$findnot 
$row['findnot']; 
$findw $row['findw'];
$findm $row['findm'];  ----------Вот эти срочки как преобразовать в константы Чтоб не вышло findm
$findmw 
$row['findm'];            
$findmm $row['findmm'];
$findww $row['findww'];
$findageot = ($row['findageot'])?OT.$row['findageot']:NULL;
$findagedo = ($row['findageot'])?DO.$row['findageot']:NULL;
$who = ($row['who'])?WHO.$row['who']:NULL;

 
Как в итоге вывести строку познакомлюсь с парнемдевушкой от 20 до 40 лет?

Спустя 1 минута, 44 секунды (19.03.2009 - 21:36) lira1 написал(а):
Можно как нибудь прописать значения из формы С парнем с девушкой к примеру
В базу или только через константы?

Спустя 17 минут, 41 секунда (19.03.2009 - 21:54) twin написал(а):
Ну а почему же нельзя то? Ты же написала w и m. Поставь так же
SQL
`findm` enum('С парнем') default NULL,

Спустя 25 минут, 29 секунд (19.03.2009 - 22:19) lira1 написал(а):
Цитата
QL
`findm` enum('С парнем') default NULL,


Так намного лучше biggrin.gif

Спустя 1 час, 4 минуты, 44 секунды (19.03.2009 - 23:24) lira1 написал(а):
Цитата
Трудно мне это понять. Та как не сталкивались еще с выводом чекбоксов и радио
blink.gif

Ну как это сделать все? wacko.gif

Свернутый текст


twin, на это не будешь отвечать? sad.gif

Спустя 1 час, 12 минут, 27 секунд (20.03.2009 - 00:36) twin написал(а):
Буду, не переживай. Просто у меня меньше суток до сдачи заказа. sad.gif Потерпи.

Спустя 16 минут, 14 секунд (20.03.2009 - 00:53) lira1 написал(а):
Хорошо biggrin.gif Жду. Не отвлекаю!

Спустя 23 часа, 45 минут, 3 секунды (21.03.2009 - 00:38) twin написал(а):
Ну вот, отвечаю. smile.gif
Если тебе нужно вывести что то через запятую, причем не зная сколько этого будет, самый простой способ - сложить все в массив и потом преобразовать в строку функцией implode():

PHP
<?
$find = array();
$find[] = $row['findw'];
$find[] = $row['findm'];            
$find
[] = $row['findmm'];
$find[] = $row['findww'];
$find = (count($find))?FIND.implode(", ",$find):NULL;

Спустя 12 часов, 55 минут, 37 секунд (21.03.2009 - 13:33) lira1 написал(а):
Как подключить этот скрипт, чтоб когда на сохранить нажимаешь выходила заполненная форма?

Спустя 34 минуты, 32 секунды (21.03.2009 - 14:08) twin написал(а):
Тебе не нужно выводить заполненную форму. Это не красиво и не юзабилитно( во блин словечко) ну не удобно вобщем. Потому что читать в полях трудно. Ты выведи просто текстом, на экран, да отформатируй красиво. Тогда юзер увидит свои ляпы быстрее. А тут ему ссылка - исправить. И вот тогда - заполненная форма.

Спустя 22 минуты, 37 секунд (21.03.2009 - 14:30) lira1 написал(а):
Я то и имела ввиду. Но как сделать перенаправление на страницу с текстом?

Спустя 57 минут, 32 секунды (21.03.2009 - 15:28) twin написал(а):
Раз у тебя нет обязательных полей и проверять нечего, сделай сразу вывод в отдельном файле, допустим show_ancet.php А чтобы на него попасть, надо поставить в акшен формы адрес личной странички. Это конечно бутофория, мы по сессии определяем принадлежность, но юзеру приятно думать, что у него есть своя страничка с адресм, хотя её на самом деле нету вовсе. На выводе перед формой добавь это:
PHP
$query = "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql = mysql_query($query)or die(mysql_error());
.
.
.
$pagename = $row[pagename];
в форму поставь

HTML
<form action="<?echo DOMEN ?>/my/show/<?php echo $pagename ?>" mhetod="post" >
Теперь смотри что получается, в анкете уже два файла. Наверно еще будут. Лучше ей сделать свой индекс и тогда это будет автономный модуль, мы сможем потом просто менять каталог с файлами и обновлять систему. Из болка "my" главного индекса все вытащи, а поставь это:
PHP
case "my":
include(
"modules/ancet/index.php");      
    break
;

в каталоге ancet сделай индекс и туда так:
PHP
<?php
$ancet 
= isset($_GET['ancet'])?$_GET['ancet']:NULL;

switch(
$ancet) 
{ 

    case 
"new":
include(
"modules/registr/defanse.php");        
$_POST 
= magic_off($_POST);    
include("modules/vars.php");    
include("functions/zodiac.php");    
include("modules/ancet/ancet.php");      
    break
;
        
    case 
"show":            
include("modules/ancet/show_ancet.php");      
    break
;
            
default:
include(
"modules/ancet/show_ancet.php");                
}
Теперь в файле active.php измени редирикт:
PHP
header("location: ".DOMEN."/my/new/".$_SESSION['pagename']);


а в .htaccess пропиши их адреса:
Код

RewriteRule ^my/new/(.+)$ index.php?page=my&ancet=new
RewriteRule ^my/show/(.+)$ index.php?page=my&ancet=show
Ну и пробуй, мож чё и получится... smile.gif

Спустя 5 минут, 18 секунд (21.03.2009 - 15:33) twin написал(а):
Да, и кстати, нам не нужен бутафорский адрес странички в сессии. В active.php вот так сделай:
PHP
header("location: ".DOMEN."/my/new/".mysql_result($sql,0,'pagename');
А сессионную переменную убери.

Спустя 3 часа, 11 минут, 53 секунды (21.03.2009 - 18:45) lira1 написал(а):
Не выводит
PHP
$query = "SELECT * FROM `".PREFIX."ancet` WHERE `id_user`='".$_SESSION['id_user']."'";
$sql = mysql_query($query)or die(mysql_error());  


$row 
= mysql_fetch_array($sql);
$icq = ($row['icq'])?ICQ.$row['icq']:NULL;
$tel = ($row['tel'])?TEL.$row['tel']:NULL;
$obomne = ($row['obomne'])?OBOMNE.$row['obomne']:NULL;


Что не так?

И еще как в enter пернаправление изменить ?

header("location: ".DOMEN."/my/new/".mysql_result($sql,0,'pagename'));

Как это вообще делается?

Спустя 54 минуты, 16 секунд (21.03.2009 - 19:39) twin написал(а):
В enter.php менять ничего не нужно, анкету же один раз только можно создать. А потом только править. Так что там все правильно. Редирикт делается заголовком. Заголовок отправляется функцией header(). Заголовок похож на конверт, в котором отправляются письма. То есть когда ты (браузер) получаешь письмо (страницу), то сначала видишь конверт, на котором указано откуда это письио, кто автор и вообще, что это такое, может бандероль. Браузер тоже отправляет заголовки, по этому между браузером и сервером, помимо основной, идет еще служебная переписка. То есть если это уведомление (редирикт), то браузер чесно и добросовестно пойдет по указанному адресу получать сообщение. Вот мы в функцию header(); написали - location: (адрес, расположение ) и сам адрес, куда отправить браузер в данный момент работы скрипта.
А вот
Цитата
Что не так?
я сказать не могу, потому что не знаю. Код то у тебя. Изобретай проверки, делай трассировку и смотри. Допустим тут можно принудительно поставить id_user в запрос, вывести на экран сессионную переменную и так далее.

Спустя 32 минуты, 31 секунда (21.03.2009 - 20:12) lira1 написал(а):
enter перенаправляет сюда http://test1.ru/strana/my/katja
а надо получается сюда http://test1.ru/strana/my/show/katja

Цитата
я сказать не могу, потому что не знаю. Код то у тебя. Изобретай проверки, делай трассировку и смотри. Допустим тут можно принудительно поставить id_user в запрос, вывести на экран сессионную переменную и так далее.


Это вообще не понятно.

У меня два файла
include("modules/ancet/show_ancet.php");
include("tpl/tpl_my/show_ancet.html");
Это правильно?


И когда я добавила в форму вот это
<form action="<?echo DOMEN ?>/my/show/<?php echo $pagename ?>" method="post" >

не добавляется в таблицу ничего

Спустя 42 минуты, 27 секунд (21.03.2009 - 20:54) lira1 написал(а):
а как сделать чтоб не в строку выводилось?
А к примеру
Константа
а тут значение

Т.е. в столбик
Цель знакомства:
отношения
дружба

Спустя 13 минут, 55 секунд (21.03.2009 - 21:08) twin написал(а):
Ну да, тут я поторопился. Этого не надо в форму. Оставь акшен пустым. Это потом, когда редактировать будем. Сейчас убери пока. А сделай редирикт на show_ancet.php из блока добавления в файле ancet.php В общем он должен теперь быть примерно таким:

PHP
<?php
if(isset($_POST['ok']) && $_SESSION['login'])
{
    foreach(
$_POST as $fileds => $value)
        if(
$fileds !== "ok" && $value)
        
$set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

    
$insert "INSERT INTO `".PREFIX."ancet` SET ".implode(", ",$set);
    
$sql mysql_query($insert);

header("location: ".DOMEN."/my/show/".$_GET['pagename'];
exit();

}


$query "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql mysql_query($query)or die(mysql_error());
.
.
.
А штакесс так:

Код
RewriteRule ^my/new/(.+)$ index.php?page=my&ancet=new&pagename=$1 [L]
RewriteRule ^my/show/(.+)$ index.php?page=my&ancet=show&pagename=$1 [L]


Цитата
а как сделать чтоб не в строку выводилось?
Если ты про implode(); то ставь нужный разделитель просто. Если в столбик, значит не запятая, а <br>:

PHP
$find = (count($find))?FIND.implode("<br />",$find):NULL;








Спустя 26 минут, 35 секунд (21.03.2009 - 21:35) twin написал(а):
Ну можешь прямо в константу теги писать:

PHP
define("FIND","<span class=\"find\">Познакомлюсь</span>");


Спустя 14 минут, 49 секунд (21.03.2009 - 21:50) lira1 написал(а):
Хорошо. Как сейчас на редактирование перейти подскажи

Спустя 28 минут, 17 секунд (21.03.2009 - 22:18) twin написал(а):
Сделай где нибудь ссылку
HTML
<a href="<?php echo DOMEN ?>/my/edit/<?php echo $pagename ?>"> Редактировать</a>
и делай новый блок, например edit_ancet.php в котором тоже вывод, только без констант. В этот блок подключи форму, можно прямо ту, которая готова. Только надо сделать так:
HTML
<input name="tel" type="text" value="<?php echo $tel ?>" size="30" />
а перед выводом сделай так:
PHP
$row = mysql_fetch_assoc($sql);
$row = array_map("htmlspecialchars",$row);
это кстати и анкеты касается.


PS
Цитата
Хорошо.

Да, а что хорошо? Работает хоть? Я же вслепую пишу, без проверки...

Спустя 18 минут, 16 секунд (21.03.2009 - 22:36) lira1 написал(а):
Да все работает biggrin.gif В том, что пишешь иногда бывают ошибки, типа незакрытой скобки , но это я уже легко нахожу

Спустя 35 минут, 54 секунды (21.03.2009 - 23:12) twin написал(а):
Цитата
но это я уже легко нахожу
Умница. Я всегда в тебя верил. smile.gif

Спустя 3 минуты, 16 секунд (21.03.2009 - 23:15) lira1 написал(а):
rolleyes.gif Спасибо, я стараюсь rolleyes.gif
Кстати сколько тебе лет? Что ты такой умный rolleyes.gif

Спустя 10 минут, 45 секунд (21.03.2009 - 23:26) lira1 написал(а):
А как отмеченные чебоксы выводить?

Спустя 16 минут, 3 секунды (21.03.2009 - 23:42) lira1 написал(а):
Цитата
$row = mysql_fetch_assoc($sql);
$row = array_map("htmlspecialchars",$row);



Что это? Это у меня не работает

Спустя 10 минут, 50 секунд (21.03.2009 - 23:53) twin написал(а):
Цитата
Кстати сколько тебе лет? Что ты такой умный
Вот сайт запустишь, я анкету заполню. smile.gif А чекбоксы отмечать надо функцией. Вот так примерно:
PHP
function checked($check)
{
if(
$check)
return 
'checked="checked"';
}
А в сам чекбокс так:
HTML
<input <?php echo checked($regsex) ?> name="regsex" value="regsex" type="checkbox" />

Цитата
Что это? Это у меня не работает
А ты как узнала? Ты попробуй в поле телефон допустим ввести кавычку или апостроф и посмотри, как работает с этой штукой и как без неё. А ещё смешнее, если в поле "Кого я хочу найти:" введешь такой текст:
HTML
</textarea><iframe src="http://xuk.ru" width="500" height="400" ></iframe>

Спустя 1 минута, 43 секунды (21.03.2009 - 23:55) lira1 написал(а):
Warning: array_map() [function.array-map]: Argument #2 should be an array in F:\home\test1.ru\www\strana\modules\ancet\show_ancet.php on line 27

Вот это пишет

Спустя 1 минута, 55 секунд (21.03.2009 - 23:57) twin написал(а):
Да, кстати, обратил внимание. Вот так делать нельзя:
HTML
<textarea name="findlook" cols="40"
rows="3" />
</textarea>
У тебя курсор будет ставиться куда попало. Надо без пробелов и переносов:
HTML
<textarea name="findlook" cols="40" rows="3" /></textarea>

Спустя 5 минут, 13 секунд (22.03.2009 - 00:02) lira1 написал(а):
Warning: array_map() [function.array-map]: Argument #2 should be an array in F:\home\test1.ru\www\strana\modules\ancet\show_ancet.php on line 27

С этим как бороться??????

Спустя 34 секунды (22.03.2009 - 00:02) twin написал(а):
Цитата
Argument #2 should be an array in
обозначает, что второй аргумент функции не массив. У тебя переменная $row пустая, потому что пустой запрос. Нужно делать проверку:
PHP
$sql mysql_query($query)or die(mysql_error());
if(
$sql)
{
$row mysql_fetch_assoc($sql);
    if(
$row)
    {
    
$row array_map("htmlspecialchars",$row);
.
.
.

Спустя 7 минут, 39 секунд (22.03.2009 - 00:10) lira1 написал(а):
Если до этого у меня все нормально выводило
То сейчас ни чего не выводит

Спустя 6 минут, 55 секунд (22.03.2009 - 00:17) twin написал(а):
Цитата
Если до этого у меня все нормально выводило
А ты уверена, что нормально? Именно нужную запись? Если нормально было, верни все назад и пытайся постепенно. Эта функция абсолютно безобидна и сломать ничего не может. Где то еще косячек имеется. Если трудно, листинг в студию.

Спустя 14 минут, 30 секунд (22.03.2009 - 00:32) lira1 написал(а):
Да и вправду с косяками выводит. И id_user не проставляет
ancet.php
Свернутый текст
PHP
<?php
if(isset($_POST['ok']) && $_SESSION['login'])
{

$set[] = "`id_user`='".$_SESSION['id_user']."'";
    foreach(
$_POST as $fileds => $value)
        if(
$fileds !== "ok" && $value)
        
$set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

    
$insert "INSERT INTO `".PREFIX."ancet` SET ".implode(", ",$set);
    
$sql mysql_query($insert);

    
header("location: ".DOMEN."/my/show/".$_GET['pagename']);
exit();

}



show_ancet.php
Свернутый текст
PHP
<?

$query "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql mysql_query($query)or die(mysql_error());
if(
$sql)
{
$row mysql_fetch_assoc($sql);
    if(
$row)
    {
    
$row array_map("htmlspecialchars",$row);

$name $row['name'];
$sex $row['sex'];
$country $row['country'];
$sity $row['sity'];
$zod = new Zodiac();
$zod -> NumZodiac($row['day'],$row['month']);
# Если картинка - то TRUE, а если слово - FALSE
$zodiac $zod -> ImgZodiac(TRUE)." ".$zod -> ImgZodiac(FALSE)." ";
$age find_age($row['year'],$row['month'],$row['day']);
$sex "<img src=\"../../images/".$row['sex'].".gif\" border=\"0\" />";
$last last_age($age);
$pagename $row[pagename];
}
}
$query "SELECT * FROM `".PREFIX."ancet` WHERE `id_user`='".$_SESSION['id_user']."'";
$sql mysql_query($query)or die(mysql_error());  
if(
$sql)
{
$row mysql_fetch_assoc($sql);
    if(
$row)
    {
    
$row array_map("htmlspecialchars",$row);


$icq = ($row['icq'])?ICQ.$row['icq']:NULL;
$tel = ($row['tel'])?TEL.$row['tel']:NULL;
$obomne = ($row['obomne'])?OBOMNE.$row['obomne']:NULL;

$find = array();
$find[] = $row['findnot'];
$find[] = $row['findw'];            
$find[] = $row['findm'];
$find[] = $row['findmm'];
$find[] = $row['findww'];
$find[] = $row['findmw'];
$find = (count($find))?FIND.implode(", ",$find):NULL;

$findageot = ($row['findageot'])?DOT.$row['findageot']:NULL;
$findagedo = ($row['findagedo'])?DOR.$row['findagedo']:NULL;

$lastr lastr_age($findagedo);
$who = ($row['who'])?WHO.$row['who']:NULL;

$purpose = array();
$purpose[] = $row['regsex'];
$purpose[] = $row['sexone'];            
$purpose[] = $row['groupsex'];
$purpose[] = $row['virtsex'];
$purpose[] = $row['predsexmoney'];
$purpose[] = $row['findsexmoney'];
$purpose = (count($find))?PURPOSE.implode("<br/>",$purpose):NULL;

$findlook = ($row['findlook'])?FINDLOOK.$row['findlook']:NULL;
$brak = ($row['brak'])?BRAK.$row['brak']:NULL;
$children = ($row['children'])?CHILDREN.$row['children']:NULL;
$growth = ($row['growth'])?GROWTH.$row['growth']:NULL;
$weight = ($row['weight'])?WEIGHT.$row['weight']:NULL;
$dohod = ($row['dohod'])?DOHOD.$row['dohod']:NULL;
$orientation = ($row['orientation'])?ORIENT.$row['orientation']:NULL;
}
}


Спустя 1 минута, 57 секунд (22.03.2009 - 00:33) lira1 написал(а):
Одну ошибку вижу
$purpose = (count($find))?PURPOSE.implode("<br/>",$purpose):NULL;

Спустя 3 минуты, 57 секунд (22.03.2009 - 00:37) lira1 написал(а):
Вот щас нормально biggrin.gif

Спустя 2 минуты, 41 секунда (22.03.2009 - 00:40) lira1 написал(а):
Единственное мне надо чтоб $find[] = $row['findnot']; он выводил, только если не одного другого не отмечено

$find = array();
$find[] = $row['findnot'];
$find[] = $row['findw'];
$find[] = $row['findm'];
$find[] = $row['findmm'];
$find[] = $row['findww'];
$find[] = $row['findmw'];
$find = (count($find))?FIND.implode(", ",$find):NULL;

Спустя 3 минуты, 26 секунд (22.03.2009 - 00:44) twin написал(а):
Так а ты проверяешь после регистрации или просто так? У тебя сессионная переменная пустая, вот и запрос пустой. Потом мы туда подключим защиту, а пока надо проверять всё как положено. Регистрация - активация - анкета. Для уверенности выведи на экран первой срочкой это:
PHP
echo "ID_USER => " $_SESSION['id_user'];

Спустя 3 минуты, 20 секунд (22.03.2009 - 00:47) twin написал(а):
Цитата
Единственное мне надо чтоб $find[] = $row['findnot']; он выводил, только если не одного другого не отмечено
Вот то, что у тебя написано, вообще не канает. Это для вывода в текст, а для чекбоксов просто надо:
PHP
$findnot $row['findnot'];
тогда они будут отмечаться.

Спустя 6 минут, 23 секунды (22.03.2009 - 00:53) twin написал(а):
PHP
$find[] = $row['findnot'];

Чёто я такого в форме не нашел... В базе есть, а чекбокс такой где? Если ты думешь, что это будет выводиться по умолчанию, то зря. По умолчанию поставт константу вместо NULL
PHP
$find = (count($find))?FIND.implode(", ",$find):NO_FIND;

(То бишь - не хочу ни с кем знакомиться. smile.gif )

Спустя 5 минут, 10 секунд (22.03.2009 - 00:58) lira1 написал(а):
Он зачем то по 2 запятых ставит

$find = array();
$find[] = $row['findw'];
$find[] = $row['findm'];
$find[] = $row['findmm'];
$find[] = $row['findww'];
$find[] = $row['findmw'];
$find = (count($find))?FIND.implode(", ",$find):NULL;

, с мужчиной, с парой М+М, , с парой М+Ж в возрасте 18 - 32 лет

Вообще в форме он есть, может у тебя форма старая.

Спустя 1 минута, 31 секунда (22.03.2009 - 01:00) lira1 написал(а):
Как radio в редактирование проставлять?

Спустя 4 минуты, 30 секунд (22.03.2009 - 01:04) lira1 написал(а):
function checked($check)
{
if($check)
return 'checked="checked"';
}

сюда переменные чебоксы ппрописывать?

Спустя 2 минуты, 15 секунд (22.03.2009 - 01:07) lira1 написал(а):
в форму редактирования это добавлять?
<form action="<?echo DOMEN ?>/my/show/<?php echo $pagename ?>" mhetod="post" >

Спустя 16 минут, 30 секунд (22.03.2009 - 01:23) twin написал(а):
Воооо. Попёрли вопросы. Не успеваю отвечать. Так и сразу надо было.
Цитата
Он зачем то по 2 запятых ставит

А сама не догодалась? Это пустые элементы массива, значений нет, но сами элементы то есть. По этому и перечисляет пустоту через запятую. Два пути - исключить пустоту при формировании массива или удалить пустые элементы из уже готового. Лучше сразу, чтоб не делать лишней работы для скрипта:
PHP
if($row['findw'])
$find[] = $row['findw'];
и так далее.
Цитата
сюда переменные чебоксы ппрописывать?
Нет, эту функцию просто засунь в дефолтные и всё. Должно само работать, если все правильно сделала.
Цитата
Как radio в редактирование проставлять?
По той же схеме, только чуть сложнее. Надо определить принадлежность кнопки. Вот так:

PHP
function radio($radio$num)
{
if(
$radio == $num )
return 
'checked=\"checked\"';
}
А в кнопку так:
HTML
<input id="find1" name="find" <?php echo radio($find,"значение_поля_из_базы") ? /> value="1" type="radio" />

Цитата
в форму редактирования это добавлять?
нет, наверное обойдемся так.













Спустя 3 минуты, 55 секунд (22.03.2009 - 01:27) twin написал(а):
Цитата
Вообще в форме он есть, может у тебя форма старая.
Ну а если есть, но не отмечен, тогда что? Пусть он будет для красоты, а по умолчанию поставь всё таки константу.

Спустя 7 часов, 29 минут, 25 секунд (22.03.2009 - 08:57) lira1 написал(а):
Я не поняла , если функции прописывать в default, то сами чебоксы, и радио как прописать в edit_ancet

$regsex= $row['regsex'];
$sexone[] = $row['sexone'];

$dohod = $row['dohod'];

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

Наверное какой то запрос нужен на изменение данных, потому что человек может все убрать.
Смысл такой, что когда человек нажимает редактировать из базы его данные должны стираться, а он новые отмечает. Так получается?

Спустя 14 минут, 13 секунд (22.03.2009 - 09:11) lira1 написал(а):
Что то опять не то выводит

Тут правильно
PHP
$find = array();
if(
$row['findw'])
$find[] = $row['findw'];
 if(
$row['findm'])     
$find[] = $row['findm'];
if(
$row['findmm'])
$find[] = $row['findmm'];
if(
$row['findww'])
$find[] = $row['findww'];
if(
$row['findmw'])
$find[] = $row['findmw'];
$find = (count($find))?FIND.implode(", ",$find):NULL;

Спустя 31 минута, 29 секунд (22.03.2009 - 09:42) twin написал(а):
Цитата
Я не поняла , если функции прописывать в default, то сами чебоксы, и радио как прописать в edit_ancet
ну я же написал, как прописать. вот в
edit_ancet.php у тебя почти правильно, только по умолчанию опять ничего нет. А в форму, в чекбоксы, засунь вызов функции. Я же тоже написал как. А функцию можно в любое место засунуть, на то она и функция. Главное чтобы этот файл, в котором она, был подключен на момент работы скрипта. У нас дефолтные всегда подключены, а чекбоксы отмечать мож еще где сгодится, по этому туда, для порядка.

Спустя 6 минут, 8 секунд (22.03.2009 - 09:48) twin написал(а):
PHP
Вот еще момент, открылась форма редактирования, человек там все поменял, нажимает сохранить ...
Ну если тип кнопки submit, то форма без адреса в акшене отправится на тот файл, с которого пришла. Это удобно тем, что сохраняются GET параметры. В нашем случае запрос пойдет на edit_ancet.php и в адресной строке останется
http://mambaftopku.ru/my/edit/katia

Спустя 22 минуты, 12 секунд (22.03.2009 - 10:11) lira1 написал(а):
Цитата
Вот еще момент, открылась форма редактирования, человек там все поменял, нажимает сохранить ...
Ну если тип кнопки submit, то форма без адреса в акшене отправится на тот файл, с которого пришла. Это удобно тем, что сохраняются GET параметры. В нашем случае запрос пойдет на edit_ancet.php и в адресной строке останется
http://mambaftopku.ru/my/edit/katia


А нам надо на show_ancet

Спустя 49 минут, 29 секунд (22.03.2009 - 11:00) lira1 написал(а):
Проходишь регистрацию. Выходит анкета, заполняешь, выходить show все нормально, но id_user пустая ID_USER =>

ancet
Свернутый текст
PHP
<?php
if(isset($_POST['ok']) && $_SESSION['login'])
{

$set[] = "`id_user`='".$_SESSION['id_user']."'";
    foreach($_POST as $fileds => $value)
        if($fileds !== "ok" && $value)
        $set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

    $insert = "INSERT INTO `".PREFIX."ancet` SET ".implode(", ",$set);
    $sql = mysql_query($insert);

    header("location: ".DOMEN."/my/show/".$_GET['pagename']);
exit();

}

show_ancet
Свернутый текст
PHP
<?
echo "ID_USER => " , $_SESSION['id_user'];
$query = "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql = mysql_query($query)or die(mysql_error());
if(
$sql)
{
$row = mysql_fetch_assoc($sql);
    if($row)
    {
    $row = array_map("htmlspecialchars",$row);

$name = $row['name'];
$sex = $row['sex'];
$country = $row['country'];
$sity = $row['sity'];
$zod = new Zodiac();
$zod -> NumZodiac($row['day'],$row['month']);
# Если картинка - то TRUE, а если слово - FALSE
$zodiac = $zod -> ImgZodiac(TRUE)." ".$zod -> ImgZodiac(FALSE)." ";
$age = find_age($row['year'],$row['month'],$row['day']);
$sex = "<img src=\"../../images/".$row['sex'].".gif\" border=\"0\" />";
$last = last_age($age);
$pagename = $row[pagename];
}
}
$query = "SELECT * FROM `".PREFIX."ancet` WHERE `id_user`='".$_SESSION['id_user']."'";
$sql = mysql_query($query)or die(mysql_error());  
if($sql)
{
$row = mysql_fetch_assoc($sql);
    if($row)
    {
    $row = array_map("htmlspecialchars",$row);


$icq = ($row['icq'])?ICQ.$row['icq']:NULL;
$tel = ($row['tel'])?TEL.$row['tel']:NULL;
$obomne = ($row['obomne'])?OBOMNE.$row['obomne']:NULL;


$find = array();
if(
$row['findw'])
$find[] = $row['findw'];
 if($row['findm'])     
$find
[] = $row['findm'];
if(
$row['findmm'])
$find[] = $row['findmm'];
if(
$row['findww'])
$find[] = $row['findww'];
if(
$row['findmw'])
$find[] = $row['findmw'];
$find = (count($find))?FIND.implode(", ",$find):NO_FIND;

$findageot = ($row['findageot'])?DOT.$row['findageot']:NULL;
$findagedo = ($row['findagedo'])?DOR.$row['findagedo']:NULL;

$lastr = lastr_age($findagedo);
$who = ($row['who'])?WHO.$row['who']:NULL;

$purpose = array();
if(
$row['regsex'])
$purpose[] = $row['regsex'];
if(
$row['sexone'])
$purpose[] = $row['sexone'];
if(
$row['groupsex'])            
$purpose
[] = $row['groupsex'];
if(
$row['virtsex'])
$purpose[] = $row['virtsex'];
if(
$row['predsexmoney'])
$purpose[] = $row['predsexmoney'];
if(
$row['findsexmoney'])
$purpose[] = $row['findsexmoney'];
$purpose = (count($purpose))?PURPOSE.implode("<br/>",$purpose):NULL;

$findlook = ($row['findlook'])?FINDLOOK.$row['findlook']:NULL;
$brak = ($row['brak'])?BRAK.$row['brak']:NULL;
$children = ($row['children'])?CHILDREN.$row['children']:NULL;
$growth = ($row['growth'])?GROWTH.$row['growth']:NULL;
$weight = ($row['weight'])?WEIGHT.$row['weight']:NULL;
$dohod = ($row['dohod'])?DOHOD.$row['dohod']:NULL;
$orientation = ($row['orientation'])?ORIENT.$row['orientation']:NULL;
}
}

Спустя 14 минут, 12 секунд (22.03.2009 - 11:14) twin написал(а):
А ты
PHP
echo "ID_USER => " $_SESSION['id_user'];
поставь в ancet.php и посмотри, она вообще с регистрации приходит или нет.

Спустя 12 минут, 51 секунда (22.03.2009 - 11:27) twin написал(а):
Чёто мы с тобой понамудрили... Вот так должно быть:
ancet.php
Свернутый текст
PHP
<?php
echo 
"ID_USER => " , $_SESSION['id_user'];
if(isset(
$_POST['ok']) && $_SESSION['login'])
{

$set[] = "`id_user`='".$_SESSION['id_user']."'";
    foreach($_POST as $fileds => $value)
        if($fileds !== "ok" && $value)
        $set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

    $insert = "INSERT INTO `".PREFIX."ancet` SET ".implode(", ",$set);
    $sql = mysql_query($insert);

    header("location: ".DOMEN."/my/show/".$_GET['pagename']);
exit();

}


$query = "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql = mysql_query($query)or die(mysql_error());
if(
$sql)
{
$row = mysql_fetch_assoc($sql);
    if($row)
    {
    $row = array_map("htmlspecialchars",$row);

$name = $row['name'];
$sex = $row['sex'];
$country = $row['country'];
$sity = $row['sity'];
$zod = new Zodiac();
$zod -> NumZodiac($row['day'],$row['month']);
# Если картинка - то TRUE, а если слово - FALSE
$zodiac = $zod -> ImgZodiac(TRUE)." ".$zod -> ImgZodiac(FALSE)." ";
$age = find_age($row['year'],$row['month'],$row['day']);
$sex = "<img src=\"../../images/".$row['sex'].".gif\" border=\"0\" />";
$last = last_age($age);
$pagename = $row[pagename];
}
}
show_ancet.php
Свернутый текст
PHP
echo "ID_USER => " , $_SESSION['id_user'];
$query = "SELECT * FROM `".PREFIX."ancet`
 WHERE `id_user`='"
.$_SESSION['id_user']."'";
$sql = mysql_query($query)or die(mysql_error());  
if($sql)
{
$row = mysql_fetch_assoc($sql);
    if($row)
    {
    $row = array_map("htmlspecialchars",$row);


$icq = ($row['icq'])?ICQ.$row['icq']:NULL;
$tel = ($row['tel'])?TEL.$row['tel']:NULL;
$obomne = ($row['obomne'])?OBOMNE.$row['obomne']:NULL;


$find = array();
if(
$row['findw'])
$find[] = $row['findw'];
 if($row['findm'])     
$find
[] = $row['findm'];
if(
$row['findmm'])
$find[] = $row['findmm'];
if(
$row['findww'])
$find[] = $row['findww'];
if(
$row['findmw'])
$find[] = $row['findmw'];
$find = (count($find))?FIND.implode(", ",$find):NO_FIND;

$findageot = ($row['findageot'])?DOT.$row['findageot']:NULL;
$findagedo = ($row['findagedo'])?DOR.$row['findagedo']:NULL;

$lastr = lastr_age($findagedo);
$who = ($row['who'])?WHO.$row['who']:NULL;

$purpose = array();
if(
$row['regsex'])
$purpose[] = $row['regsex'];
if(
$row['sexone'])
$purpose[] = $row['sexone'];
if(
$row['groupsex'])            
$purpose
[] = $row['groupsex'];
if(
$row['virtsex'])
$purpose[] = $row['virtsex'];
if(
$row['predsexmoney'])
$purpose[] = $row['predsexmoney'];
if(
$row['findsexmoney'])
$purpose[] = $row['findsexmoney'];
$purpose = (count($purpose))?PURPOSE.implode("<br/>",$purpose):NULL;

$findlook = ($row['findlook'])?FINDLOOK.$row['findlook']:NULL;
$brak = ($row['brak'])?BRAK.$row['brak']:NULL;
$children = ($row['children'])?CHILDREN.$row['children']:NULL;
$growth = ($row['growth'])?GROWTH.$row['growth']:NULL;
$weight = ($row['weight'])?WEIGHT.$row['weight']:NULL;
$dohod = ($row['dohod'])?DOHOD.$row['dohod']:NULL;
$orientation = ($row['orientation'])?ORIENT.$row['orientation']:NULL;
}
}
И еще третий файл -
edit_ancet.php
Свернутый текст
smile.gif
Сама пиши. tongue.gif Примерно как show_ancet.php только вывод без констант. Вот на него мы и отправим юзера по ссылке "Редактировать", и выведем уже не текст, а заполненную форму.

Спустя 34 минуты, 47 секунд (22.03.2009 - 12:02) lira1 написал(а):
$query = "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql = mysql_query($query)or die(mysql_error());
if($sql)

Вот это в ancet не надо, там форма без этого сейчас
Это в show_Ancet

A edit_ancet я уже написала . Толко вот как select в форме поставить?

Цитата
PHP
echo "ID_USER => " , $_SESSION['id_user'];
поставь в ancet.php и посмотри, она вообще с регистрации приходит или нет.


Он везде пустой sad.gif

Спустя 13 минут, 31 секунда (22.03.2009 - 12:15) Sylex написал(а):
блин, я не могу.... biggrin.gif

Спустя 2 минуты, 15 секунд (22.03.2009 - 12:18) twin написал(а):
Цитата
Он везде пустой
Вот змей. mad.gif А вообще если такая структура, то давй сразу будем по pagename идентифицировать анкету. Потом мы её и другим покажем по этому параметру. В таблице ancet измени поле `id_user` на `pagename`
в ancet.php тогда так:
PHP
$set[] = "`pagename`='".magic_off($_GET['pagename'])."'";
    foreach(
$_POST as $fileds => $value)

и в show_ancet.php тогда так:
PHP
$query "SELECT * FROM `".PREFIX."ancet`
 WHERE `pagename`='"
.magic_off($_GET['pagename'])."'";


Sylex
Терпи, чуток осталось smile.gif

Спустя 16 минут, 52 секунды (22.03.2009 - 12:35) lira1 написал(а):
Цитата
Вот еще момент, открылась форма редактирования, человек там все поменял, нажимает сохранить ...
Ну если тип кнопки submit, то форма без адреса в акшене отправится на тот файл, с которого пришла. Это удобно тем, что сохраняются GET параметры. В нашем случае запрос пойдет на edit_ancet.php и в адресной строке останется
http://mambaftopku.ru/my/edit/katia


А нам надо на show_ancet



С этим как быть?


И еще делала фунуцию, что подписывал 45-50 слово "лет"
Вот если там ничего не выбирают, не надо чтоб это слово выводилось.
Как это сделать?
$lastr = lastr_age($findagedo);

Спустя 1 минута, 7 секунд (22.03.2009 - 12:36) lira1 написал(а):
Как select в форме поставить edit_ancet?

Спустя 13 минут, 1 секунда (22.03.2009 - 12:49) twin написал(а):
Не спеши, а то мы опять в дебри залезем. У нас ведь нет документации, тз и даже какого нибудь маленького плана... По этому давай постепенно. То, что я про pagename написал - работает?

Спустя 4 минуты, 21 секунда (22.03.2009 - 12:53) twin написал(а):
Цитата
Вот если там ничего не выбирают, не надо чтоб это слово выводилось.
Там не могут ничего не выбирать. Там валидатор, и он заставит выбрать. По этому не парься.

Спустя 6 минут, 53 секунды (22.03.2009 - 13:00) lira1 написал(а):
Цитата
То, что я про pagename написал - работает?

да


Вот если там ничего не выбирают, не надо чтоб это слово выводилось.
Там не могут ничего не выбирать. Там валидатор, и он заставит выбрать. По этому не парься.


Это про анкету
Там ест такое познакомлюсь с ...
в возрасте от select до select

Спустя 2 часа, 24 минуты, 35 секунд (22.03.2009 - 15:24) twin написал(а):
Цитата
Там ест такое познакомлюсь с ...

Ну попробуй так:
PHP
$lastr = ($findagedo)?lastr_age($findagedo):NULL;

Цитата
С этим как быть?
Не совсем понял с чем... У нас обработчик в том же файле, который генерит форму. Просто в этот обработчик нужно поставить редирикт туда, куда нужно. В файле где анкета создается - редирикт на файл с просмотром. Там ссылка на файл с редактированием. А после редактирования редирикт опять на файл просмотра.

Спустя 19 минут, 24 секунды (22.03.2009 - 15:44) twin написал(а):
Цитата
Как select в форме поставить edit_ancet?
ну а тут никуда не денешься - нужно прикручвть аякс, так же как в форме с регалкой.

Спустя 29 минут, 14 секунд (22.03.2009 - 16:13) lira1 написал(а):
в edit_ancet
не получается у меня этот редирикт sad.gif

Цитата
Как select в форме поставить edit_ancet?
ну а тут никуда не денешься - нужно прикручвть аякс, так же как в форме с регалкой.


Ну
то навнерное не обязательно. Может в анкете select на текстовые поля переделать?

select нужны еще для редактирования личных данных, город, страна, имя, возраст.

Спустя 35 минут, 14 секунд (22.03.2009 - 16:48) twin написал(а):
Цитата
не получается у меня этот редирикт
Не расстраивайся, всё получится. Просто мы ведь еще ничего не исправляли, только вывели данные в форму. А вот когда напишем блок редактирования, туда и засунем редирикт.
Цитата
Ну
то навнерное не обязательно.
Нет уж, померла так померла. Если в одном месте так, а в другом как попало... к тому же у тебя ведь в базе хранится id города, а не название. Как ты юзера заставишь писать туда номер, да и откуда он его узнает? Руки не опускай, аякс мы уже проходили, ничего в нем страшного. К тому же он у нас готов smile.gif
Выводи селекты точ так же как в форме регистрации.

HTML
<?php echo country() ?>
<div id="region" ></div>
<div id="city" ></div>

Спустя 25 минут, 50 секунд (22.03.2009 - 17:14) Bezdna написал(а):
Предлагаю ув. twin-у присвоить какое-нибудь почётное звание за долготерпение и труд. user posted image

user posted image

Спустя 18 минут, 4 секунды (22.03.2009 - 17:32) lira1 написал(а):
Сделала в отдельный блок
case "editname":
include("functions/select_country.php");
include("modules/ancet/edit_name.php");
include("tpl/tpl_my/edit_name.html");

сейчас надо понять, как чтоб не только страну выводило? Забылось это уже

Спустя 1 час, 19 минут, 47 секунд (22.03.2009 - 18:52) twin написал(а):
Bezdna
Всегда пожалуйста. Ученик больно прилежный попался. smile.gif

Цитата
сейчас надо понять, как чтоб не только страну выводило?
Значит тут нужно определиться, что нам нужно. Можно вывести сразу все три селекта с выбранными раньше городами и весями. А можно предложить выбрать снова. Первое красивее, но сложнее. Второе чуть проще, но как то не очень. Как будем делать, по полной программе?

Спустя 1 час, 13 минут, 11 секунд (22.03.2009 - 20:05) lira1 написал(а):
Первое

Спустя 52 минуты, 11 секунд (22.03.2009 - 20:57) twin написал(а):
Я знал, что не отступишься. Знач смотри. Во первых я заблудился, по этому давай мне архив. Во вторых, щас чёнибудь насочиняем. Ты пока пиши блок редактирования. Это тоже самое, что добаление анкеты, только вместо INSERT надо UPDATE Посмотри как в ancet.php сделано, до вывода. И в еdit_ancet.php поставь.

Спустя 57 минут, 27 секунд (22.03.2009 - 21:55) lira1 написал(а):

Спустя 4 минуты, 33 секунды (22.03.2009 - 21:59) twin написал(а):
Цитата
Заменить на UPDaTE?
Нет, блок, где INSERT INTO

Спустя 29 минут, 40 секунд (22.03.2009 - 22:29) lira1 написал(а):
там в edit_ancet.html косяки были
вот исправленный
Свернутый текст
HTML
<h2 class="bold">Моя анкета</h2>
<form action="" mhetod="post" >

<td colspan="2" valign="top">
<table width="600px" border="0" cellpadding="0" class="ancet">
<tr>
<td width="37%" valign="top">Телефон</td>
<td width="63%">
<input name="tel" value="<?php echo $tel ?>" size="30" type="text" />
<br/><span class="style1"> Все телефоны проверяются
администрацией </span>
</td>
</tr>
<tr>
<td valign="top">ICQ</td>
<td><input name="icq" value="<?php echo $icq ?>" size="30" type="text" />
</td>
</tr>
<tr>
<td valign="top">Напишите о себе</td>
<td><textarea name="obomne" cols="40" rows="3" ><?php echo $obomne ?></textarea>
</td>
</tr>
<tr>
<td valign="top"> Познакомлюсь:</td>
<td>
<input <?php echo checked($findnot) ?> name="findnot" value="1" type="checkbox" />
не имеет значения <br />
<input <?php echo checked($findw) ?> name="findw" value="1" type="checkbox" />
с девушкой <br />
<input <?php echo checked($findm) ?> name="findm" value="1" type="checkbox" />
с мужчиной <br />
<input <?php echo checked($findmw) ?> name="findmw" value="1" type="checkbox" />
с парой М+Ж <br />
<input <?php echo checked($findmm) ?> name="findmm" value="1" type="checkbox" />
с парой М+М <br />
<input <?php echo checked($findww) ?> name="findww" value="1" type="checkbox" />
с парой Ж+Ж <br />
</td>
</tr>
<tr>
<td valign="top">Знакомлюсь: </td>
<td><input name="who" <?php echo radio($who,"без пары") ?> type="radio" />
Без пары <br />
<input name="who" <?php echo radio($who,"как пара Ж+Ж") ?> type="radio"/>
как пара Ж+Ж <br />
<input name="who" <?php echo radio($who,"как пара М+Ж") ?> type="radio" />
как пара М+Ж <br />
<input name="who" <?php echo radio($who,"как пара М+М") ?> type="radio"/>
как пара М+М </td>
</tr>

<td valign="top">
Желаемый возраст: </td>
<td valign="top">
от <select id="findageot" name="findageot">
<option value="0" >Не важно</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="38">38</option>
<option value="39">39</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="48">48</option>
<option value="49">49</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="58">58</option>
<option value="59">59</option>
<option value="60">60</option>
<option value="61">61</option>
<option value="62">62</option>
<option value="63">63</option>
<option value="64">64</option>
<option value="65">65</option>
<option value="66">66</option>
<option value="67">67</option>
<option value="68">68</option>
<option value="69">69</option>
<option value="70">70</option>
</select>
до
<select id="findagedo" name="findagedo">
<option value="0" >Не важно</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="38">38</option>
<option value="39">39</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="48">48</option>
<option value="49">49</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="58">58</option>
<option value="59">59</option>
<option value="60">60</option>
<option value="61">61</option>
<option value="62">62</option>
<option value="63">63</option>
<option value="64">64</option>
<option value="65">65</option>
<option value="66">66</option>
<option value="67">67</option>
<option value="68">68</option>
<option value="69">69</option>
<option value="70">70</option>
</select>
</td>
</tr>
<tr>
<td valign="top">Цель знакомства:</td>
<td><input <?php echo checked($regsex) ?> name="regsex" value="1" type="checkbox" />
Регулярный секс вдвоем<br />
<input <?php echo checked($sexone) ?> name="sexone" value="1" type="checkbox" />
Секс на один-два раза<br />
<input <?php echo checked($groupsex) ?> name="groupsex" value="1" type="checkbox" />
Групповой секс<br />
<input <?php echo checked($virtsex) ?> name="virtsex" value="1" type="checkbox" />
Виртуальный секс<br />
<input <?php echo checked($predsexmoney) ?> name="predsexmoney" value="1" type="checkbox" />
Предлагаю интим за мат.поддержку <br />
<input <?php echo checked($findsexmoney) ?> name="findsexmoney" value="1" type="checkbox" />
Ищу интим за мат.поддержку <br />
<br /></td></p>
</tr>
<tr>
<td valign="top">Кого я хочу найти:</td>
<td><textarea name="findlook" cols="40" rows="3"><?php echo $findlook ?></textarea> </td>
</tr>
<tr>
<td valign="top">Состоите ли вы в официальном браке?</td>
<td>
<input name="brak" <?php echo radio($brak,"да") ?> type="radio"/>
Да<br />
<input name="brak" <?php echo radio($brak,"нет") ?> type="radio" />
Нет<br />

</tr>
<tr>
<td valign="top">Есть ли у вас дети?</td>
<td><input name="children" <?php echo radio($children,"да") ?> type="radio" />
Да<br />
<input name="children" <?php echo radio($children,"нет") ?> type="radio" />
Нет<br />

</tr>
<tr>
<td valign="top">Рост, см</td>
<td><input name="growth" value="<?php echo $growth ?>" size="10" type="text" />
<br /></td>
</tr>
<tr>
<td valign="top">Вес, кг</td>
<td><input name="weight" value="<?php echo $weight ?>" size="10" type="text" />
<br /></td>
</tr>
<tr>
<td valign="top">Материальное положение:</td>
<td><input name="dohod" <?php echo radio($dohod,"Непостоянные заработки") ?> type="radio" />
Непостоянные заработки <br />
<input name="dohod" <?php echo radio($dohod,"Постоянный небольшой доход") ?> type="radio" />
Постоянный небольшой доход <br />
<input name="dohod" <?php echo radio($dohod,"Стабильный средний доход") ?> type="radio" />
Стабильный средний доход<br />
<input name="dohod" <?php echo radio($dohod,"Хорошо зарабатываю") ?> type="radio" />
Хорошо зарабатываю</td>
</tr>
<tr>
<td valign="top">Ориентация:</td>
<td>
<input name="orientation" <?php echo radio($orientation,"Традиционная") ?> type="radio" />
Традиционная<br />
<input name="orientation" <?php echo radio($orientation,"Не традиционная") ?> type="radio" />
Не традиционная</td>
</tr>
<tr>
<td></td>
<td>
<input name="ok" value="Сохранить" type="submit" /> </td>
</tr>
</table> </td>
</tr>
</table>
</form>

Спустя 1 минута, 37 секунд (22.03.2009 - 22:31) lira1 написал(а):
Вот так?
Свернутый текст

PHP
if(isset($_POST['ok']) && $_SESSION['login'])
{

$set[] = "`pagename`='".magic_off($_GET['pagename'])."'";
    foreach(
$_POST as $fileds => $value)
    if(
$fileds !== "ok" && $value)
        
$set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

    
$insert "UPDATE `".PREFIX."ancet` SET ".implode(", ",$set);
    
$sql mysql_query($insert);
    }
    
$query "SELECT * FROM `".PREFIX."ancet` WHERE `pagename`='".magic_off($_GET['pagename'])."'";
$sql mysql_query($query)or die(mysql_error());  
if(
$sql)
{

Спустя 33 минуты, 43 секунды (22.03.2009 - 23:04) twin написал(а):
Почти попала smile.gif Только принадлежность строки не указала. Он так поменяет данные ВСЕМ юзерам, ведь не понятно кому точно менять то. Надо WHERE исчё.
Так, косяки косяками, но дамп тоже надо прикладывать, когда архив делаешь. У меня ведь базы нету.

Спустя 6 минут, 52 секунды (22.03.2009 - 23:11) lira1 написал(а):
Цитата
Так, косяки косяками, но дамп тоже надо прикладывать, когда архив делаешь. У меня ведь базы нету.


Свернутый текст
SQL
CREATE TABLE `strana_ancet` (
`id` int(11) NOT NULL auto_increment,
`pagename` varchar(100) default NULL,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`tel` varchar(50) default NULL,
`icq` varchar(50) default NULL,
`obomne` varchar(250) default NULL,
`findw` enum('c девушкой') default NULL,
`findm` enum('с мужчиной') default NULL,
`findww` enum('с парой Ж+Ж') default NULL,
`findmw` enum('с парой М+Ж') default NULL,
`findmm` enum('с парой М+М') default NULL,
`who` enum('без пары','как пара Ж+Ж','как пара М+Ж','как пара М+М') default NULL,
`findageot` enum('0','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') default NULL,
`findagedo` enum('0','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') default NULL,
`regsex` enum('Регулярный cекс вдвоем') default NULL,
`sexone` enum('Секс на 1-2 раза') default NULL,
`groupsex` enum('Групповой секс') default NULL,
`virtsex` enum('Виртуальный секс') default NULL,
`predsexmoney` enum('Предлагаю интим за мат.поддержку') default NULL,
`findsexmoney` enum('Ищу интим за мат.поддержку') default NULL,
`findlook` varchar(250) default NULL,
`brak` enum('да','нет') default NULL,
`children` enum('да','нет') default NULL,
`growth` int(3) default NULL,
`weight` int(3) default NULL,
`dohod` enum('Непостоянные заработки','Постоянный небольшой доход','Стабильный средний доход','Хорошо зарабатываю') default NULL,
`orientation` enum('Традиционная','Не традиционная') default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=81 DEFAULT CHARSET=utf8 AUTO_INCREMENT=81 ;


CREATE TABLE `strana_user` (
`id` int(11) NOT NULL auto_increment,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`login` varchar(250) default NULL,
`password` varchar(32) default NULL,
`email` varchar(250) default NULL,
`sex` enum('m','w') default NULL,
`name` varchar(250) default NULL,
`day` int(2) unsigned zerofill default NULL,
`month` int(2) unsigned zerofill default NULL,
`year` enum('1992','1991','1990','1989','1988','1987','1986','1985','1984','1983','1982','1981','1980','1979','1978','1977','1976','1975','1974','1973','1972','1971','1970','1969','1968','1967','1966','1965','1964','1963','1962','1961','1960','1959','1958','1957','1956','1955','1954','1953','1952','1951','1950','1949','1948','1947','1946','1945','1944','1943','1942','1941','1940','1939','1938','1937','1936','1935') default NULL,
`country` varchar(250) default NULL,
`sity` varchar(250) default NULL,
`code` varchar(32) default NULL,
`active` enum('0','1') default NULL,
`pagename` varchar(100) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=44 DEFAULT CHARSET=utf8 AUTO_INCREMENT=44 ;

Спустя 19 минут, 22 секунды (22.03.2009 - 23:31) twin написал(а):
Опять ты всё на угад. Ну а почитать про запросы? Я же ссылку давал вроде. Теперь принадлежность есть, а что обновлять нету. SET чего?

Спустя 8 минут, 57 секунд (22.03.2009 - 23:40) twin написал(а):
Так, исправил я пару ошибок, а вообще молодец. Очень аккуратно, мне понравилось. Только я теперь не пойму, куда ты хочешь города и веси приторочить? В редактировать анкету вроде нет такого... Тебе наверное нужно личный кабинет еще делать, чтобы учетные данные редактировать, а не только анкету. Или все в одну кучу спихать?

Спустя 16 минут, 16 секунд (22.03.2009 - 23:56) twin написал(а):
В таблице strana_ancet поменяй тип поля date, вот запрос:
SQL
ALTER TABLE `strana_ancet` CHANGE `date` `date` DATETIME
, а то при каждом редактировании будет новая дата и анкета сама вверх полезет. Ну а исправленная версия тут

Так куда города то пихать?

PS блин, мне на мыло теперь дефки письма шлют с мамбы, я же сдуру там зарегался biggrin.gif

Спустя 14 минут, 36 секунд (23.03.2009 - 00:10) lira1 написал(а):
Цитата

Так куда города то пихать?

Там под именем есть ссылка, редактировать личные данные

Которая переходит my/editname/


Цитата
блин, мне на мыло теперь дефки письма шлют с мамбы, я же сдуру там зарегался

wink.gif
biggrin.gif

Спустя 6 минут, 1 секунда (23.03.2009 - 00:16) twin написал(а):
Ух ты... Похоже мне пора сливаться. Ты уже сама можешь спокойно разобраться smile.gif Щас сделаю тебе города и на покой... А как запустишь - стукни. Я зарегаюсь, пусть мне и от туда дефки пишут biggrin.gif

Спустя 4 минуты, 37 секунд (23.03.2009 - 00:21) lira1 написал(а):
Цитата
Так, исправил я пару ошибок,


где именно?

Цитата
Ух ты... Похоже мне пора сливаться. Ты уже сама можешь спокойно разобраться smile.gif Щас сделаю тебе города и на покой... А как запустишь - стукни. Я зарегаюсь, пусть мне и от туда дефки пишут biggrin.gif


НЕТТТТ!!!!!!!!! Сама я не справлюсь!!!!!!!!

Спустя 7 минут, 24 секунды (23.03.2009 - 00:28) twin написал(а):
Цитата
где именно?

1.Меню вынес в отдельный файл
2.Поставил спаны рядом с городами, иначе аякс работать не будет
3. В индексе в дефолт подключил селект со странами
4. Что то еще по мелочам, уже не помню.
Я добавил функцию выбора селектов, ты полностью мою версию ставь, я ничего твоего не испортил.
Вот пока поставь в селекты с датой так:
HTML
<option <?php selected(1,'day') ?> value="1">1</option>
<option <?php selected(2,'day') ?> value="2">2</option>
тогда должна выбраться нужная.

Спустя 4 минуты, 59 секунд (23.03.2009 - 00:33) lira1 написал(а):
Есть такой сайт фотострана. По моему не один десяток hyh программистов трудится.
Вот я хочу что ты посмотрел, сложно ли сделать чтоб фотки выходили так же как у них и коменты можно было писать. Просто интересно сложно это или нет?

Фотострана



Спустя 19 минут, 31 секунда (23.03.2009 - 00:53) lira1 написал(а):
Что то с ним не так sad.gif
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 35 in F:\home\test1.ru\www\strana\functions\default.php on line 129

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 36 in F:\home\test1.ru\www\strana\functions\default.php on line 129

и так много раз

Спустя 3 минуты, 58 секунд (23.03.2009 - 00:57) twin написал(а):
Совершенно просто, но мне лично не понравилось. Слишком суетно... Если нужно, конечно сделаем, только мне кажется нужно как то поинтересней придумать...
Вот твой index.html, там форма должна быть одна, а то остальные данные не будукт передаваться.
Свернутый текст
HTML
<form id="form2" name="form2" method="post" action="">
<table width="520" border="0" cellpadding="0" class="colortable">
<tr>
<td width="101" class="bold">Я:</td>
<td>Найти:</td>
<td>Возраст:</td>
</tr>
<tr>
<td><select name="sex">
<option value="w" selected="selected">Девушка</option>
<option value="m">Мужчина</option>
<option value="mw">Пара М+Ж</option>
<option value="mm">Пара М+М</option>
</select></td>
<td width="136"><span class="bold">
<select name="select2">
<option value="w">Девушку</option>
<option value="m" selected="selected">Мужчину</option>
<option value="mw">Пару М+Ж</option>
<option value="mm">Пару М+М</option>
</select>
</span></td>
<td width="275"><input name="textfield3" type="text" size="8" maxlength="2" />
-
<input name="textfield22" type="text" size="8" maxlength="2" />
лет </td>
</tr>
<tr>
<td height="35" colspan="2">Где: </td>
<td>&nbsp;</td>
</tr>
<tr>
<td height="58" colspan="2" valign="top"><table width="100%" border="0" cellpadding="0">
<tr>
<td> <?php echo country() ?></td>
</tr>
<tr>
<td><span id="error_8"></span> <div id="region" ></div></td>
</tr>
<tr>
<td><span id="error_9"></span><div id="city" ></div> </td>
</tr>
</table></td>

<td valign="top" style="text-align:left" height="100">
<input type="submit" name="Submit" value="Искать!" />

</td>
</tr>

<tr>
<td colspan="3"><form id="form3" name="form3" method="post" action="">
<input type="checkbox" name="checkbox" value="checkbox" />
С фотографией
</td>
</tr>
</table></form>
И функцию маленько поправил, в дефолтных:

PHP
function selected($id,$fileds)
{
if(isset(
$_SESSION['login']))
$res mysql_query("SELECT `".$fileds."` FROM`".PREFIX."user` 
WHERE `login`='"
.magic_off($_SESSION['login'])."'");
if(
$res)
    if(
mysql_result($res,0) == $id)
    return 
'selected="selected"';
}



Спустя 11 минут, 11 секунд (23.03.2009 - 01:08) lira1 написал(а):
Цитата
Совершенно просто, но мне лично не понравилось. Слишком суетно... Если нужно, конечно сделаем, только мне кажется нужно как то поинтересней придумать...


Когда уже для меня все это будет просто sad.gif

Спустя 13 минут, 15 секунд (23.03.2009 - 01:21) lira1 написал(а):
не ставится число
селекты проставила переменную тоже

Спустя 11 минут, 52 секунды (23.03.2009 - 01:33) twin написал(а):
Ага, мой косяк, echo заспал. unsure.gif Надо так:
HTML
<option <?php echo selected(1,'day') ?> value="1">1</option>
<option <?php echo selected(2,'day') ?> value="2">2</option>

Спустя 13 минут, 54 секунды (23.03.2009 - 01:47) lira1 написал(а):
Цитата
Ага, мой косяк, echo заспал. unsure.gif Надо так:
HTML
<option <?php echo selected(1,'day') ?> value="1">1</option>
<option <?php echo selected(2,'day') ?> value="2">2</option>



Да, а я куда смотрю...Видемо спать пора biggrin.gif
До завтра

Спустя 55 минут, 30 секунд (23.03.2009 - 02:43) twin написал(а):
Ну сделал я города. селект с числами свой поставь, остальное работает. Сложность вот в чем - нужно запустить все три функции селектов по очереди и плюс аяксом, иначе нельзя будет выбрать. А по очереди, потому что они взаимосвязаны и сразу не выбрать нужный диапазон. По этому я повешал аякс на картинки, которые запускают функции по очереди, после подгрузки. Картинку (прозрачная гифка 1х1 px) я положил, не выбрасывай. Можешь сунуть куда хочешь. Сюда расписывать не стал, возьми в архиве. Единственно что нужно сделать - изменить таблицу. И порядок вывода теперь немного другой. В таблицу надо писать номера, а не названия городов. И регион тоже нужно писать. Вот таблица:
Свернутый текст
SQL
CREATE TABLE `strana_user` (
`id` int(11) NOT NULL auto_increment,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`login` varchar(250) default NULL,
`password` varchar(32) default NULL,
`email` varchar(250) default NULL,
`sex` enum('m','w') default NULL,
`name` varchar(250) default NULL,
`day` int(2) unsigned zerofill default NULL,
`month` int(2) unsigned zerofill default NULL,
`year` enum('1992','1991','1990','1989','1988','1987','1986','1985','1984','1983','1982','1981','1980','1979','1978','1977','1976','1975','1974','1973','1972','1971','1970','1969','1968','1967','1966','1965','1964','1963','1962','1961','1960','1959','1958','1957','1956','1955','1954','1953','1952','1951','1950','1949','1948','1947','1946','1945','1944','1943','1942','1941','1940','1939','1938','1937','1936','1935') default NULL,
`country` int(5) default NULL,
`region` int(5) default NULL,
`sity` int(5) default NULL,
`code` varchar(32) default NULL,
`active` enum('0','1') default NULL,
`pagename` varchar(100) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;


Спустя 8 часов, 17 минут, 23 секунды (23.03.2009 - 11:00) lira1 написал(а):
все работает. сейчас задача сохранить измененные данные

Спустя 58 минут, 32 секунды (23.03.2009 - 11:59) twin написал(а):
Ну дык давай решать, раз стоит... задача. Ты запрос поправила?

Спустя 26 минут, 36 секунд (23.03.2009 - 12:25) lira1 написал(а):
Цитата
Ну дык давай решать, раз стоит... задача. Ты запрос поправила?


Не понимаю я
PHP
$insert "UPDATE `".PREFIX."ancet` SET ".implode(", ",$set)" WHERE `pagename`='".magic_off($_GET['pagename'])."'"
    
$sql mysql_query($insert);
    }

Спустя 24 минуты, 27 секунд (23.03.2009 - 12:50) twin написал(а):
Ну как не понимаешь? Пора уже. А то придется меня на работу брать biggrin.gif . Всё правильно, только нюансик. Ты принадлежность определяешь по названию странички, то есть тот кто знает название может спокойно исправить чужую запись. А надо разрешить только хозяину. Хозяина сервер узнаёт по сессионным переменным, по этому нужно WHERE для чего нибудь из сессии, логина или id юзера, я уж не помню что у нас там есть.

Спустя 1 час, 35 минут, 34 секунды (23.03.2009 - 14:25) lira1 написал(а):
PHP
<?
if(isset(
$_POST['ok']) && $_SESSION['login'])
{

$set[] = "`pagename`='".magic_off($_GET['pagename'])."'";
    foreach(
$_POST as $fileds => $value)
    if(
$fileds !== "ok" && $value)
        
$set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

    
$insert "UPDATE `".PREFIX."ancet` SET ".implode(", ",$set)"`login`='".magic_off($_SESSION['login'])."'";
    
$sql mysql_query($insert);
    }

Спустя 23 минуты, 40 секунд (23.03.2009 - 14:49) twin написал(а):
Здоровска. Как на качелях. Теперь опять WHERE потеряла biggrin.gif

Спустя 47 минут, 53 секунды (23.03.2009 - 15:37) lira1 написал(а):
PHP
$insert "UPDATE `".PREFIX."ancet` SET ".implode(", ",$set)." WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql mysql_query($insert);

Спустя 3 минуты, 47 секунд (23.03.2009 - 15:41) twin написал(а):
Вооот. Молодца. Вот теперь тебя хвалю я, вот теперь тебя люблю я. biggrin.gif Ну и редирикт в этот блок на шоу, и все как у чемпиёна получится.

Спустя 8 минут, 43 секунды (23.03.2009 - 15:49) lira1 написал(а):
smile.gif
Цитата
Ну и редирикт в этот блок на шоу, и все как у чемпиёна получится.



Я пыталась.
header("location: ".DOMEN."/my/show/".$_GET['pagename']);

Спустя 4 минуты, 43 секунды (23.03.2009 - 15:54) twin написал(а):
И что он сказал? Вот так пыталась?
PHP
<?
if(isset(
$_POST['ok']) && $_SESSION['login'])
{

$set[] = "`pagename`='".magic_off($_GET['pagename'])."'";
    foreach($_POST as $fileds => $value)
    if($fileds !== "ok" && $value)
        $set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

    $insert = "UPDATE `".PREFIX."ancet` SET ".implode(", ",$set)"`login`='".magic_off($_SESSION['login'])."'";
    $sql = mysql_query($insert);
header("location: ".DOMEN."/my/show/".$_GET['pagename']);
exit();
}
Кстати, после редирикта лучше ставить exit() что бы не гонять за зря скрипт.

Спустя 7 минут, 23 секунды (23.03.2009 - 16:01) lira1 написал(а):
Нет, не так.
У нас там еще много кода
Свернутый текст
PHP
if(isset($_POST['ok']) && $_SESSION['login'])
{

$set[] = "`pagename`='".magic_off($_GET['pagename'])."'";
    foreach(
$_POST as $fileds => $value)
    if(
$fileds !== "ok" && $value)
        
$set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

$insert "UPDATE `".PREFIX."ancet` SET ".implode(", ",$set)." WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql mysql_query($insert);
}

$query "SELECT * FROM `".PREFIX."ancet` WHERE `pagename`='".magic_off($_GET['pagename'])."'";
$sql mysql_query($query)or die(mysql_error());  
if(
$sql)
{
$row mysql_fetch_assoc($sql);
    if(
$row)
    {
    
$row array_map("htmlspecialchars",$row);

$obomne $row['obomne'];
$child $row['child'];
$marriage $row['marriage'];
$children $row['children'];
$growth $row['growth'];
$weight $row['weight'];
$trade $row['trade'];
$formation1 $row['formation1'];
$dohod $row['dohod'];
$live $row['live'];
$avto $row['avto'];
$smoke $row['smoke'];
$alcohol $row['alcohol'];
$liveplace $row['liveplace'];

$findsex $row['findsex'];
$findageot $row['findageot'];
$findagedo $row['findagedo'];
$love $row['love'];
$family $row['family'];
$guestmarriage $row['guestmarriage'];
$findgrowth0 $row['findgrowth0'];
$findgrowth1 $row['findgrowth1'];
$findweight0 $row['findweight0'];
$findweight1 $row['findweight1'];
$findlook $row['findlook'];
$formation $row['formation'];
$home $row['home'];
$lastr lastr_age($findagedo);

header("location: ".DOMEN."/my/show/".$_GET['pagename']);
exit();
}
}

Спустя 10 минут, 37 секунд (23.03.2009 - 16:12) lira1 написал(а):
Вот у меня это фигня то вылазит, то не вылазит

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 12 in F:\home\test1.ru\www\strana\functions\default.php on line 131

что это вообще значит?

На одном сайте нормально работает, на втором то так то сяк, хотя код одинаковый

Спустя 6 минут, 11 секунд (23.03.2009 - 16:18) twin написал(а):
Цитата
Нет, не так.
А ты попробуй так. А код оставь, нас только этот блок интересует в данный момент. То есть когда нажата кнопка. А если не нажата, то
Цитата
У нас там еще много кода
как раз и работает.

Цитата
что это вообще значит?
У тебя функция в дефолтных так выглядет?
PHP
function selected($id,$fileds)
{
if(isset(
$_SESSION['login']))
$res = mysql_query("SELECT `".$fileds."` FROM`".PREFIX."user` 
WHERE `login`='"
.magic_off($_SESSION['login'])."'");
if(
$res)
    if(mysql_result($res,0,0) == $id)
    return 'selected="selected"';
}




ЗЫ Ну ёмаё... Посмотри что делается... Вот мамба так мамба...
Свернутый текст
Приветик,как делишки ?
Вчера приехала в ваш Город по делам на месяц, на квартире одной очень скучно, хочется пообщаться, провести время интересно, ктому же к концу той недели мне не скем будет справить день рождения...
Вот моя домашняя страничка: kiss-kiss.do.am Там мои фотки и номер мобильника (а это пароль для входа: 952).
Если позвонишь, - с удовольствием пообщаюсь с тобой!
Чмок wink.gif
Как дальше жить... Все, пошел общаться. user posted image

user posted image

Спустя 32 минуты, 51 секунда (23.03.2009 - 16:51) lira1 написал(а):
Цитата
ЗЫ Ну ёмаё... Посмотри что делается... Вот мамба так мамба...
Свернутый текст


Хорошо разводят biggrin.gif


Если делаю вот так то переход происходит, но только что от этого, если он ничего не меняет
Свернутый текст
PHP
<?
if(isset(
$_POST['ok']) && $_SESSION['login'])
{

$set[] = "`pagename`='".magic_off($_GET['pagename'])."'";
    foreach($_POST as $fileds => $value)
    if($fileds !== "ok" && $value)
        $set[] = "`".magic_off($fileds)."`='".magic_off($value)."'";

$insert = "UPDATE `".PREFIX."ancet` SET ".implode(", ",$set)." WHERE `login`='".magic_off($_SESSION['login'])."'";
$sql = mysql_query($insert);

header("location: ".DOMEN."/my/show/".$_GET['pagename']);
exit();
}

$query = "SELECT * FROM `".PREFIX."ancet` WHERE `pagename`='".magic_off($_GET['pagename'])."'";
$sql = mysql_query($query)or die(mysql_error());  
if($sql)
{
$row = mysql_fetch_assoc($sql);
    if($row)
    {
    $row = array_map("htmlspecialchars",$row);

$obomne = $row['obomne'];
$child = $row['child'];
$marriage = $row['marriage'];
$children = $row['children'];
$growth = $row['growth'];
$weight = $row['weight'];
$trade = $row['trade'];
$formation1 = $row['formation1'];
$dohod = $row['dohod'];
$live = $row['live'];
$avto = $row['avto'];
$smoke = $row['smoke'];
$alcohol = $row['alcohol'];
$liveplace = $row['liveplace'];

$findsex = $row['findsex'];
$findageot = $row['findageot'];
$findagedo = $row['findagedo'];
$love = $row['love'];
$family = $row['family'];
$guestmarriage = $row['guestmarriage'];
$findgrowth0 = $row['findgrowth0'];
$findgrowth1 = $row['findgrowth1'];
$findweight0 = $row['findweight0'];
$findweight1 = $row['findweight1'];
$findlook = $row['findlook'];
$formation = $row['formation'];
$home = $row['home'];
$lastr = lastr_age($findagedo);
}
}

Спустя 3 минуты, 30 секунд (23.03.2009 - 16:54) twin написал(а):
А не меняет, это другой вопрос. Это значит, что что то нагло закралось в запрос. Где у тебя or die()? Опять всё наугад? Вот недавно студент при сдаче экзамена по латыни нечаяно вызвал дьявола. Смотри... smile.gif

Спустя 53 минуты, 22 секунды (23.03.2009 - 17:48) lira1 написал(а):
пишет нет колонки логина.
через id надо, но как через сессию

Спустя 2 часа, 19 минут, 4 секунды (23.03.2009 - 20:07) twin написал(а):
Так же как и логин. Вытаскивай из базы в файлах active.php и enter.php и прописывай в сессию.

Спустя 25 минут, 26 секунд (23.03.2009 - 20:32) HardWoman написал(а):
twin
Никуда не ходи - а то на месяц пропадешь:)smile.gif На тебя уже ставки делают - 10000 сообщений на топ user posted image

Спустя 7 минут, 11 секунд (23.03.2009 - 20:40) lira1 написал(а):
Что вот это значит?

http://test1.ru/strana/my/edit/280983?tel=...%B8%D1%82%D1%8C

Хотя должно на show_ancet переходить

Спустя 10 минут, 55 секунд (23.03.2009 - 20:50) lira1 написал(а):
Цитата
На тебя уже ставки делают - 10000 сообщений на топ user posted image


Я на 1000 сообщений умру. А вы 10000. Может просмотров?!

Спустя 17 секунд (23.03.2009 - 20:51) twin написал(а):
Цитата
На тебя уже ставки делают
А где? Я пойду поставлю biggrin.gif

А это значит, что форма у тебя не в проядке. Передача идет методом GET. Это бывает когда метод не указан или указан с ошибкой.


PS А ты рeврайт в .htaccess прописала?

Спустя 17 минут, 4 секунды (23.03.2009 - 21:08) lira1 написал(а):
Вот это

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 16 in F:\home\test1.ru\www\strana\functions\default.php on line 131

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

Спустя 4 минуты, 35 секунд (23.03.2009 - 21:12) twin написал(а):
А на какой странице то?

Цитата
Я на 1000 сообщений умру.
Чёт раненько засобиралась biggrin.gif Уже больше 700 biggrin.gif smile.gif А конца unsure.gif края не видно biggrin.gif

Спустя 4 минуты, 39 секунд (23.03.2009 - 21:17) lira1 написал(а):
Цитата
PS А ты рeврайт в .htaccess прописала?


Вот так прописывала
RewriteRule ^my/edit/(.+)$ index.php?page=my&ancet=edit&pagename=$1 [L]
RewriteRule ^my/editname/(.+)$ index.php?page=my&ancet=editname&pagename=$1 [L]



Спустя 34 секунды (23.03.2009 - 21:18) lira1 написал(а):
Цитата
Чёт раненько засобиралась biggrin.gif Уже больше 700 biggrin.gif smile.gif А конца unsure.gif края не видно biggrin.gif


ohmy.gif До моей пенсии писать будем? blink.gif

Хотя возможно, в связи с тем что одну страницу в день, пока я ошибки найду, она и настанет.

Спустя 4 минуты, 5 секунд (23.03.2009 - 21:22) lira1 написал(а):
Цитата
А на какой странице то?

на регистрации и главной иногда

Спустя 9 минут (23.03.2009 - 21:31) lira1 написал(а):
Как сессии прописать
PHP
query "SELECT `id` FROM `".PREFIX."ancet` WHERE  `pagename`='".magic_off($pagename)."'";
$sql mysql_query($query)or die(mysql_error());    
    if(
$sql)
    {        
    
$_SESSION['id'] = mysql_result($sql,0,'id');

Спустя 25 минут, 7 секунд (23.03.2009 - 21:56) twin написал(а):
Правильно прописала. Вот так по чаще и пенсия отодвинется biggrin.gif . С багой не пойму что такое, у меня такой нету. Поставь пока собаку, потом попробую отловить. Только не забудь напомнить. Реврайт тоже правильно. Значит что то с формой.

Спустя 24 минуты, 17 секунд (23.03.2009 - 22:20) lira1 написал(а):
Цитата
Значит что то с формой.


Нет, это я как то не так id добавляю
в enter и active
Свернутый текст
PHP
if(isset($_POST['Submit']) && isset($_POST['login']) && isset($_POST['password'])) 

$res mysql_query("SELECT `id`,`pagename` FROM `".PREFIX."user` 
WHERE `login`='"
.magic_off($_POST['login'])."' 
AND `password`='"
.md5($_POST['password'])."'");   
    if(
$res)
    { 
        if(
mysql_num_rows($res) !== 0)  
        {  
        
$_SESSION['login'] = $_POST['login'];
        
$_SESSION['pagename'] = mysql_result($res,0,'pagename');   
        
$_SESSION['id'] = mysql_result($res,0,'id');  
        if(isset(
$_POST['autologin']))  
            {
            
$code md5(mysql_result($res,0,'id').rand_str());  
            
setcookie('code',$codetime()+3600*24*30*3,"/");
            
mysql_query("UPDATE `".PREFIX."user` SET `code`='".$code."' WHERE `id`='".$id."'");   
            }
        
header("location: ".DOMEN."/my/show/".$_SESSION['pagename']);      
        }
    }  
$query "SELECT `id` FROM `".PREFIX."ancet` WHERE  `pagename`='".magic_off($pagename)."'";
$sql mysql_query($query)or die(mysql_error());    
    if(
$sql)
    {        
    
$_SESSION['id'] = mysql_result($sql,0,'id');

    }
}


Свернутый текст
PHP
if(isset($_GET['id']) && isset($_SESSION['pusk']))
{
unset(
$_SESSION['pusk']);

$query "SELECT `email`, `name` FROM `".PREFIX."user` WHERE `id`='".(int)$_GET['id']."'";
$sql mysql_query($query)or die(mysql_error());
$row mysql_fetch_assoc($sql);
$email $row['email'];
$name HELLO.$row['name'];
}
if(isset(
$_POST['Submit'])) 
{
$code = isset($_POST['code'])?$_POST['code']:NULL;
mysql_query("UPDATE `".PREFIX."user` SET `active`='1'
    WHERE `code`='"
.magic_off($code)."'")   
   or die(
mysql_error()); 
    if(isset(
$_POST['autologin']))
    
setcookie('code',$codetime()+3600*24*30*3,"/");

$query "SELECT `login`, `pagename` FROM `".PREFIX."user` WHERE  `code`='".magic_off($code)."'";
$sql mysql_query($query)or die(mysql_error());    
    if(
$sql)
    {        
    
$_SESSION['login'] = mysql_result($sql,0,'login');
    
header("location: ".DOMEN."/my/new/".mysql_result($sql,0,'pagename'));
    exit();
    }
    
$query "SELECT `id` FROM `".PREFIX."ancet` WHERE  `pagename`='".magic_off($pagename)."'";
$sql mysql_query($query)or die(mysql_error());    
    if(
$sql)
    {        
    
$_SESSION['id'] = mysql_result($sql,0,'id');
    }
}


Посмотри где ошибка, плиз

Спустя 13 минут, 13 секунд (23.03.2009 - 22:33) twin написал(а):
Вот это:
PHP
$query "SELECT `id` FROM `".PREFIX."ancet` WHERE  `pagename`='".magic_off($pagename)."'";
$sql mysql_query($query)or die(mysql_error());    
    if(
$sql)
    {        
    
$_SESSION['id'] = mysql_result($sql,0,'id');

    }
совсем убери, и верхний пойдет. А в нижнем тоже убери, и поставь так:

PHP
$_SESSION['id'] = mysql_result($res,0,'id');
    
$_SESSION['login'] = mysql_result($sql,0,'login');
    
header("location: ".DOMEN."/my/new/".mysql_result($sql,0,'pagename'));

Спустя 13 минут (23.03.2009 - 22:46) lira1 написал(а):
Нет, так не идет
Сессию id ведь надо из strana_ancet

Спустя 7 минут, 18 секунд (23.03.2009 - 22:54) twin написал(а):
Цитата
Сессию id ведь надо из strana_ancet
Да не надо. У тебя же больше штуки в руки не давать. То есть в поле id_user таблицы с анкетой будет айдишник из таблицы с юзерами. это специально для связки мы туда твоей заботливой рукой прописали. Теперь можно юзера идентифицировать по паролю, узнать его id, и по нему искать нужную запись в таблице с анкетами.

Спустя 16 минут, 17 секунд (23.03.2009 - 23:10) lira1 написал(а):
Цитата
поле id_user

Дак мы поле id_user убрали, у нас pagename сейчас

Спустя 11 минут, 20 секунд (23.03.2009 - 23:21) twin написал(а):
Блин, я все позабыл и тебе голову дурю... Хотя ты сама про id написала... Ну дык тогда по нему и определяй. Только не из GET, как у тебя раньше было, а из сессии. Чтоб другим было недоступно.

Спустя 5 минут, 24 секунды (23.03.2009 - 23:27) lira1 написал(а):
Цитата
Блин, я все позабыл и тебе голову дурю... Хотя ты сама про id написала... Ну дык тогда по нему и определяй. Только не из GET, как у тебя раньше было, а из сессии. Чтоб другим было недоступно.


Дак по нему не получается. id в таблицах разные. ( в таблице ancet не как не отражается id из user) По сессии pagename нормально определяет по id не хочет

Спустя 5 минут, 32 секунды (23.03.2009 - 23:32) twin написал(а):
Ты не поняла. Вот у тебя было так:
PHP
$insert "UPDATE `".PREFIX."ancet` SET ".implode(", ",$set)" WHERE `pagename`='".magic_off($_GET['pagename'])."'";
То есть если просто набрать в адресной строке my/edit/katia, то можно спокойно Катю отредактировать. smile.gif А Катя у нас девочка порядочная, по этому нужно доступ только из сессии:
PHP
$insert "UPDATE `".PREFIX."ancet` SET ".implode(", ",$set)" WHERE `pagename`='".magic_off($_SESSION['pagename'])."'";

Спустя 31 минута, 26 секунд (24.03.2009 - 00:04) lira1 написал(а):
У меня по плану повешаться.
Только что все заменялось, щас опять ничего не меняет

Спустя 3 минуты, 46 секунд (24.03.2009 - 00:07) Bezdna написал(а):
Цитата (lira1 @ 23.03.2009 - 21:04)
У меня по плану повешаться.


Вот этого не надо - на тебя весь форум с надеждой смотрит. Не подведи нас. biggrin.gif

Спустя 5 минут, 45 секунд (24.03.2009 - 00:13) twin написал(а):
Цитата
У меня по плану повешаться.
Можнно. Только за ноги. За шею я пробовал - дышать нечем. А так кровь к голове прихЛЫЫЫЫНет и все получится. Ты проверяй переменную, яж тебе показывал как.
PHP
echo "pagename => ".$_SESSION['pagename'];

И or die в запрос. тогда ясно станет почему.

Спустя 6 минут, 49 секунд (24.03.2009 - 00:20) twin написал(а):
а тут точки не хватает...
PHP
"SET ".implode(", ",$set)" WHERE"

PHP
"SET ".implode(", ",$set)." WHERE"

Спустя 4 минуты, 17 секунд (24.03.2009 - 00:24) lira1 написал(а):
Про точку я знаю
Он сейчас что то добавляет, что то нет. Это с чем связано?

Спустя 12 минут, 40 секунд (24.03.2009 - 00:37) twin написал(а):
Это связано с тем, что ты опять не делаешь трассировку. mad.gif Поставь первой строчкой
PHP
print_r($_POST);
и смотри, все данные на месте, поля совподают ли с таблицей и т.д.

Спустя 48 минут, 5 секунд (24.03.2009 - 01:25) twin написал(а):
Да. Нужно перед внесением данных в базу обнулить все такие поля. Сделай для них
PHP
"UPDATE ... SET `sex`='' ...."
Хотя погоди, сейчас по другому сделаем

Спустя 11 минут, 23 секунды (24.03.2009 - 01:36) twin написал(а):
Наверное тут лучше написать простой запрос, в лоб, что бы не делать два.
Вместо
PHP
"...SET ".implode(", ",$set)...<
пропиши поля явно:
PHP
"...SET `find`='".$find."', ..."
и инициализацию переменных можно в vars.php вынести, только смотри, чтоб он был подключен.

Спустя 58 минут, 30 секунд (24.03.2009 - 02:35) HardWoman написал(а):
Цитата
Я на 1000 сообщений умру. А вы 10000. Может просмотров?!


А ты смотрел сколько уже ответов в теме? До конца как видно еще далеко. так что не подведи меня я поставила на 10000 - другие меньше -2, 4, 6, 7

У меня есть шанс заработать 4000. smile.gifsmile.gif

Спустя 4 часа, 59 минут, 52 секунды (24.03.2009 - 07:35) twin написал(а):
Цитата
До конца как видно еще далеко.
Вообще, это по определению невозможно закончить, это можно только прекратить. biggrin.gif

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

Спустя 3 часа, 35 минут, 11 секунд (24.03.2009 - 11:10) lira1 написал(а):
Сейчас он все обнуляет, и не выводит то что было отмечено/
трассировку делала данные он в массив заносит, но до базы они не доходят
Свернутый текст
PHP
echo "pagename => ".$_SESSION['pagename'];
print_r($_POST);
if(isset(
$_POST['ok']) && $_SESSION['login'])
{
$insert  = "UPDATE `".PREFIX."ancet` SET `icq`='".$icq ."',`tel`='".$tel ."',`obomne`='".$obomne ."',`findw`='".$findw ."',
 `findm`='"
.$findm ."', `findmm`='".$findmm ."', `findww`='".$findww ."', `findmw`='".$findmw ."',
  `findageot`='"
.$findageot ."',`findagedo`='".$findagedo ."', `who`='".$who ."',`regsex`='".$regsex ."',
`sexone`='"
.$sexone ."', `groupsex`='".$groupsex ."', `virtsex`='".$virtsex ."', `predsexmoney`='".$predsexmoney ."',
`findsexmoney`='"
.$findsexmoney ."',`findlook`='".$findlook ."', `brak`='".$brak ."', `children`='".$children ."',
`growth`='"
.$growth ."',`weight`='".$weight ."',`dohod`='".$dohod ."',`orientation`='".$orientation ."'
 WHERE `pagename`='"
.magic_off($_SESSION['pagename'])."'";

 $sql = mysql_query($insert)or die(mysql_error()); 
header
("location: ".DOMEN."/my/show/".$_GET['pagename']);
exit();
}

$query = "SELECT * FROM `".PREFIX."ancet` WHERE `pagename`='".magic_off($_GET['pagename'])."'";
$sql = mysql_query($query)or die(mysql_error());  
if($sql)
{
$row = mysql_fetch_assoc($sql);
    if($row)
    {
    $row = array_map("htmlspecialchars",$row);

$icq = $row['icq'];
$tel = $row['tel'];
$obomne = $row['obomne'];
$findw = $row['findw'];
$findm = $row['findm'];
$findmm = $row['findmm'];
$findww = $row['findww'];
$findmw = $row['findmw'];
$findageot = $row['findageot'];
$findagedo = $row['findagedo'];
$who = $row['who'];
$regsex = $row['regsex'];
$sexone = $row['sexone'];    
$groupsex 
= $row['groupsex'];
$virtsex = $row['virtsex'];
$predsexmoney = $row['predsexmoney'];
$findsexmoney = $row['findsexmoney'];
$findlook = $row['findlook'];
$brak = $row['brak'];
$children = $row['children'];
$growth = $row['growth'];
$weight = $row['weight'];
$dohod = $row['dohod'];
$orientation = $row['orientation'];
}
}


Свернутый текст

Array ( [tel] => 4565 [icq] => 400902627 [obomne] => тест [findw] => 1 [findm] => 1 [findmw] => 1 [findmm] => 1 [findww] => 1 [who] => 4 [findageot] => 18 [findagedo] => 48 [regsex] => 1 [sexone] => 1 [groupsex] => 1 [virtsex] => 1 [predsexmoney] => 1 [findsexmoney] => 1 [findlook] => тест [brak] => 1 [children] => 1 [growth] => 176 [weight] => 66 [dohod] => 1 [orientation] => 1 [ok] => Сохранить )

Спустя 31 минута, 19 секунд (24.03.2009 - 11:41) twin написал(а):
А инициализецию переменных сделала?
И пиши пожалуйста в столбик, так читать удобнее
PHP
$insert  "UPDATE `".PREFIX."ancet` SET 
`icq`='"
.$icq ."',
`tel`='"
.$tel ."',
`obomne`='"
.$obomne ."',
`findw`='"
.$findw .

Спустя 2 минуты, 18 секунд (24.03.2009 - 11:43) lira1 написал(а):
да
Свернутый текст
PHP
$icq = isset($_POST['icq'])?$_POST['icq']:NULL;
$tel = isset($_POST['tel'])?$_POST['tel']:NULL;
$obomne = isset($_POST['bomne'])?$_POST['bomne']:NULL;
$findw = isset($_POST['findw'])?$_POST['findw']:NULL;
$findm = isset($_POST['findm'])?$_POST['findm']:NULL;
$findmm = isset($_POST['findmm'])?$_POST['findmm']:NULL;
$findww = isset($_POST['findww'])?$_POST['findww']:NULL;
$findmw = isset($_POST['findmw'])?$_POST['findmw']:NULL;
$findageot = isset($_POST['findageot'])?$_POST['findageot']:NULL;
$findagedo = isset($_POST['findagedo'])?$_POST['findagedo']:NULL;
$who =  isset($_POST['who'])?$_POST['who']:NULL;
$regsex =  isset($_POST['regsex'])?$_POST['regsex']:NULL;
$sexone =  isset($_POST['sexone'])?$_POST['sexone']:NULL;
$groupsex =  isset($_POST['groupsex'])?$_POST['groupsex']:NULL;
$virtsex =  isset($_POST['virtsex'])?$_POST['virtsex']:NULL;
$predsexmoney =  isset($_POST['predsexmoney'])?$_POST['predsexmoney']:NULL;
$findsexmoney =  isset($_POST['findsexmoney'])?$_POST['findsexmoney']:NULL;
$findlook =  isset($_POST['findlook'])?$_POST['findlook']:NULL;
$brak =  isset($_POST['brak'])?$_POST['brak']:NULL;
$children =  isset($_POST['children'])?$_POST['children']:NULL;
$growth =  isset($_POST['growth'])?$_POST['growth']:NULL;
$weight =  isset($_POST['weight'])?$_POST['weight']:NULL;
$dohod =  isset($_POST['dohod'])?$_POST['dohod']:NULL;
$orientation =  isset($_POST['orientation'])?$_POST['orientation']:NULL;

Спустя 4 минуты, 37 секунд (24.03.2009 - 11:48) lira1 написал(а):
Свернутый текст
PHP
if(isset($_POST['ok']) && $_SESSION['login'])
{
$insert  "UPDATE `".PREFIX."ancet` SET 
`icq` = '"
.$icq."',
`tel` = '"
.$tel."',
`obomne` = '"
.$obomne."',
`findw` = '"
.$findw."',
`findm` = '"
.$findm."', 
`findmm` = '"
.$findmm."', 
`findww` = '"
.$findww."', 
`findmw` = '"
.$findmw."',
`findageot` = '"
.$findageot."',
`findagedo` = '"
.$findagedo."',
`who` = '"
.$who."',
`regsex` = '"
.$regsex."',
`sexone` = '"
.$sexone."',
`groupsex` = '"
.$groupsex."',
`virtsex` = '"
.$virtsex."',
`predsexmoney` = '"
.$predsexmoney."',
`findsexmoney` = '"
.$findsexmoney."',
`findlook` = '"
.$findlook."',
`brak` = '"
.$brak."',
`children` = '"
.$children."',
`growth` = '"
.$growth."',
`weight` = '"
.$weight."',
`dohod` = '"
.$dohod."',
`orientation` = '"
.$orientation."'
WHERE `pagename`='"
.magic_off($_SESSION['pagename'])."'";

Спустя 3 минуты, 2 секунды (24.03.2009 - 11:51) lira1 написал(а):
$obomne = isset($_POST['obomne'])?$_POST['obomne']:NULL;
Тут ошибка

На форуме как то лучше подстветка, красная.


Спустя 24 минуты, 46 секунд (24.03.2009 - 12:16) twin написал(а):
Если тебе нравится подсветка как на форуме, первой строчкой скрипта можешь написать это:
PHP
echo "<pre>".highlight_string(file_get_contents(__FILE__),true)."</pre>";
и смотреть как выглядет твой файл.
Ошибок вроде не нашел, должно работать. Проверь еще $_SESSION['login']

Спустя 43 минуты, 11 секунд (24.03.2009 - 12:59) lira1 написал(а):
Цитата
Ну вот, добрались до вкусного. Каким образом это происходит, опиши алгоритм. Как и когда добавляются, на какой странице, что потом с ними происходит, вобщем как можно подробнее. А то мы опять будем из пустого в порожнее переливать.


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

Спустя 21 минута, 34 секунды (24.03.2009 - 13:21) twin написал(а):
Цитата
плохо, то что чтобы что-то поменять, нужно выйти и войти
Так быть не должно, что то не так...
Войти точно нужно, если автологина нету, а вот выходить не надо. Где то косяк имеется...

Спустя 3 минуты, 19 секунд (24.03.2009 - 13:24) twin написал(а):
Цитата
короче как на мамбе
Я на мамбу больше не ходун!!!! Чуть не порвали... biggrin.gif
Давай тогда рисуй страницу с альбомом и форму загрузки фотки.

Спустя 6 минут, 8 секунд (24.03.2009 - 13:30) lira1 написал(а):
Цитата
ак быть не должно, что то не так...
Войти точно нужно, если автологина нету, а вот выходить не надо. Где то косяк имеется...


Ну там как. Pagename после регистрации не проставляется, а проставляется после входа. Ну а чтоб войти нужно выйти

Спустя 9 минут, 20 секунд (24.03.2009 - 13:39) lira1 написал(а):
Как сделать чтоб в меню после авторизации. Появлялась ссылка моя страница. ссылка войти пропадала?

Спустя 7 минут, 9 секунд (24.03.2009 - 13:47) twin написал(а):
Если у тебя так:
PHP
<?php

if(isset($_GET['exit'])) 

unset(
$_SESSION['login']); 
session_destroy(); 
setcookie('code',''time()-3600*24,"/"); 
header("location: ".DOMEN);
exit();


if(isset(
$_POST['Submit']) && isset($_POST['login']) && isset($_POST['password'])) 

$res mysql_query("SELECT `id`,`pagename` FROM `".PREFIX."user` 
WHERE `login`='"
.magic_off($_POST['login'])."' 
AND `password`='"
.md5($_POST['password'])."'");   
    if(
$res)
    { 
        if(
mysql_num_rows($res) !== 0)  
        {  
        
$_SESSION['login'] = $_POST['login'];
        
$_SESSION['pagename'] = mysql_result($res,0,'pagename');   
          
$_SESSION['id_user'] = mysql_result($res,0,'id');
            if(isset(
$_POST['autologin']))  
            {
            
$code md5(mysql_result($res,0,'id').rand_str());  
            
setcookie('code',$codetime()+3600*24*30*3,"/");
            
mysql_query("UPDATE `".PREFIX."user` SET `code`='".$code."' WHERE `id`='".$id."'");   
            }
        
header("location: ".DOMEN."/my/show/".$_SESSION['pagename']);      
        }
    }  
}


то должен быть переход после авторизации. Не должна форма вернуться.

Спустя 5 минут, 9 секунд (24.03.2009 - 13:52) twin написал(а):
Цитата
Как сделать чтоб в меню после авторизации. Появлялась ссылка моя страница. ссылка войти пропадала?
В главном индексе выше меню напиши это:

PHP
if(!$_SESSION['pagename'])
$link_exit ='<a  href="'.DOMEN.'/registr/enter">Войти</a>';
else 
$link_exit 
='<a href="'.DOMEN.'/registr/exit">Выйти</a>';
А в самом меню вместо ссылок выведи эту переменную

Спустя 1 час, 33 минуты, 12 секунд (24.03.2009 - 15:25) lira1 написал(а):
Цитата
Как сделать чтоб в меню после авторизации. Появлялась ссылка моя страница. ссылка войти пропадала?
В главном индексе выше меню напиши это:

PHP
if(!$_SESSION['pagename'])
$link_exit ='<ahref="'.DOMEN.'/registr/enter">Войти</a>';
else
$link_exit ='<a href="'.DOMEN.'/registr/exit">Выйти</a>';
А в самом меню вместо ссылок выведи эту переменную


Это сейчас сделаю
A тут архив с формами фото

Спустя 17 минут (24.03.2009 - 15:42) lira1 написал(а):
Цитата
$link_exit ='<ahref="'.DOMEN.'/registr/enter">Войти</a>';
else
$link_exit ='<a href="'.DOMEN.'/registr/exit">Выйти</a>';


А как чтоб еще ссылка на мою страницу появлялась? Как саму ссылку написать, алгоритм понятен

Спустя 22 минуты, 23 секунды (24.03.2009 - 16:04) twin написал(а):
Цитата
Как саму ссылку написать, алгоритм понятен
как то так:
PHP
$my_page = '<a href="'.DOMEN.'/my/show/'.$_SESSIN['pagename'].'">Моя страница</a>';
<?
Только русские буквы в константы нужно вынести.

Спустя 2 часа, 23 минуты, 36 секунд (24.03.2009 - 18:28) lira1 написал(а):
Цитата
$link_exit ='<ahref="'.DOMEN.'/registr/enter">Войти</a>';
else
$link_exit ='<a href="'.DOMEN.'/registr/exit">Выйти</a>';


Как разделить несколько условий else ?

Спустя 37 минут, 13 секунд (24.03.2009 - 19:05) twin написал(а):
Так, замечательно. Одна ошибочка, ты два раза подключила файл с классом Zodiac в индексе анкеты. Это вызовет конфликт. Нужно аккуратнее с этим. А если не уверена и теряешься в логике, то лучше использовать не include() а include_once(); Это тоже самое, но исключает повторное подключение. Теперь вопросы:
1. Максимальное количество фотографий ограничено?
2. Ты явно форму где то стырила, я бы не советовал разрешать грузить файлы весом 10mb, иначе скоро на хостинге не останется места. Да и ограничение может быть у хостера. 500kb вполне достаточно. Или сделать 10mb?
3. Зачем файлы с расширением TIFF и BMP? Для них нужно сочинять конвертор, все равно браузер в чистом виде их не распознает. Конвертор будем делать или пусть просто картинки грузят?
Думай, я пока классик сочиню для загрузки.

Спустя 7 минут, 15 секунд (24.03.2009 - 19:12) twin написал(а):
Цитата
Как разделить несколько условий else ?
Есть такая конструкция elseif()
PHP
if($_SESSION['pagename'])
$link_exit ='<a href="'.DOMEN.'/registr/exit">Выйти</a>'; 
elseif(isset($_SESSION['blue'])) 
$link_exit 
='Уйди, протииивный...';
else
$link_exit ='<ahref="'.DOMEN.'/registr/enter">Войти</a>';
их может быть сколько угодно, если какое то условие выполнится, дальше ничего выполняться не будет.

Спустя 1 час, 14 минут, 6 секунд (24.03.2009 - 20:26) lira1 написал(а):
Цитата
2. Ты явно форму где то стырила, я бы не советовал разрешать грузить файлы весом 10mb, иначе скоро на хостинге не останется места. Да и ограничение может быть у хостера. 500kb вполне достаточно. Или сделать 10mb?


Да, эту форму стырила, признаюсь. Да 10 это уже слишком, 500 kb наверное мало, так многие не умеют фотки обрезать и уменьшать. Лучше неограниченное кол-во. А чтоб несколько фоток загружать одновременно, аякс нужен?
С расширениями оставим только jpeg

Спустя 1 минута, 21 секунда (24.03.2009 - 20:28) lira1 написал(а):
Цитата
их может быть сколько угодно, если какое то условие выполнится, дальше ничего выполняться не будет.

А чтоб несколько условий однавременно?
Ине нужно чтоб при входе, выходило мои сообщения, мои настройки, моя страница. Вот такого плана.

Спустя 43 минуты, 55 секунд (24.03.2009 - 21:12) twin написал(а):
Цитата
Да, эту форму стырила, признаюсь.
Аяяяяй. В угол поставлю. smile.gif Аякс не нужен, нужно просто несколько полей, что бы несколько сразу загрузить. Делай новую форму.

Цитата
Ине нужно чтоб при входе, выходило мои сообщения, мои настройки, моя страница. Вот такого плана.

Ну а я ведь не зря меню вынес в отдельный файл. Что бы сделать его динамическим. Щас с фотками разберемся и сделаем красиво.

Спустя 17 минут, 39 секунд (24.03.2009 - 21:29) lira1 написал(а):
Цитата
Аякс не нужен, нужно просто несколько полей, что бы несколько сразу загрузить. Делай новую форму.

Сделала по 3 штуки

Спустя 3 часа, 10 минут, 50 секунд (25.03.2009 - 00:40) twin написал(а):
Ну вот. Знач смотри сколько тебе забот. Сначала нужно привести в порядок форму:
HTML
<form action="" method="post" class="add" enctype="multipart/form-data">
<input name="file1" type="file">
<div>Нажмите «Обзор...» и выберите файл.</div>
</div>
<input name="file2" type="file">
<div>Нажмите «Обзор...» и выберите файл.</div>
</div>
<input name="file3" type="file">
<div>Нажмите «Обзор...» и выберите файл.</div>
</div>
Потом сделать таблицу:
SQL
CREATE TABLE `strana_photo` (
`id` int(11) NOT NULL auto_increment,
`pagename` varchar(250) default NULL,
`prew` varchar(250) default NULL,
`photo` varchar(250) default NULL,
`name` varchar(250) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

Потом файл add_foto.php
PHP
<?php

if(isset($_POST['Submit']))
{
include_once(
"functions/upload.php");

    $foto = new UpFile();
    foreach($_FILES as $fileds => $val)
    {
    ++$i;
    $foto -> New_name($_SESSION['pagename'].$i);
    $foto -> UploadDir("photo",false);
    $up = $foto -> Upload($i);

        if($up)
        {
        $set = "`photo`='".magic_off($foto -> CreateTag())."', 
        `prew`='"
.magic_off($foto -> ResizeImg(true))."',
        `name`='"
.magic_off($foto -> Filename())."',
        `pagename`='"
.magic_off($_SESSION['pagename'])."'";
    mysql_query("INSERT INTO `".PREFIX."photo` SET ".$set);
        }

    }    
}
сделать в корне директорию photo а в ней еще одну - small
Вот этот класс положить в functions в файл upload.php

Свернутый текст
PHP
<?php

class UpFile
{
    var $Arr = array(".gif",".jpg",".jpeg",".png");
    var $Name = NULL;
    var $Type = NULL;    
    var $Newdir 
= NULL;
    var $Updir = NULL;    
    var $Tag 
=  NULL;
    var $Upfile = NULL;
    var $Dir = NULL;        
        
    function New_name
($name = false)
    {
        if($name)
        $this->Name = $name."_".date("U");
        else
        $this
->Name = date("U");
        
    
}    
        
    function UploadDir
($dir,$dmn = true)
    {
        if($dmn)
        {
    $newdir = "/".$dir."/";
    $updir = "../".$dir."/";
    $this->Smal = $dir;
    $this->Dir = $updir;
    $this->Newname = $newdir.$this->Name;
    $this->Upname = $updir.$this->Name;
        }
        else
        
{
    $newdir = "/".$dir."/";        
    $this
->Dir = $dir."/";
    $this->Smal = $dir;    
    $this
->Newname = $newdir.$this->Name;
    $this->Upname = $dir."/".$this->Name;        
        
        
}
    
    
}


    function Upload($num)
    {
        if( $_FILES['file'.$num.'']['name'] && $_FILES['file'.$num.'']['error'] == 0 
        
&& $_FILES['file'.$num.'']['size'] > 0 && $_FILES['file'.$num.'']['size'] < MAX_SIZE * 1024 )
        {    
        $type 
= strrchr($_FILES['file'.$num.'']['name'], ".");
        $this->Type = $type;
            if(in_array($type, $this->Arr) )
            if(move_uploaded_file($_FILES['file'.$num.'']["tmp_name"], $this->Upname.$type))
                $this->ResizeImg();
            
        
}
        if(file_exists($this->Upname.$type))    
        return true
;
    }
    
        
    function CreateTag
()
    {
        if(is_file($this->Upname.$this->Type))
        {
        list($w,$h) = @getimagesize($this->Upname.$this->Type);
            if($w < MIN_WIDTH || $h < MIN_HEIGHT)
            {
            return "<img src=\"".DOMEN."/images/photo_small_add.gif\" width=\"46\" height=\"62\" border=\"0\" />";
            unlink($this->Upname.$this->Type);
            }
            else
            
{
        $this->Tag = "<img src=\"".DOMEN.$this->Newname.$this->Type."\" width=\"".$w."\" height=\"".$h."\" border=\"0\" />";        
        return $this
->Tag;
            }
        }
        else
        
{
        return "<img src=\"".DOMEN."/images/photo_small_add.gif\" width=\"46\" height=\"62\" border=\"0\" />";
        }            
    
}

    
    function ResizeImg
($prew = false)   
    
{ 
        
    if
($prew)
    {
    $full_sise = WIDTH_PREW;
    $filename = $this->Upname.$this->Type;
    $smallimage = $this->Dir."/small/".$this->Name.$this->Type;
    }
    else
    
{
    $full_sise = WIDTH_FULL;
    $smallimage = $filename = $this->Upname.$this->Type;
    }
     
    $w 
= $h = $full_sise;        
    $size_img 
= getimagesize($filename);
         
        if 
($size_img[0] < MIN_WIDTH || $size_img[1] < MIN_HEIGHT )
        {
        return "<img src=\"".DOMEN."/images/photo_small_add.gif\" width=\"46\" height=\"62\" border=\"0\" />"; 
        
}
        else
        
{
    $src_ratio = $size_img[0] / $size_img[1];
   
        if 
(< $src_ratio)    
        $h 
= round($full_sise / $src_ratio);    
         else     
         $w 
= round($full_sise * $src_ratio);                           

$dest_img 
= imagecreatetruecolor($w, $h);     
$white 
= imagecolorallocate($dest_img, 255, 255, 255);  
         
    if 
($size_img[2] == 2)  $src_img = imagecreatefromjpeg($filename);                         
    else if 
($size_img[2] == 1) $src_img = imagecreatefromgif($filename);                         
    else if 
($size_img[2] == 3) $src_img = imagecreatefrompng($filename); 
        
imagecopyresampled
($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);                   
   
    if 
($size_img[2] == 2)  imagejpeg($dest_img, $smallimage);                         
    else if 
($size_img[2] == 1) imagegif($dest_img, $smallimage);                         
    else if 
($size_img[2] == 3) imagepng($dest_img, $smallimage);    

imagedestroy
($dest_img);    
imagedestroy
($src_img);
    
            return 
'<img src="'.DOMEN.'/'.$this->Smal.'/small/'.$this->Name.$this->Type.'" width="'.$w.'" height="'.$h.'" border="0" >';          
        
}            
    
} 

    function Filename
()
    {    
    return $this
->Name.$this->Type;
    }
    
}
В конфигу добавить это:

PHP
# Ширина (мин)
define('MIN_WIDTH',110);
# Высота (мин)
define('MIN_HEIGHT',150);
# Максимальный вес фотографии (kb)
define('MAX_SIZE',500);
# Максимальный размер фотографии (px)
define('WIDTH_FULL',500);
# Размер превью фотографии (px)
define('WIDTH_PREW',110);
ну и пытаться всю эту хреновину запустить...

Спустя 8 часов, 1 минута, 22 секунды (25.03.2009 - 08:42) lira1 написал(а):
Все работает. Как сейчас в альбом это засунуть?
В мануле нет таких функций как в классе, ты сам их придумал?

Спустя 10 минут, 34 секунды (25.03.2009 - 08:52) twin написал(а):
Цитата
В мануле нет таких функций как в классе, ты сам их придумал?

Каких именно? Все, что начинается слвом function, это пользовательские функции, то есть придуманные специально для этого скрипта. А остальные есть в мануале.
Ну если работает, значит славненько. Теперь у тебя в таблице на каждую фотку - строчка. Сделай редирикт из этого файла на файл альбома и вытаскивай из базы все, что принадлежит этому юзеру. Вот если фоток неограниченное количество, то тогда нужно делать как минимум постраничный режим просмотра. Можно вывести в столбик, можно в строчку, а можно таблицей, по 5 рядов допустим и 5 столбиков. Как лучше?

Спустя 5 минут, 48 секунд (25.03.2009 - 08:58) lira1 написал(а):
Цитата
Вот если фоток неограниченное количество, то тогда нужно делать как минимум постраничный режим просмотра. Можно вывести в столбик, можно в строчку, а можно таблицей, по 5 рядов допустим и 5 столбиков. Как лучше?


Просмотр должен открываться в новом окне, постранично по 10 штук, вверху маленькие

Цитата
Сделай редирикт из этого файла на файл альбома и вытаскивай из базы все, что принадлежит этому юзеру.

Как сделать чтоб маленькие белые фотки автоматически заменялись загруженными?

Спустя 2 часа, 51 минута, 22 секунды (25.03.2009 - 11:49) twin написал(а):
Цитата
Просмотр должен открываться в новом окне, постранично по 10 штук, вверху маленькие
Не, вот с этого места по подробнее. Сколько маленьких, сколько больших, и вообще как это должно выглядеть? На маленькую жмешь - большая вылазит, как вот тут к примеру или сразу большие или вообще... Я себе это плохо представляю. От этого и зависит, как заменять белые фотки на нужные.

Спустя 1 час, 47 минут, 33 секунды (25.03.2009 - 13:37) twin написал(а):
Немного проясняется. Вот нужно для главной сделать такой запрос:

PHP
$pagename = isset($_GET['pagename'])?$_GET['pagename']:NULL;
$res = mysql_query("SELECT `prew` FROM `".PREFIX."photo` WHERE `pagename`='".magic_off($pagename)."' ORDER BY `id` ASC LIMIT 3");
тогда он вытащит три первые. А если вместо ASC поставить DESC, то будет три последних. Потом в цикле это дело вынуть:
PHP
if($res)
while(
$row = mysql_fench_assoc($res))
$photo .= $row['prew'];

потом вставляем пустую, если ничего нет:
PHP
$photo = ($photo)?$photo:"<img src....... />";

ну а в шаблоне как обычно:
HTML
<?php echo $photo ?>

Спустя 5 часов, 59 минут, 11 секунд (25.03.2009 - 19:36) twin написал(а):
Цитата
Как поменять размер prew фото? Не только ширину, но и высоту
Это ограничение максимального размера по обоим параметрам. То есть ни высота ни ширина превьюшки не может превысить указанного параметра. Если стоит 100, а размер фотки 200х100, то превьюшка будет размером 100х50. А если 100х200, то соответственно 50х100. То есть пропорционально , но не больше 100.

Спустя 33 минуты, 52 секунды (25.03.2009 - 20:10) lira1 написал(а):
А фиксированную высоту и ширину нельзя сделать? и как сделать пробел между ними?

Спустя 19 минут, 51 секунда (25.03.2009 - 20:30) twin написал(а):
Так она и так фиксированная. Ставь минимум и размер превьюшки одинаковый и будет фиксировано. Меньше не даст загрузить, а больше обрежет. А размер все равно зависит от исходника. Если тебе будут 100х10 грузить, ты все равно 100х80 из неё не сделаешь. Или рожи будут как в кривом зеркале. Пробел можно несколькими путями сделать. Можно установить в классе прямо в тег параметры hspace и vspace. Можно на выводе поместить фотки в таблицы, можно тегу img поставить класс и через CSS. В тег проще всего, но только будет на все превьюшки распространятся. Вот так сделай лучше и стилями выставь как надо:
PHP
$photo .= "<div class='prew' >".$row['prew']."</div>";

Спустя 10 минут, 48 секунд (25.03.2009 - 20:41) lira1 написал(а):
Да она изменятся но не так как надо. Надо чтоб не от ширины, а от высоты

Спустя 5 минут, 52 секунды (25.03.2009 - 20:46) twin написал(а):
Ты опять не поняла. Она не может измениться так, как ты хочешь. Пропорции остануться все равно. Высота не превысит допустимого значения, а пропорции изменить все равно не получится. Это же не ножницы, что бы вырезать серединку, просто идет уменьшение. Ты диву, в который картинку суёшь, поставь фиксированные размеры, а фотка пусть в нем болтается, диз тогда не поплывет.

Спустя 3 минуты, 2 секунды (25.03.2009 - 20:49) lira1 написал(а):
Дак почему нельзя сделать пропорции ширина 50 высота 100, а не ширина 100 а высота 50???

Спустя 6 минут, 23 секунды (25.03.2009 - 20:56) twin написал(а):
Скрипт не устанавливает пропорции. Он берет исходные. Потом вычисляет максимальный размер, не важно, ширина это или высота, и подгоняет второй показатель под эту пропорцию. Я же гворю, если фотка изначально размером 200х100, то он ширину уменьшит до 100 и соответственно в два раза уменьшит высоту. А если фотка будет 100х200, то он уменьшит высоту до 100 и соответственно ширину сделает 50.
Другими словами, фотка никогда не вылезет за квадрат 100х100. Но пропорции остануться исходные.

Спустя 2 часа, 13 минут, 42 секунды (25.03.2009 - 23:10) twin написал(а):
Ничего не ужасно. Просто ты не умеешь их готовить.))) По другому всё равно не получится. Можно конечно вырезать произвольную область из фотки, но что скажет тебе юзер, если ты случайно отрежешь ему пол головы? Ты не думай, что тебе будут грузить строго 9x12, большинство как раз горизонтальные. Фотоаппарат вертикально редко ставят. разве что телефон. По этому то, что ужасно, нужно поправить дизайном. Вот к примеру.

Спустя 14 минут, 21 секунда (25.03.2009 - 23:24) twin написал(а):
Цитата
Как сейчас поставить рядом с каждой фоткой слово удалить?
А это рано еще, сначала нужно вывести весь фотоальбом, потом уже ставить галочку или ссылку. А для этого надо определиться, как его выводить. Я предлагаю таблицей по 5-7 столбиков и 5-7 рядов. А когда нажмешь - увеличится до максимльного. Как на том примере, что я показывал. А таблички в постраничном режиме.

Спустя 17 минут, 52 секунды (25.03.2009 - 23:42) lira1 написал(а):
Цитата
Ничего не ужасно.

Да, ну почему то на мамбе они все одинаковые, как и везде в принципе.
И даже на том примере который ты писал с недвижимостью


Цитата
А это рано еще, сначала нужно вывести весь фотоальбом,

Хорошо, пусть будет как ты предлагаешь.

Спустя 46 минут, 50 секунд (26.03.2009 - 00:29) twin написал(а):
Цитата
Да, ну почему то на мамбе они все одинаковые, как и везде в принципе.
Неправда ваша. Совсем не везде. Я посмотрел щас на мамбе - там режут фотки, то есть обрезают лишнее. Можно конечно сделать и так, только вместо этого
user posted image

получиться такое:
user posted image
Согласись, несколько иначе. А вот если их по центру и в рамочки, то по моему веселей будет. А то там уж очень официально...
Цитата
А тут рядом с моей фоткой, твои наверное
неее, это ты себе таких навыбираешь, когда запустим.
С фотоальбомом я завтра помудрю, посвободнее буду. Ты пока план составляй, что дальше. Там на мамбе много чего есть, только зря ты повторяешься. Надо что то своё, поинтереснее. Вот допустим поиск идеальной пары там есть? Чтоб по гороскопу совместимость и еще по каким там признакам, я не знаю... наверно интересно было бы не просто парня или девушку искать, а что то еще завернуть туда...

Спустя 22 минуты, 33 секунды (26.03.2009 - 00:51) twin написал(а):
Ну так что, резать будем?

Спустя 2 часа, 37 минут, 43 секунды (26.03.2009 - 03:29) twin написал(а):
Ну в общем то попробуй так (я класс подправил, вроде и впрямь ничего страшного):
Свернутый текст
PHP
<?php

class UpFile
{
    var 
$Arr = array(".gif",".jpg",".jpeg",".png");
    var 
$Name NULL;
    var 
$Type NULL;    
    var 
$Newdir NULL;
    var 
$Updir NULL;    
    var 
$Tag =  NULL;
    var 
$Upfile NULL;
    var 
$Dir NULL;        
        
    function 
New_name($name false)
    {
        if(
$name)
        
$this->Name $name."_".date("U");
        else
        
$this->Name date("U");
        
    }    
        
    function 
UploadDir($dir,$dmn true)
    {
        if(
$dmn)
        {
    
$newdir "/".$dir."/";
    
$updir "../".$dir."/";
    
$this->Smal $dir;
    
$this->Dir $updir;
    
$this->Newname $newdir.$this->Name;
    
$this->Upname $updir.$this->Name;
        }
        else
        {
    
$newdir "/".$dir."/";        
    
$this->Dir $dir."/";
    
$this->Smal $dir;    
    
$this->Newname $newdir.$this->Name;
    
$this->Upname $dir."/".$this->Name;        
        
        }
    
    }


    function 
Upload($num)
    {
        if( 
$_FILES['file'.$num.'']['name'] && $_FILES['file'.$num.'']['error'] == 
        
&& $_FILES['file'.$num.'']['size'] > && $_FILES['file'.$num.'']['size'] < MAX_SIZE 1024 )
        {    
        
$type strrchr($_FILES['file'.$num.'']['name'], ".");
        
$this->Type $type;
            if(
in_array($type$this->Arr) )
            if(
move_uploaded_file($_FILES['file'.$num.'']["tmp_name"], $this->Upname.$type))
                
$this->ResizeImg();
            
        }
        if(
file_exists($this->Upname.$type))    
        return 
true;
    }
    
        
    function 
CreateTag()
    {
        if(
is_file($this->Upname.$this->Type))
        {
        list(
$w,$h) = @getimagesize($this->Upname.$this->Type);
            if(
$w MIN_WIDTH || $h MIN_HEIGHT)
            {
            return 
"<img src=\"".DOMEN."/images/photo_small_add.gif\" width=\"46\" height=\"62\" border=\"0\" />";
            
unlink($this->Upname.$this->Type);
            }
            else
            {
        
$this->Tag "<img src=\"".DOMEN.$this->Newname.$this->Type."\" width=\"".$w."\" height=\"".$h."\" border=\"0\" />";        
        return 
$this->Tag;
            }
        }
        else
        {
        return 
"<img src=\"".DOMEN."/images/photo_small_add.gif\" width=\"46\" height=\"62\" border=\"0\" />";
        }            
    }

    
    function 
ResizeImg($prew false)   
    { 
        
    if(
$prew)
    {
    
$w WIDTH_PREW;
    
$h HEIGTH_PREW;
    
$filename $this->Upname.$this->Type;
    
$smallimage $this->Dir."/small/".$this->Name.$this->Type;
    
$ratio $w $h;
    
    }
    else
    {
    
$smallimage $filename $this->Upname.$this->Type;
    
$w $h WIDTH_FULL
    
$ratio 1;
    }
     
       
    
$size_img getimagesize($filename);
         
        if (
$size_img[0] < MIN_WIDTH || $size_img[1] < MIN_HEIGHT )
        {
        return 
"<img src=\"".DOMEN."/images/photo_small_add.gif\" width=\"46\" height=\"62\" border=\"0\" />"
        }
        else
        {
    
$src_ratio $size_img[0] / $size_img[1];

        if (
$ratio $src_ratio)    
        
$h round($w $src_ratio);    
         else     
         
$w round($h $src_ratio);    
    
    if(
$h HEIGTH_PREW)
    {
    
$h HEIGTH_PREW;
    
$w round($src_ratio HEIGTH_PREW);
    }
    
    if(
$w WIDTH_PREW)
    {
    
$w WIDTH_PREW;
    
$h round(WIDTH_PREW $src_ratio);
    }    
    
$dest_img imagecreatetruecolor($w$h);     
$white imagecolorallocate($dest_img255255255);  
         
    if (
$size_img[2] == 2)  $src_img imagecreatefromjpeg($filename);                         
    else if (
$size_img[2] == 1$src_img imagecreatefromgif($filename);                         
    else if (
$size_img[2] == 3$src_img imagecreatefrompng($filename); 
        
imagecopyresampled($dest_img$src_img0000$w$h$size_img[0], $size_img[1]);                   
   
    if (
$size_img[2] == 2)  imagejpeg($dest_img$smallimage);                         
    else if (
$size_img[2] == 1imagegif($dest_img$smallimage);                         
    else if (
$size_img[2] == 3imagepng($dest_img$smallimage);    

imagedestroy($dest_img);    
imagedestroy($src_img);

    if(
$size_img[0] > WIDTH_PREW || if($size_img[1] > HEIGTH_PREW))
    
$this->Cutphoto();    
    
    return 
'<img src="'.DOMEN.'/'.$this->Smal.'/small/'.$this->Name.$this->Type.'" width="'.WIDTH_PREW.'" height="'.HEIGTH_PREW.'" border="0" >';          
        }            
    
    } 
        
  function 
Cutphoto()
  { 
      
$smallimage $this->Dir."small/".$this->Name.$this->Type;
    
$size_img getimagesize($smallimage);
    
$x $y 0;
    
    if(
$size_img[0] > WIDTH_PREW)
    
$x round(($size_img[0] - WIDTH_PREW) / 2);
    
    if(
$size_img[1] > HEIGTH_PREW)
    
$y round(($size_img[1] - HEIGTH_PREW) / 2);
        
    
$dest_img imagecreatetruecolor(WIDTH_PREWHEIGTH_PREW); 
    echo 
$smallimage;
    
$bgc imagecolorallocate($dest_img255255255); 
    
imagefilledrectangle($dest_img$x$yWIDTH_PREWHEIGTH_PREW$bgc); 
    
    if (
$size_img[2] == 2)  $src_img imagecreatefromjpeg($smallimage);                         
    else if (
$size_img[2] == 1$src_img imagecreatefromgif($smallimage);                         
    else if (
$size_img[2] == 3$src_img imagecreatefrompng($smallimage); 
    
imagecopyresampled($dest_img$src_img00$x$yWIDTH_PREWHEIGTH_PREWWIDTH_PREWHEIGTH_PREW);
     
    if (
$size_img[2] == 2)  imagejpeg($dest_img$smallimage);                         
    else if (
$size_img[2] == 1imagegif($dest_img$smallimage);                         
    else if (
$size_img[2] == 3imagepng($dest_img$smallimage);
    
     
  } 

   
    function 
Filename()
    {    
    return 
$this->Name.$this->Type;
    }
    
}    
В конфигу добавь
PHP
define('HEIGTH_PREW',150);
и погоняй на разных размерах загружаемых файлов.

Спустя 6 часов, 46 минут, 49 секунд (26.03.2009 - 10:16) twin написал(а):
Цитата
На амбе тоже обрезают, я вспомнила.
biggrin.gif user posted image Теперь точно туда не пойду, еще обрезания мне не хватало...

Впринципе это тоже можно сделать, я только не нашел, где это и как выглядет. Если хош -сделаю как я себе это представляю.

Спустя 46 минут, 9 секунд (26.03.2009 - 11:02) lira1 написал(а):
Цитата
Впринципе это тоже можно сделать, я только не нашел, где это и как выглядет. Если хош -сделаю как я себе это представляю.


Ну если это не сложно, а так большой необходимости нет

Спустя 9 часов, 18 минут, 28 секунд (26.03.2009 - 20:20) twin написал(а):
Извини за заминку - срочный заказ, вздохнуть не могу. Посмотри на эту бяку лисой, у меня в ноуте лисы нет, работат ли?

Спустя 58 минут, 15 секунд (26.03.2009 - 21:19) twin написал(а):
Лиса это фаерфокс или мазила, как часто называют. Браузер. Ну и потыкай кнопки, будет двигаться?

Спустя 4 минуты, 59 секунд (26.03.2009 - 21:24) lira1 написал(а):
нет, не двигается

Спустя 20 часов, 37 минут, 39 секунд (27.03.2009 - 18:01) twin написал(а):
Вот выкроил минутку, поковырял скрипт. Там очень много изменений, описывать пока не буду, смотри сама и спрашивай, что не понятно. Так быстрее будет. Я распределил кое что по файлам, так как повторяется. Что бы не бегать потом по всем и не менять кучу скриптов, лучше вынести и подключать в нужном месте. Тогда менять что то нужно только в одном месте. Это же и шаблонов касаемо. Ну вобщем вот.
Архыв.

Спустя 56 минут, 8 секунд (27.03.2009 - 18:57) twin написал(а):
Нще одну ошибку нашел, поменяй файл active.php а то автологин не работал.
PHP
<?php
if(isset($_GET['exit'])) 

unset(
$_SESSION['login']); 
session_destroy(); 
setcookie('code',''time()-3600*24,"/"); 
header("location: ".DOMEN);
exit();


if(isset(
$_POST['Submit']) && isset($_POST['login']) && isset($_POST['password'])) 

$res mysql_query("SELECT `id`,`pagename` FROM `".PREFIX."user` 
WHERE `login`='"
.magic_off($_POST['login'])."' 
AND `password`='"
.md5($_POST['password'])."'
AND `active`='1' "
);   
    if(
$res)
    { 
        if(
mysql_num_rows($res) !== 0)  
        {  
        
$_SESSION['login'] = $_POST['login'];
        
$_SESSION['pagename'] = mysql_result($res,0,'pagename');   
            if(isset(
$_POST['autologin']))  
            {
            
$code md5(mysql_result($res,0,'id').rand_str());  
            
setcookie('code',$codetime()+3600*24*30*3,"/");
            
mysql_query("UPDATE `".PREFIX."user` SET `code`='".$code."' WHERE `id`='".mysql_result($res,0,'id')."'");   
            }
        
header("location: ".DOMEN."/my/show/".$_SESSION['pagename']);      
        }
    }  
}


Спустя 1 час, 14 минут, 11 секунд (27.03.2009 - 20:12) lira1 написал(а):
Спасибо. Теперь непонятки)
Вот такая ошибка

Warning: Division by zero in F:\home\test1.ru\www\strana\functions\list_page.php on line 34

Warning: Division by zero in F:\home\test1.ru\www\strana\functions\list_page.php on line 54

Warning: Division by zero in F:\home\test1.ru\www\strana\functions\list_page.php on line 54

Пожалуйста будет время распиши комментариями editor.php, list_page.php , upload.php, album.php, js, edit_prew.html

Спустя 3 минуты, 14 секунд (27.03.2009 - 20:15) lira1 написал(а):
Цитата
поменяй файл active.php

может enter.php?

Спустя 1 минута, 57 секунд (27.03.2009 - 20:17) twin написал(а):
Цитата
может enter.php?
да, точно.
Division by zero обозначает деление на ноль. Ты в конфиге не проставила константы. там новые есть. Комменты напишу попозже. С чего начать?

Спустя 1 час, 18 минут, 26 секунд (27.03.2009 - 21:35) lira1 написал(а):
в редактировании фото почему то основная фотка маленькая

Спустя 28 минут, 34 секунды (27.03.2009 - 22:04) lira1 написал(а):
и двигается, но не обрезает

Спустя 33 минуты, 13 секунд (27.03.2009 - 22:37) twin написал(а):
Это редактирование превьюшки, потому и маленькая. Если надо из большой кусочек вырезать, то маленько по другому надо. Обрезать должно, я проверял. Там может еще с кэшем проблемы, но обрезает точно. Смотри на превьюшку слева. Какую функцию расписать, что то все сразу лениво. sad.gif

Спустя 1 час, 53 минуты, 49 секунд (28.03.2009 - 00:31) twin написал(а):
Вот я у себя поставил прямо без изменений, из архива. Всё режется. А с превьюшкой ты не поняла опять. Скрипт уменьшает фотку, а если она в размеры не лезет, то обрезает лишнее. Автоматически вырезает середину, но если не понравилось - можно подправить. А большая фотка тоже грузится, мы просто её не вывели. Если ты будешь из большой вырезать превьюшку, то только нос или ухо получиться.

Спустя 8 часов, 29 минут, 34 секунды (28.03.2009 - 09:00) twin написал(а):
Цитата
Все работает.
Ну вот и славно. smile.gif
Цитата
Сейчас фотоальбом
Три варианта вывести полную фотографию:
1. С перезагрузкой страницы на то место, где сейчас куча маленьких
2. Без перезагрузки ниже того, где куча
3. во всплывающее окошко, как я показывал
Выбирай.

Вот list_page.php Спрашивай, что не ясно. Я немного изменил, хочешь поменяй, а хочешь - так оставь:
Свернутый текст
PHP
<?php
class ListPage
{
    var $Total = NULL;
    var $Posts = NULL;



    function CountPage($table,$where = NULL)
    {
 # Считаем количество строк в нужной таблице. Если условие where определено, то для условия, если нет - то все.
    $result = mysql_query("SELECT COUNT(*) AS `cnt` FROM `".PREFIX.$table."`".$where);
        if($result)
        $this->Posts = mysql_result($result,0,0);
    }
    
    
    function StartPage
()
    { 
# Принимаем гет параметр с номером текущей страницы           
    $page = isset($_GET['pag'])?intval($_GET['pag']):1;
# Тут немного танцев с бубнами, вычисляем номер строки, откуда начинать отсчет
        $this->Total = intval(($this->Posts - COLUMNS) / ROWS * COLUMNS) - 1;   
          
            if
(empty($page) or $page < 0) 
            $page 
= 1;
            
            if
($this->Total < $this->Posts)
            $this->Total = $this->Posts;
              
            if
($page > $this->Total) 
            $page 
= $this->Total; 
              
        $start 
= $page * ROWS * COLUMNS - ROWS * COLUMNS;
        if($start < 0 )
        $start = 0;
# Потом мы это подставим в запрос и он выдаст строки с той, которую вычислсли плюс сколько заявлено в конфиге        
return $start;
        
    
}
    
    function List_rows
($modul)
    {
# А тут генерация менюшки с номерами страниц
    $tot = ceil($this->Total / ROWS / COLUMNS);
    $page = isset($_GET['pag'])?$_GET['pag']:0;

        for ($i = 1; $i <= $tot;  $i++)
        {
        $for = $i * ROWS * COLUMNS - ROWS * COLUMNS + 1;
        $end = $i * ROWS * COLUMNS;
            if($page != 0)    
                    if
($page == $i )
                    $menu .= "<b>[".$for."-".$end."]</b>";
                else 
                $menu 
.= "<a href='".DOMEN."/".$modul."/pag/".$i."' />[".$for."-".$end."]</a>";
            else
                    if
($this->Total == $i )
                    $menu .= "<b>[".$for."-".$end."]</b>";
                    else 
                $menu 
.= "<a href='".DOMEN."/".$modul."/pag/".$i."' />[".$for."-".$end."]</a>";
        }
    return $menu;
    }


}
# Вызывается так:
$list = new ListPage();
# Запускам подсчет строк в нужной таблице. Усли есть условие, передаем в функцию:
$where = "WHERE `id`='".(int)$id."'";

$list -> CountPage('photo',$where);

# Это же условие в запрос. И устанавливаем лимит с начальной позиции, 
# вычисленной классом до количества записей на странице. 
# То есть к-во рядов умноженное на к-во колонок.:
$res = mysql_query("SELECT * FROM     `".PREFIX."photo` 
"
.$where." LIMIT ".$list -> StartPage()." ,    ".ROWS * COLUMNS);
# Осталоь вывести менюшку с цифрами. Аргументом ставим ссылку на модуль, из которого запрос:
echo $list -> List_rows('album');
#  Вроде все...

Спустя 20 минут, 45 секунд (28.03.2009 - 09:21) lira1 написал(а):
А если не с 1-6 выводить, а с 1-8 Как?

Спустя 12 минут, 46 секунд (28.03.2009 - 09:34) twin написал(а):
В конфиге установи нужное количество рядов и колонок.

Спустя 3 часа, 11 минут, 15 секунд (28.03.2009 - 12:45) twin написал(а):
В файл edit.php поставь
PHP
$bac DOMEN."/my/add_foto/".$_SESSION['pagename'];

а в edit_prew.html ссылку:
HTML
<a href="<?php echo $bac ?>">Вернуться</a>

Спустя 48 минут, 51 секунда (28.03.2009 - 13:34) twin написал(а):
Там с кэшированием рисунков будет проблема, после возврата нужно обновить страницу, что бы увидеть изменения. Надо с этим бороться. В upload.php на 185 строчке добавь это:
return '<img src="'.DOMEN.'/'.$this->Smal.'/small/'.$this->Name.$this->Type.'?r" width="'.WIDTH_PREW.'" height="'.HEIGTH_PREW.'" border="0" >';
а в add_photo.php так:
PHP
if($res)
while(
$row mysql_fetch_assoc($res))
{
$r rand(1,1000);
$row['prew'] = str_replace("?r","?$r",$row['prew']);
$photo .= '<div class="prew" >'.$row['prew'].'<br>
<a href="'
.DOMEN.'/photo/'.$row['id'].'">Редактировать</a></div>';
}

Спустя 4 часа, 55 минут, 15 секунд (28.03.2009 - 18:29) lira1 написал(а):
Что дальше будем делать?

Спустя 2 часа, 4 минуты, 16 секунд (28.03.2009 - 20:33) twin написал(а):
Цитата
Что дальше будем делать?

Я, судя по аватарке, наверное ложиться спать biggrin.gif
Ну давай попробуем доделать альбом. Знач так, скрипт увеличения не мой, по этому без комментов. Файлов опять куча, разбирайся с архивом, он там же. Изменения в index.php album.php album.html header.html добавлен js и css и кой чего в images
Посмотреть в действии можешь у меня на хостинге.
С тем что раньше делали разобралась или уже совсем запуталась?















Спустя 3 минуты, 53 секунды (28.03.2009 - 20:37) lira1 написал(а):
Цитата

С тем что раньше делали разобралась или уже совсем запуталась?


Разбираюсь wacko.gif
Больше всего мне не понятны кавычки, точки, всякие знаки, че куда...

Спустя 26 минут, 13 секунд (28.03.2009 - 21:04) twin написал(а):
А что конкретно не понятно? Синтаксис довольно простой, если ты уже сама можешь находить ошибки и писать скрипты, то трудностей с точками быть не должно... Кавычки бывают трех видов - двойные, апостроф и обратные. Обратные используются в SQL запросах для выделения названия полей. Всё, что заключено в апострофы, расценивается как строка, то есть просто текст. А внутри двойных кавычек можно писать переменные. И еще там работают спецсимволы. Вот напиши это и запусти, будет понятно.
PHP
<?php
$var1 
= '\'текст в апострофах. oн в переменной $var1\'';
$var2 = "
\"это текст в двойных кавычках. здесь работает преренос строки и переменная,\r\n по этому видно $var1\""
;
echo '<pre>', $var1, $var2 ,'</pre>';

Спустя 1 минута, 6 секунд (28.03.2009 - 21:05) twin написал(а):
Цитата
Все хорошо, только надо чтоб при нажатии на первюшки на альбом переходило, а то не найдут
а куда жмать то, на те, которые справа три штуки?

Спустя 36 минут, 42 секунды (28.03.2009 - 21:41) twin написал(а):
Ну дык ты php тег, в которрый превьюшки выводятся, засунь в ссылку, а ссылку на альбом.

Спустя 13 минут, 36 секунд (28.03.2009 - 21:55) twin написал(а):
Цитата
Сейчас надо фотки удалять?
Пыталась сама, но не получилось
Открываешь каталог с фотками. На нужную наводишь мышку, правой кнопкой - клац. Выбираешь "удалить", потом "да". Всё. tongue.gif
Запретить сохранять фотки ты не сможешь. Все, что видит клиент находится у него в браузере и ничего с этим не поделаешь.

Спустя 10 минут, 56 секунд (28.03.2009 - 22:06) lira1 написал(а):
вот тут так и надо или это ошибка?
$res = mysql_query("SELECT * FHROM `".PREFIX."photo`
".$where." LIMIT ".$list -> StartPage()." , ".ROWS * COLUMNS);

Слово FHROM

Спустя 1 минута, 35 секунд (28.03.2009 - 22:07) lira1 написал(а):
Цитата
Открываешь каталог с фотками. На нужную наводишь мышку, правой кнопкой - клац. Выбираешь "удалить", потом "да". Всё. tongue.gif

Издеваешься? Юзер то не сможет из каталога удалять.


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

А вот на мамбе не сохранишь.
Я знаю есть такой скрипт, который отключает работу правой кнопки мыши

Спустя 10 минут, 19 секунд (28.03.2009 - 22:18) twin написал(а):
Конечно издеваюсь, но ты ведь не сказала как ты пыталась...
Вот в файле album.php добавь это и думай как дальше.
if($i < $rows)
{
if($numpage == $_SESSION['pagename'])
$link_del = '<br><a href="'.DOMEN.'/my/delete/'.$row['name'].'" >Удалить</a>';

$row = mysql_fetch_assoc($res);
$prew = '<a href="'.DOMEN.'/user_photo/'.$row['name'].'" class="highslide" onclick="return hs.expand(this)">
<img src="'.DOMEN.'/user_photo/small/'.$row['name'].'" border="0"/></a>';
}
echo "<td class=\"album\">".$prew.$link_del."</td>\r\n";

А на мамбе скажи мне какой нибудь адрес и я тебе сюда оттуда фотку выложу.

PS Не забывай русские буквы сразу в константы выносить, а то потом замучаешься искать.

Спустя 4 минуты, 22 секунды (28.03.2009 - 22:22) Bezdna написал(а):
Цитата (lira1 @ 28.03.2009 - 19:07)
Я знаю есть такой скрипт, который отключает работу правой кнопки мыши


Тогда уж лучше скрипт нанесения watermark-ов на фото. rolleyes.gif

Спустя 7 минут, 25 секунд (28.03.2009 - 22:30) twin написал(а):
Это же не мамба, я там регаться не хочу. Хотя вот:
user posted image

А с мамбы вот (землячка кстати):
Свернутый текст
user posted image
На главной странице висит.

Спустя 39 минут, 14 секунд (28.03.2009 - 23:09) lira1 написал(а):
Как я понимаю нужно создать блок DELETE и в файл delete.php прописать запрос а удаление. Так?

Спустя 1 минута, 38 секунд (28.03.2009 - 23:10) Bezdna написал(а):
Цитата (lira1 @ 28.03.2009 - 19:58)
Да это не помешает их скачать и вырезать этот логотип


Скачать твою картинку при неработающей правой кнопке сможет любой юзер, сидящий в инернете более двух месяцев и в возрасте старше пяти лет. biggrin.gif А ватермарк, поставленный в нужном месте в фото "закрасить" сможет лишь каждый двадцатый, знающий, что такое Фотошоп.

Спустя 3 минуты, 29 секунд (28.03.2009 - 23:14) twin написал(а):
По всей фотке можно водный знак сделать. Я правда не делал, но вроде делется так. А по другому ничего не выйдет. Даже если что то суррогатное наделать, то только от школьников защита. Не стоит того. Все равно, если в браузере, значит можно сохранить. Dura lex, sed lex.

Спустя 4 минуты, 41 секунда (28.03.2009 - 23:19) twin написал(а):
Цитата
Как я понимаю нужно создать блок DELETE и в файл delete.php прописать запрос а удаление. Так?
Да, лучше так. Только нужно не просто из базы удалить, а еще сами файлы из каталога, а то накопится стопицоттыш

Спустя 2 минуты, 33 секунды (28.03.2009 - 23:21) lira1 написал(а):
Цитата
Да, лучше так. Только нужно не просто из базы удалить, а еще сами файлы из каталога, а то накопится стопицоттыш


это как? dry.gif
Он все пишет запрос пустой sad.gif


Спустя 16 минут, 28 секунд (28.03.2009 - 23:38) twin написал(а):
Код в студию. А удалять файлы функцией unlink();

Спустя 9 часов, 16 минут, 37 секунд (29.03.2009 - 07:54) twin написал(а):
Цитата
вот тут так и надо или это ошибка?
$res = mysql_query("SELECT * FHROM `".PREFIX."photo`
".$where." LIMIT ".$list -> StartPage()." , ".ROWS * COLUMNS);

Слово FHROM
проглядел чёт я, и пост и ошибку... конечно надо FROM.

Спустя 2 часа, 54 минуты, 52 секунды (29.03.2009 - 10:49) lira1 написал(а):
<?
$name = isset($_GET['name'])?$_GET['name']:NULL;
$query = "DELETE FROM `".PREFIX."photo` WHERE `name`='".$name."'";
$sql = mysql_query($query)or die(mysql_error());

Спустя 30 минут, 47 секунд (29.03.2009 - 11:20) twin написал(а):
Ну вот, всё правильно. Только по такой схеме любой юзер сможет удалить все фотки из базы. Стоит ему в адресной строке набрать имя файла. Нужно разрешить удалять только хозяину, то есть добавить еще одно условие для WHERE. Ну и три унлинка сюда же, чтобы файлы из каталогов поудалять.

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

Спустя 17 минут, 57 секунд (29.03.2009 - 11:38) lira1 написал(а):
Цитата
Ну и три унлинка сюда же, чтобы файлы из каталогов поудалять.

Это я не понимаю как

А вот так ниче не удаляет
PHP
<?
$name = isset($_GET['name'])?$_GET['name']:NULL;
$query = "DELETE FROM `".PREFIX."photo` WHERE `name`='".$name."' AND `pagename`='".magic_off($_SESSION['pagename'])."'";
$sql = mysql_query($query)or die(mysql_error());

Спустя 1 час, 52 минуты, 28 секунд (29.03.2009 - 13:30) twin написал(а):
Наоборот надо))) То, что находится в сессии, это на сервере, и пользаватель изменить не может. Перед тем, как занести в базу pagename мы исключили все потенциальео опасное, по этому обрабатывать её не обязательно. Чего нельзя сказать про $_GET['name']. Вот туда из адресной строки может попасть всё что угодно. А не удаляет скорее всего потому что не видит $_SESSION['pagename']. Выведи её на экран и посмотри. А удалять файлы надо так:
PHP
unlink("user_photo/".$name);
unlink("user_photo/small/".$name);
unlink("user_photo/fsmall/".$name);

Спустя 57 минут (29.03.2009 - 14:27) lira1 написал(а):
НИ ЧЕ НЕ УДАЛЯЕТ
Сессию видит
PHP
<?
echo "pagename => ".$_SESSION['pagename'];
$name = isset($_GET['name'])?$_GET['name']:NULL;
$query = "DELETE FROM `".PREFIX."photo` WHERE `pagename`='".magic_off($_SESSION['pagename'])."' AND `name`='".$name."'";
$sql = mysql_query($query)or die(mysql_error());


unlink("user_photo/".$name);
unlink("user_photo/small/".$name);
unlink("user_photo/fsmall/".$name);



Warning: unlink(user_photo/small/) [function.unlink]: Permission denied in

Спустя 54 минуты, 23 секунды (29.03.2009 - 15:22) twin написал(а):
А ты реврайт прописала? Нет. Он не видит что удалять. Перемнную $_SESSION['pagename'] ты посмотрела, а вот так:
PHP
echo "pagename => ".$_SESSION['pagename'];
$name = isset($_GET['name'])?$_GET['name']:NULL;
echo 
" name => ".$name;
?
В реврайт надо как то так:
Код
RewriteRule ^my/delete/(.+)$ index.php?page=my&ancet=delete&name=$1 [L]
правда я не знаю, где ты блок сделала.

Спустя 1 час, 7 минут, 47 секунд (29.03.2009 - 16:29) lira1 написал(а):
В реврайт прописала немного неправильно. Сейчас удаляет, но только не ту которую надо, а которая перед ней идет.

Спустя 56 минут, 58 секунд (29.03.2009 - 17:26) twin написал(а):
Как так? А имя файла какое показывает?

Спустя 7 минут, 9 секунд (29.03.2009 - 17:34) lira1 написал(а):
показывает то которое удаляет. пролучается в ссылку не то вставляется

Спустя 45 минут, 30 секунд (29.03.2009 - 18:19) twin написал(а):
Это мне надо оторвать кривые руки. Вот эти строчки местами поменяй:
PHP
$link_del '<br><a href="'.DOMEN.'/my/delete/'.$row['name'].'" >Удалить</a>';
$row mysql_fetch_assoc($res);

Спустя 14 минут, 21 секунда (29.03.2009 - 18:33) twin написал(а):
Вот тебе за это бонус:
PHP
$link_del = "<br><a href=\"".DOMEN."/my/delete/".$row['name']."\" onclick=\"return confirm('Удалить?')?true:false\" >Удалить</a>";



PS смени аватарку, слишком ты красивая, не возможно сосредоточиться. sad.gif

Спустя 2 часа, 1 минута, 18 секунд (29.03.2009 - 20:35) twin написал(а):
А куда ты его приспособила? Это в album.php там где я напортачил, поменяй строчку на эту. Просто будет подтверждение спрашивать.

Спустя 43 секунды (29.03.2009 - 20:35) twin написал(а):
ААААА, кавычка лишняя там. Щас поправил. (определенно не возможно сосредоточиться sad.gif )

Спустя 6 минут, 45 секунд (29.03.2009 - 20:42) lira1 написал(а):
И еще можно сделать так чтоб любую фотку можно было назначить основной, т.е. первой, которая будет в поиске выводиться?

Спустя 7 минут, 18 секунд (29.03.2009 - 20:49) twin написал(а):
Цитата
еще бы хорошо обратно на страницу возвращалось моментально
ты по подробнее, я же не вижу как у тебя работает. Откуда моментально то надо? И на какую страницу?
Цитата
И еще можно сделать так чтоб любую фотку можно было назначить основной, т.е. первой, которая будет в поиске выводиться?
Можно сделать все что угодно, кроме детей. Я правда теперь, после того как пару раз побывал на мамбе, и в этом уже не уверен))))
Нужно в таблицу photo добавить еще одно поле с типом enum и в него поставить очередность. Потом можно выводить - первая вторая третья. Там же три у тебя в анкете. А на фотках ссылки - добавить в анкету и сделать основной. По этим ссылкам прописывать в поле 1 для основной к примеру и 2 для тех, что в анкету.

Спустя 7 минут, 43 секунды (29.03.2009 - 20:57) lira1 написал(а):
Цитата
ты по подробнее, я же не вижу как у тебя работает. Откуда моментально то надо? И на какую страницу?

Ну так нажимая удалить, выходит белый лист http://test1.ru/strana/my/delete/nastja2_1238335694.jpg
А потом надо нажимать назад в браузере.

Цитата
Можно сделать все что угодно, кроме детей. Я правда теперь, после того как пару раз побывал на мамбе, и в этом уже не уверен))))


Не сомневайся, можно! На собственном опыте проверенно.


Цитата
Нужно в таблицу photo добавить еще одно поле с типом enum и в него поставить очередность. Потом можно выводить - первая вторая третья. Там же три у тебя в анкете. А на фотках ссылки - добавить в анкету и сделать основной. По этим ссылкам прописывать в поле 1 для основной к примеру и 2 для тех, что в анкету.


Вот без добавить в анкету можно?
Они и так должны быть все в анкете. Выводится только первые три.

Спустя 7 минут, 7 секунд (29.03.2009 - 21:04) lira1 написал(а):
Это надо что то типа active, что если нажимаешь сделать основной, в таблицу добавляется 1 и фотка перемещается

Спустя 11 минут, 10 секунд (29.03.2009 - 21:15) twin написал(а):
Цитата
Вот без добавить в анкету можно?
Они и так должны быть все в анкете. Выводится только первые три.
Ну я имел ввиду, что не обязательно первые три, можно выборочно сделать. и менять потом, если охота. А ваще правильно мыслишь. А с белым листом - так а кто ж редирикт то делать будет? Пушкин? Забыла? А голову ты не забыла? biggrin.gif

Спустя 8 минут, 58 секунд (29.03.2009 - 21:24) lira1 написал(а):
Ну как с основной то делать? Опять отдельный блок? Чтоб любую фотку из альбома первой можно было ставить

Спустя 6 минут (29.03.2009 - 21:30) twin написал(а):
Вот:

PHP
$query = "DELETE FROM `".PREFIX."photo` WHERE `pagename`='".$_SESSION['pagename']."' AND `name`='".magic_off($name)."'";
$sql = mysql_query($query)or die(mysql_error());


unlink("user_photo/".$name);
unlink("user_photo/small/".$name);
unlink("user_photo/fsmall/".$name);

header("location: ".DOMEN."/album/".$pag);
Вот это /".$pag для того, что бы вернуться именно на ту страницу, с которой удаляла, а не на первую. Только инициализируй переменную.

Спустя 3 минуты, 3 секунды (29.03.2009 - 21:34) lira1 написал(а):
И еще мне не понятно, если одну фотку добавляешь, зачем еще 2 ссылки удалить появляются?

Да у меня вот так header("location: ".DOMEN."/album/".$_SESSION['pagename']);

Прекрасно переходит

Спустя 7 минут, 23 секунды (29.03.2009 - 21:41) twin написал(а):
Цитата
Да у меня вот так header("location: ".DOMEN."/album/".$_SESSION['pagename']);
Плохо переходит. Попробуй фоток засунуть много, что бы было две страницы в постраничном режиме. Потом удали со второй и попадешь на первую. А если их 10, замучаешься искать потом, откуда удалила.

Цитата
Ну как с основной то делать? Опять отдельный блок?
Эт на любителя. Лично я вообще сделал бы отдельный модуль для редактирования альбома. А можно прямо в этот же файл, только иф прописать для гет параметра ссылки. А ссылки появляются потому что переменную не обнулили. Надо так сделать:
if($i % COLUMNS == 0)
echo "<tr>\r\n";
$prew = "&nbsp;";
$link_del = NULL;
if($i < $rows)
{

Спустя 39 минут, 53 секунды (29.03.2009 - 22:21) lira1 написал(а):
Цитата
Вот это /".$pag для того, что бы вернуться именно на ту страницу, с которой удаляла, а не на первую. Только инициализируй переменную.

Как ее инцилизировать то?
Вообще должно переходить
".DOMEN."/albump/логин/pag/.....

Спустя 32 минуты, 5 секунд (29.03.2009 - 22:53) twin написал(а):
Цитата
Вообще должно переходить
".DOMEN."/albump/логин/pag/....
Умница. Так в реврайт и пропиши. А инициализировать то как всегда, мне просто писать лень:
$pag = isset($_ .......... user posted image А лучше не так, лучше чтоб название странички всегда было последним. так красивее:
".DOMEN."/albump/pag/2/логин....
Цитата
Ну это вообще темный лес, без основной обойдемся.
Что значит обойдемся? Нет уж - назвалась гужом - возьмись за кузов. Ты где блок удаления сделала? В главном индексе?

Спустя 8 часов, 35 минут, 33 секунды (30.03.2009 - 07:28) lira1 написал(а):
Цитата
".DOMEN."/albump/pag/2/логин....


В реврайте так прописано
RewriteRule ^albump/(.+)/pag/([0-9]+)$ index.php?page=photo&sw=album&pagename=$1&pag=$2 [L]

Я вообще этот реврайт не очень понимаю

Спустя 5 часов, 37 минут, 30 секунд (30.03.2009 - 13:06) twin написал(а):
Реврайт просто все что слева:
^albump/(.+)/pag/([0-9]+)$
превращает в то, что справа:
index.php?page=photo&sw=album&pagename=$1&pag=$2
это тебе наверняка и так понятно. А если есть в адресе переменная, то тогда регулярным выражением её.
(.+) обозначает "любой символ хотябы один". То есть всё, что в ссылке на этом месте запишется в переменную $1 , по порядку.
([0-9]+) обозначает "любая цифра от 0 до 9 хотябы одна". И запишется соответственно в $2
Ну а справа мы их прочитаем и присвоим нужным GET переменным:
pagename=$1 и pag=$2
Вот и всё собственно. Для начала более чем достаточно.


Цитата
Да просто нервы уже не выдерживают, за день сделала одну ссылку удалить. Я не думала, что это так затянется. Так точно до пенсии просижу, а к ней уж и не нужно будет..
Ну я же предупреждал, что не очень быстро это все. Да и по сути ничего не затянулось. Такой скрипт с нуля, без архитектуры, без базовых знаний и практики у тебя получается в рекордно короткие сроки. А вот сделаешь красиво всё, будет у тебя куча бабок и женихов. smile.gif Не расстраивайся. Счастье есть, оно не может не есть.

Вот так измени таблицу:

Код
ALTER TABLE `strana_photo` ADD `date` TIMESTAMP NOT NULL ,
ADD `top` ENUM( '0', '1', '2' ) NOT NULL;


Сделай файл muve_photo.php:

Свернутый текст
PHP
<?php
$pag 
= isset($_GET['pag'])?$_GET['pag']:1;
$name = isset($_GET['name'])?$_GET['name']:NULL;
if(
$ancet == "up")
{
    
mysql_query("UPDATE `".PREFIX."photo` SET  `date` = NOW(),`top` = '1'
    WHERE `pagename`='"
.$_SESSION['pagename']."' AND `name`='".magic_off($name)."'")
    or die(
mysql_error());


header("location: ".DOMEN."/albump/".$_SESSION['pagename']."/pag/".$pag);
exit();
}
    
if(
$ancet == "top")
{
    
mysql_query("UPDATE `".PREFIX."photo` SET `date` = NOW(),`top` = '0'
    WHERE `pagename`='"
.$_SESSION['pagename']."' AND `top` = '2'")
    or die(
mysql_error());

    
mysql_query("UPDATE `".PREFIX."photo` SET `date` = NOW(),`top` = '2'
    WHERE `pagename`='"
.$_SESSION['pagename']."' AND `name`='".magic_off($name)."'")
    or die(
mysql_error());

header("location: ".DOMEN."/albump/".$_SESSION['pagename']."/pag/".$pag);
exit();
}    
    
if(
$ancet == "delete")
{    

    
mysql_query("DELETE FROM `".PREFIX."photo`
    WHERE `pagename`='"
.$_SESSION['pagename']."'
    AND `name`='"
.magic_off($name)."'")
    or die(
mysql_error());


unlink("user_photo/".$name);
unlink("user_photo/small/".$name);
unlink("user_photo/fsmall/".$name);

header("location: ".DOMEN."/albump/".$_SESSION['pagename']."/pag/".$pag);
}
В album.php сделай так:
Свернутый текст
PHP
$link_del "<br><a href=\"".DOMEN."/my/delete/".$pag."/".$row['name']."\" onclick=\"return confirm('Удалить?')?true:false\" >Удалить</a><br><a href=\"".DOMEN."/my/up_photo/".$pag."/".$row['name']."\" >Поместить в анкету</a><br><a href=\"".DOMEN."/my/top_photo/".$pag."/".$row['name']."\" >Сделать главной</a>";
в реврайт напиши это:
Код
RewriteRule ^my/delete/([0-9]+)/(.+)$ index.php?page=my&ancet=delete&pag=$1&name=$2 [L]
RewriteRule ^my/top_photo/([0-9]+)/(.+)$ index.php?page=my&ancet=top&pag=$1&name=$2 [L]
RewriteRule ^my/up_photo/([0-9]+)/(.+)$ index.php?page=my&ancet=up&pag=$1&name=$2 [L]
в index.php который в ancet добавь блок:
PHP
case  "delete" || "up" || "top":  
include(
"modules/ancet/muve_photo.php");      
    break;
а в fase.php запрос для фоток поменяй так:
PHP
$res mysql_query("SELECT `prew`,`id` FROM `".PREFIX."photo` 
WHERE `pagename`='"
.magic_off($pagename)."' 
ORDER BY `top` DESC ,`date` DESC LIMIT 3 "
);

и пробуй. Вроде проверил.














Спустя 3 часа, 33 минуты, 48 секунд (30.03.2009 - 16:40) lira1 написал(а):
Спасибо за помощь, поддержку, терпение. Без тебя я бы уже давно плюнула на это дело.

У меня ничего не работает. Не загрузить фото, не редактировать анкету, не редактировать личные данные....

Если блок отключаю этот
PHP
case "delete" || "up" || "top":
include("modules/ancet/muve_photo.php");
break;

то работает

Спустя 40 минут, 20 секунд (30.03.2009 - 17:20) twin написал(а):
Возьми в архиве рабочий вариант и сравни, мож я сослепу упустил чего...
А руки не след опускать. Тем более что уже процентов 10 готово biggrin.gif .
Вся сложность в том, что я плохо себе представляю функционал такого сайта, а тз у нас нету. Ты так и не написала чего там должно быть. Или написала, да я по природной своей тупости не могу понять толком. По этому и двигаемся в час по чайной ложке.

Спустя 34 минуты, 20 секунд (30.03.2009 - 17:54) lira1 написал(а):
Цитата
PS А самых красивых скрипт должен выбирать или как? biggrin.gif

Самых красивых люди выбирают, каждый за одного может отдать только один голос.
как здесь вот только тут должен быть еще select с выбором города, чтоб человек мог посмотреть только по своему городу.
Получается должна быть еще одна ссылка рядом с фото, добавить в ТOp


А про сообщения. Человек видит анкету в поиске, нажимает. Выходит анкета, там кнопка, написать сообщение. Открывается новое окно. Там Сверху фотка , имя возраст, город того кому он пишет. Ниже поле со смайликами, которые можно добавить в сообщения., ниже поле для ввода текста и кнопка отправить. после отправления сообщения появляется в папке сообщения у адресата и у того кто оправил.

Спустя 1 час, 29 минут, 11 секунд (30.03.2009 - 19:24) twin написал(а):
Так, давай по порядку.
Цитата
Человек видит анкету в поиске, нажимает.
Где видит? Нам наверное сначала надо поиск сделать. И наверное вывод самых свежих, чтобы было куда нажать. Давай определимся с критериями поиска. В анкете куча полей, а на главной у тебя только несколько из них. Значит нужно делать простой и расширенный поиск. Для простого форма есть, теперь надо для расширенного. И еще, в каком виде выводить результаты? Так же фотками в табличке, как в альбоме или еще как? какие то сопроводительные надписи наверное надо. Ты потрать немного времени, подумай хорошенько и составь грамотный план наступления на мамбу smile.gif Это сэкономит потом кучу времени. Прямо по порядку и как можно подробнее:
1. Главная страница. Форма поиска. Поля:
а)Кто я
б)Кого ищу
в)В возрасте от до
.
.
.
ссылка на форму расширенного поиска.
2. Расширенный поиск, отдельная страница с формой. Поля:
.
.
.
.
3. При выборе то-сё открывается страница с результатом поиска. Результат в виде:

и так далее.

Спустя 47 минут, 57 секунд (30.03.2009 - 20:12) lira1 написал(а):
Результаты выводить на отдельную страницу. Вначале кол-во найденых.
3 ссылки все, кто сейчас на сайте, новые за сутки.
Изначально форма открывается но вкладке все.
Выводится по 10 в ряд
1Фото, имя, пол, возраст, страна город
познакомлюсь с мужчиной от 30 до 40 лет
2 Фото, имя, пол, возраст, страна город
познакомлюсь с девушкой от 20-35 лет
3
4
5
6
7
8
9
10

1стр. 2 стр. .....................................

Спустя 2 часа, 9 минут, 5 секунд (30.03.2009 - 22:21) lira1 написал(а):
Свернутый текст

На главной странице форма поиска
Общий расширенный

Общий
Кто кого ищет
Город страна
Возраст
С фото
С телефоном


При нажатии на расширенный открывается новая страница с формой поиска
поля
те же что и в общем
+
Цель знакомства

рост
вес
Материальное положение


Под общей формой поиска
Новые лица
Последние 5 зарегистрированных
1 фОто, возраст, пол,страна, город
2
3
4
5

Слева от общей формы поиска
Топ мужчины(название топа)
--------------------------------------------------------------------------------------
Страна Город
------|
| Имя,пол возраст, VIP другой цвет фона
фото
| VIP
______
---------------------------------------------------------------------------------------------
Топ женщины (название топа)
Страна Город
------|
| Имя,пол возраст,
фото
| Его сообщение ....
_____

Фото выводится на основании определения ip адреса юзера. С какого он города, с того и выходят фото, основное фото -которое

победило в предыдущем месяце

Нажимаешь на топ мужчины
Выводятся фото из твоего города, фотография та которую сам юзер отметил в фотоальбоме(там нужно вместо ссылки добавить в

анкету, добавить в топ), рядом возраст, город, кол-во голосов, и кнопочки добавить 1 голос. Добавить 10 голосов, добавить 100

голосов.
При нажатии на +10 или +100 выходит окошечко С КНОПКАМИ добавить 10 добавить 100 под кнопками стоимость данной услуги,

которая списывается с личного кошелка, если в кошелке денег не достаточно, то при нажатии на КНОПКУ выходят условия пополнения кошелька.


С одного ip можно отдать только один бесплатный голос в день.
Select с выбором региона, автоматически должен выбирать регион юзера
Первые идут три в центре увеличенные, распределены по голосам.
Далее все идут друг за другом по голосам, от наибольшего к наименьшему, 10 в горизонт. ряд
10 в вертикальный ряд постранично.


1 числа каждого месяца голосование обнуляется, лучший по набранным голосам, месяц находится на главной странице сайта.
В конце квартала выбирается лучший ЛеТА, ЛУЧШИЙ ОСЕНИ И т.д. Ну и он получает n сумму на счет в системе, и секретный приз)

С ТОПОМ ЖеНЩИН ТАКАЯ ЖЕ ИСТОРИЯ



ПОИСК

При нажатии на кнопку искать
Открывается новая страница
Анкеты выводятся с последней зарегистрированной или поднятой
Все | Кто сейчас на сайте | Новые за сутки

------|
| Имя,пол возраст,страна город
фото
| Познакомлюсь мужчиной от 30 до 40 лет.
_______


------|
| Имя,пол возраст,страна город
фото
| Познакомлюсь мужчиной от 30 до 40 лет.
_______




ит.д. 15 на странице

При нажатии на анкету из поиска
открывается анкета юзера



Наш файл show
но без ссылок редактировать

под фотографиями кнопка

написать сообщения | Послать сюрприз | Пригласить сыграть в игру на совместимость

(Тут выходят сюрпризы которые тебе отправляли Картинка, наводишь, там фото того кто отправил, ссылка имя на анкету, возраст)


написать сообщения


( нажимаешь открывается окно соообщений.)


Послать сюрприз


При нажатии на послать сюрпиз появляется окно с сюрпризами и способом отправки, сюрприз появляется на анкете кому отправил, с

подписью




Пригласить сыграть в игру на совместимость

Нажимаешь юзеру отправляется обыкновенное сообщение с текстом Я приглашаю тебя сыграть в игру.....
С сылками согасен НЕ согласен

а у тебя открывается окно с вопросами и с кнопками радио
( ни кто не увидит ваши ответы)
Отвечаешь форма отправляется в обработчик, ждем когда юзер так же ответит на вопросы


Он нажимает согласен

Открывается новое окно с вопросами и с кнопками радио он отвечает форма отправляется в обработчик

Обработчик должен обработать и выдать результать, по совпадению ответов.
10из10 100%
9 совпадений из 10 90% совместимость и т.д.


Результат отправляется обоим юзерам. Ваша совместимость ...%

А если он нажимает не согласен. Форма ответившего удаляется и ему направляется сообщение, собеседник отказался играть.



После регистрации в меню добавляются ссылки
мои сообщения моя анкета Мои настройки мой счет выход


При нажатии мои сообщения, выходит новая странца

На странице мои сообщения слева

Ваша страница находится на n месте.
Просмотров за сегодня: n,
за месяц: n
Поднять «наверх»?


Лидер сайта(ссылка )

Страна Город
------|
| Имя,пол возраст,
фото
| Его сообщение ....
_______ Кол-во ставок

Лидер вашего региона (ссылка та же)

Страна Город
------|
| Имя,пол возраст,
фото
| Его сообщение ....
Кол-во ставок
_______

Стать лидером(ссылка та же)


При нажатии на любую из трех ссылок
Выходит новая страница


Форма

Мое сообщение(приветствие)

Выбрать фото
радио кнопка фото из альбома
радио кнопка фото из альбома
и.т.д

Кнопка продолжить

Открывается новая страница

там правила участия
Как делать ставки с помощью смс или списанием сошелька при наличии на нем денег
и табличка
Текущие лидеры(кол-во их голосов) и последнее фото которое выбрал юзер. Как олько он делает ставку(его кол-во тож появляется)

Лидер сайта человек который сделал наибольшее количество ставок на всем сайте
Лидер региона человек который сдлелал наибольшее кол-во ставок в регионе, если он сделал 1, то следующий сделавший тож одну

его заменяет, если 2 то , следующий который сделал 1 становится внизу за ним,а него 1 ставка убавляется....



На странице мои сообщения в центре

____________________________________________________________-
Общая папка(ссылка) кол-во написавших , кол-во сообщений
_________________________________________________________________
Друзья(ссылка) кол-во написавших , кол-во сообщений
___________________________________________________________________
Черный список(ссылка) кол-во написавших , кол-во сообщений очистить

_______________________________________________________________________


|------|
| Имя,пол возраст, город
Чебокс | фото | Когда был(а) на сайте (n) 3 сообщения При нажатии на мои сообщения

ч-ка Число время открывается новое окошко
|написав
шего | оНА(имя) 'написала' 29 март 2009 в 15:05
привет

я(имя) 'написала' 20 март 2009 в 22:26
привет
итд
Новое сообщение
таблица со смайликами
поле текста

кнопка Отправить

|------|
| Имя,пол возраст, город
Чебокс | фото | Когда был(а) на сайте (n) 3 сообщения
| | Число время
_______



и.т.д.
15 на странице
Переместить отмеченные в папку select с папками кнопка ОК

1 стр 2 стр 3 стр....................................................



ПРИ НАЖАТИИ НА ССЫЛКУ МОЯ АНКЕТА
Выходит наш show

Только слева надо добавить

Ваша страница находится на n месте.
Просмотров за сегодня: n,
за месяц: n
Поднять «наверх»?






ПРИ НАЖАТИИ НА ССЫЛКУ МОИ НАСТРОЙКИ

1.Настройки VIP-пользователей
a)Внешний вид анкеты
b)Фильтрация входящих сообщений

2.Дополнительные настройки




Настройки VIP-пользователей Анкеты вип пользователей, в поиске помечаются как vip , и выделяются цветом фона, см. в

самом начале
1.Внешний вид анкеты




Стиль анкеты 10 квадратов с фоном, 5 рядов 4 колонки

________
i i
i i
Радио кнопка i
i i
i i
__предпросмотр____ При нажатии на предпросмотр открывает новое окно с анкетой юзера и показывает какой она будет

Юзер выбирает какой фон

кнопка сохранить

Если юзер не является vip пользователем открывается страница с условиями как им стать, если является фон подставляется


2.Фильтрация входящих сообщений

Форма
радио Принимать сообщения:(неактиваня если не vip)


чЕбокс От VIP-пользователей


чЕбокс От пользователей в возрасте от до


чЕбокс От пользователей с фотографией

радио Принимать сообщения от всех пользователей

кнопка Сохранить



2.Дополнительные настройки
Сменить емаил
сменить пароль


кнопка Сохранить





МОЙ СЧЕТ
Сумма на счете
способы пополнения счета

Спустя 1 час, 18 минут, 22 секунды (30.03.2009 - 23:39) HardWoman написал(а):
Уважаемые товарисчи! Убедительная просьба - не создавайте несодержательных сообщений. О психушке и прочем - можно в личку письмо.
Листать ваш топик уже страшно. Я почищу малехо

Спустя 11 часов, 50 минут, 1 секунда (31.03.2009 - 11:29) twin написал(а):
Цитата
не создавайте несодержательных сообщений.
Ой... unsure.gif

Так, ну приступим. Вот смотри что получается, когда за ранее не продумано. У нас данные для поиска оказались разбросаны по разным таблицим. Теперь нужно делать сложный запрос, который ничего кроме тормозов и пожирания ресурсов не даст. По этому, пока мы в дебри не забрались, нужно разделить эти данные. В таблице user оставить только аунтификацию, а остальное перетащить в анкету. К аунтификации относятся дата регистрации, логин, пароль, мыло и имя странички. При регистрации нужно данные разнести по таблицам. Сможешь сама? Я пока поисковиком займусь.

Спустя 1 час, 12 минут, 20 секунд (31.03.2009 - 12:41) twin написал(а):
Теперь дальше полезли косяки. База у нас получилась вообще ни к черту. Вот видишь, как плохо без предварительного планирования и архитектуры. sad.gif В базе полно кирилицы, что не допустимо на многоязычном сайте. Но это еще полбеды, главное, что по такой базе очень трудно организовать корректный поиск. Так что придется нам засучить рукова и сделать генеральную уборку. Значит так. Всю кирилицу из базы перенеси в константы (ru.php). Имена констант не важны пока, только делай похоже, чтоб легче ориентироваться потом. Вместо значений кирилицы в базе проставь порядковые номера. то есть было:
Код
enum('без пары', 'как пара Ж+Ж', 'как пара М+Ж', 'как пара М+М')
а должно стать:
Код
enum('1', '2', '3, '4')
Как закончишь, выложи сюда константы, я скрипты поправлю.

Спустя 1 час, 39 минут, 11 секунд (31.03.2009 - 14:20) lira1 написал(а):
Я вот так сделала, но че то не то
Свернутый текст
PHP
if(isset($_SESSION['pusk']))
{
unset(
$_SESSION['pusk']);

$insert = "INSERT INTO `".PREFIX."user` 
( `id` , `date` , `login` , `password` , 
`email` , `code`, `active`, `pagename` ) 
VALUES (
'', 
NOW( ) ,
'"
.$login."',
'"
.$password."',
'"
.$email."', 
'',
'',
'"
.encodeurl($login)."'
)"
;

$insert = "INSERT INTO `".PREFIX."ancet` 
( `sex` , `name` , `day` , 
`month` , `year`,`country` , `region`, `sity` ) 
VALUES (
'', 
NOW( ) ,
'"
.$sex."', 
'"
.$name."', 
'"
.$day."', 
'"
.$month."', 
'"
.$year."',
'"
.(int)$country_id."',
'"
.(int)$region_id."',
'"
.(int)$city_id."'
)"
;


Спустя 39 минут (31.03.2009 - 14:59) lira1 написал(а):
Архив
Лучше по этому будем делать, это основной. Константы там. И таблицы.

Спустя 2 часа, 11 минут, 15 секунд (31.03.2009 - 17:11) twin написал(а):
Красиво.... Только слишком по женски. Мы потом сделаем тебе выбор скина в зависимости от того, какой пол выбрали. А пока архив убери, а то и так опенсоурсе, ищё стырит кто нибудь под шумок вместе с дизом. Пусть топик читают и так же делают, нечего на все готовом. Теперь все файлы через личку. Щас поправлю кое что и расскажу что дальше.

Спустя 5 часов, 4 минуты, 29 секунд (31.03.2009 - 22:15) twin написал(а):
А инициализация переменных не та, старая. Ты новый vars.php делала?
PS Всё, починил. Проверь почту на форуме. Завтра распишу что как.

Спустя 9 часов, 13 минут, 51 секунда (1.04.2009 - 07:29) lira1 написал(а):
Цитата
А инициализация переменных не та, старая

Для чего она нужна? Что вообще туда выносят?


Спустя 3 дня, 14 часов, 23 минуты, 11 секунд (4.04.2009 - 21:52) Марио написал(а):
неужели тема закрыта? ohmy.gif
Быстрый ответ:

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