<?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 |
<? |
Только таблицы должны быть связаны.
Спустя 23 часа, 35 минут, 21 секунда (27.02.2009 - 22:38) Guest написал(а):
У меня не получается
Parse error: syntax error, unexpected
Enkei если у тебя все получится, выложи здесь код, плиз, а то уже хоть вешайся
Parse error: syntax error, unexpected
Enkei если у тебя все получится, выложи здесь код, плиз, а то уже хоть вешайся
Спустя 1 час, 8 минут, 42 секунды (27.02.2009 - 23:47) Enkei написал(а):
PHP |
<?php |
Вот до этого момента все получается замечательно. Список выпадает со странами!
Дальше немного не пойму что делать чтоб регионы выпали. Надо разобраться с кодом для того чтоб селекты не сбрасывались, вот:
PHP |
<?php |
HTML |
<option <?php echo sel(1) ?> value="1">Выбрать</option> |
Последняя строка это в селекте выбора страны прописать надо, и что почему именно 1 в этой же строке?
Спустя 1 день, 6 минут, 14 секунд (28.02.2009 - 23:53) Guest написал(а):
нашла вот такой код.
PHP |
<?php |
Теперь возник вопрос какой скрипт должен быть в 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 |
Спустя 34 минуты, 41 секунда (1.03.2009 - 17:46) lira1 написал(а):
УРА !!!!! БОЛЬШОЕ СПАСИБО!!! ВСЕ ПОЛУЧИЛОСЬ !!!!




Спустя 3 часа, 24 минуты, 46 секунд (1.03.2009 - 21:11) twin написал(а):
Ой, мама... Что это?
Что нужно получить то в итоге? Там же город и так выводится посмледней строчкой... Ну замени echo на $country и всё.

PHP |
<? |
Только country по английски значит страна, а не город.
Спустя 42 минуты, 56 секунд (1.03.2009 - 21:54) lira1 написал(а):
Да .это я скрипт знакомств купила, вот и маюсь, пытаюсь его переделать.
Тут просто страны были только, я на города передела а уж country на city менять все страницы кода...
А сейчас я хочу вставить твой файл, но как вот это все поменять чтоб скрипт рабочий остался
Вот как это выглядит сейчас
а код здесь А здесь мой старый код
Вот я хочу в этот код вставить твой. Но как?
Тут просто страны были только, я на города передела а уж country на city менять все страницы кода...
А сейчас я хочу вставить твой файл, но как вот это все поменять чтоб скрипт рабочий остался
Вот как это выглядит сейчас
а код здесь А здесь мой старый код
Вот я хочу в этот код вставить твой. Но как?
Спустя 17 минут, 48 секунд (1.03.2009 - 22:12) twin написал(а):
Засунуть его туда проблемы нет, только возникнет проблема с первыми полями. Они слетят, если выбирать город, потому что страница перезагрузится. Обычно такие штуки делаются на аяксе. Или надо предпринять меры, чтоб сохранить значения. А сама проблема в том, что неправильно указан путь до подключаемого файла.
Спустя 21 минута, 48 секунд (1.03.2009 - 22:33) sergeiss написал(а):
Цитата (twin @ 1.03.2009 - 22:12) |
Засунуть его туда проблемы нет, только возникнет проблема с первыми полями. Они слетят, если выбирать город, потому что страница перезагрузится. Обычно такие штуки делаются на аяксе. Или надо предпринять меры, чтоб сохранить значения. |
Это сделать не просто, а очень просто

Другой вариант - использовать джаваскрипт. А именно, подготовить все данные для списков, с указанием каких-то дополнительный признаков. По сути, выгрузить нужную часть БД пользователю на страницу

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

Ну и давай по порядку. Сначала нужно определиться, какие нужно собрать данные, и что потом с ними надо делать, что бы на основе этого спроектировать базу.
Имеем:
1.Имя
2.Пол
3.Возраст
4.Город
5.Мыло
6.Телефон
7.Фотки (сколько?)
Нужно:
1. Найти по запрашиваемым данным. То бишь
а)Всех девочек
б)Всех мальчиков
в)Всех в городе
г)Всех девочек в стране
е)Всех девочек в регионе
е)Всех девочек в городе
ж)Всех мальчиков в стране
з)Всех мальчиков в регионе
и)Всех мальчиков в городе
Что еще, сразу добавляй, потом сложнее будет.
Спустя 37 минут, 45 секунд (2.03.2009 - 00:57) lira1 написал(а):
ЭТО ОЧЕНЬ СЛОЖНО) ИСКРЕННЕ ТЕБЕ ЗАВИДУЮ!
Расскажи как ты научился? Чтоб по твоему пути идти)
Вот этот злополучный скрипт здесь развернут http://www.profsvaha.ru
Вот страны эти злополучные, анкета дурацкая и чтоб ее посмотреть нужно искать через поиск , а так не посмотришь, и поднятие анкеты по моему от руки и vip( ну это уже биллинг. А эти оранжевые блоки вообще ужас, скрипту видать лет 10, ну и что я хотела за 5$?!
Ну дизайн это другая тема...
Вообще хочу такой как mamba, но понимаю что не реально
.
Вот анкеты
Анкета
Регистрация
Поиск по ж,м, пара мж, пара мм), возрасту, городу.
И расширенный с добавлением рост, вес, цель знакомства.
Жду с нетерпением ответа!
Расскажи как ты научился? Чтоб по твоему пути идти)
Вот этот злополучный скрипт здесь развернут http://www.profsvaha.ru
Вот страны эти злополучные, анкета дурацкая и чтоб ее посмотреть нужно искать через поиск , а так не посмотришь, и поднятие анкеты по моему от руки и vip( ну это уже биллинг. А эти оранжевые блоки вообще ужас, скрипту видать лет 10, ну и что я хотела за 5$?!

Вообще хочу такой как mamba, но понимаю что не реально

Вот анкеты
Анкета
Регистрация
Поиск по ж,м, пара мж, пара мм), возрасту, городу.
И расширенный с добавлением рост, вес, цель знакомства.
Жду с нетерпением ответа!
Спустя 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) |
А ты когда здесь бываешь, и вообще в инете может лучше в аске. Чтоб я сразу могла все спрашивать? |
Это будет не совсем корректно. Потому что тема может быть полезна другим людям. Кто-то что-то может уточнить, если ему тоже интересно, но он что-то недопонял.
И также кто-то что-то может добавить, если сочтет нужным. И задавать вопросы и отвечать можно тогда, когда удобно.
Собственно, это и есть преимущества форума

Спустя 9 минут, 20 секунд (2.03.2009 - 09:11) sergeiss написал(а):
Цитата (lira1 @ 2.03.2009 - 09:04) |
А то весь форум узнает какая я дура)) |
Но в этом есть и плюс - все увидят, какая ты умная, потому что быстро учишься (а ты же будешь быстро учиться?)

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

А на мамбе ничего особо сложного не нашел.
Делай форму пока, такую как нравится. Прям на чистом HTML. И таблицу забей в базу.
Спустя 18 минут, 51 секунда (2.03.2009 - 10:04) lira1 написал(а):
Форму у меня сделаны. Будем делать как на Мамбе? 
Что мне дальше делать?

Что мне дальше делать?
Спустя 4 минуты, 39 секунд (2.03.2009 - 10:09) lira1 написал(а):
У меня на хостинге кодировок utf много
Сопоставление соединения с MySQL
какую выбирать general_ci
unicode ci
Сопоставление соединения с 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 написал(а):
Спустя 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 не прописал. Вот так:
кодировка utf-8, сопоставление utf8_general_ci а не кажет наверно потому, что SET NAMES не прописал. Вот так:
PHP |
<? |
lira1 Щас, сек. Посмотрим.
Спустя 1 минута, 26 секунд (2.03.2009 - 22:22) Bezdna написал(а):
twin а зачем в твоём файле 16 пустых строк в конце? Потом будете мучаться с "Cannot header information".

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

lira1
Теперь все это удали, а вот это распакуй туда.
Знач, смотри. Кодировка всех файлов должна быть utf-8. Ты наверняка, судя по почерку, пользуешься дримвейвером. Настрой его так, что бы кодировка страниц по умолчанию была такой. Там где то есть Редактировать -> Внешний редактор -> и где то там не помню. Кроме того, у него есть одна медвежачья услуга, он стили пишет кирилицей. следи за этим, лучше привыкай писать руками. А то будут казусы.
Ну в общем распакуй, осмотрись и задавай вопросы.
Спустя 45 минут, 8 секунд (2.03.2009 - 23:56) lira1 написал(а):
Как сейчас города в форму анкеты вставить?
Deny from all что это значить?
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 |
Сделай файл config.php Тока про кодировку файла не забывай.
Спустя 22 минуты, 15 секунд (3.03.2009 - 00:42) Bezdna написал(а):
Может стОит вместо
PHP |
@mysql_query("SET NAMES 'utf8'"); |
вставить
PHP |
@mysql_query('SET NAMES utf8'); |
Спустя 2 минуты, 12 секунд (3.03.2009 - 00:44) Enkei написал(а):
Теперь возникли проблемы с тем, как загнать этот скрипт в подготовленную мной htm страницу, первая часть получается где выбрать страну, а вот вторая часть кода где идет выбор региона и города выполнена в одном блоке <?php...?> , помогите плиз разбить вторую часть на две чтобы отдельно в каждую ячейку мона было вставить. Вот скрипт:
PHP |
<?php |
Вот 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
Вот какая нетерпеливая. Давй сначала со структурой разберемся, потом вставим что хошь. Там до вставки еще пахать неперепахать. Или ты не хочешь как на мамбе, хочешь как попало слепить?
Упс, обознался
Enkei
Вставить просто инклюдом можно. Следи за процессом.
Enkei
Вот какая нетерпеливая. Давй сначала со структурой разберемся, потом вставим что хошь. Там до вставки еще пахать неперепахать. Или ты не хочешь как на мамбе, хочешь как попало слепить?
Упс, обознался

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 |
Спустя 7 часов, 52 минуты, 48 секунд (3.03.2009 - 09:00) twin написал(а):
Префикс, это слово, с которого будут начинаться все таблицы сайта. То есть теперь таблицы будут называться не sity, country, region, а к примеру mamba_sity, mamba_country, mamba_region. Это нужно по минимум двум причинам. Во первых, можно будет в одну базу затолкать целую кучу таких сайтов, а во вторых, все таблицы будут рядышком. Если ты в базе будешь еще что нибудь прописывать, они не разбегуться кто куда.
Тепeрь сделай файл ru.php, помести его в каталог language, напиши в него:
Тепeрь сделай файл ru.php, помести его в каталог language, напиши в него:
PHP |
<? |
В этот файл мы вытащим все служебные слова, чтоб можно было менять язык сайта. Если языками владеешь, можешь сразу создать несколько таких файлов и переводить. Или Андрея попросим, он у нас полиглот. Андрюх, помогай!
Этот файл и конфигу подключи в индекс. Первыми строчками, по порядку - язык, конфига и т.д.
ЗЫ. Что бы время зря не тратить, изучай по ходу дела функции. Способ простой. Видишь незнакомую функцию, набираешь в адресной строке браузера это: http://ru.php.net/название_функции, например http://ru.php.net/define и смотришь, что это за звер. Вообще учить язык лучше по мануалу разработчика (это та самая ссылка). Потому что книжки пишут все кому не лень и иногда (часто) пишут чё попало.
PS PS Я так подробно не потому, что думаю про тебя плохо, а потому что тему еще куча народу читает

Спустя 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");
пишет
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.
Дальше сделай в бд таблицу регистрации. Назови префикс_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) |
...А ведь интерпретатор черным по русскому написал... |
Мне как-то привычнее фраза "русским по белому написано...."

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

Спустя 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 ;
Что не так?
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 может быть отключен, но я твердо убежден, что из-за пары параноиков, которые смотрят интернет без скриптов, не стоит портить красоту.
Ну что, осилим?
Теперь надо сделать валидацию, то биш проверку на правильность заполнения. Я предлагаю не искать легких путей, и сделать сразу на аяксе, чтоб круче чем на мамбе было. Предчуствую слабые возражения форумчан, что js может быть отключен, но я твердо убежден, что из-за пары параноиков, которые смотрят интернет без скриптов, не стоит портить красоту.
Ну что, осилим?
Спустя 8 минут, 40 секунд (3.03.2009 - 14:05) twin написал(а):
Знач еще, по таблице. Пол, по английски sex, (это не намек
), и у поля kod (лучше kode) к-во символов поставь 32, а не 10. Капчу в таблицу писать не надо, но поле нам пригодится.

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

Зачем для него 4 байта отводить???
Спустя 1 минута, 14 секунд (3.03.2009 - 14:12) twin написал(а):
Точно.
Тока наоборот лучше - (true - 'ж', false - 'м')
Тока наоборот лучше - (true - 'ж', false - 'м')

Спустя 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, 'Два раза в неделю');
`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, 'Два раза в неделю');

Спустя 14 минут, 46 секунд (3.03.2009 - 14:56) twin написал(а):
Ё-маё, по такой схеме даж 2 раза не прокатит
Вот исправления:
ALTER TABLE `strana_user` CHANGE `pol` `sex` ENUM( 'ж', 'м' ) DEFAULT NULL ,
CHANGE `kod` `сode` INT( 32 ) DEFAULT NULL

Вот исправления:
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 ;
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 за одно.
lira1
А сейчас будем писать валидатор. Делается это так:

lira1
А сейчас будем писать валидатор. Делается это так:
PHP |
<? |
продолжай, покуда сможешь.
Спустя 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 , но пока там ничего не понимаю

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

А что непонятно спрашивай, не стесняйся.
Спустя 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 написал(а):
Ну мои решения не совсем готовые, а разница в том, что я все таки могу расписать каждое движение, а готовый скрипт не может.

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

Хотя с таким учителем как Twin, вряд ли может быть по другому

Вот сделала, какие ошибки?
PHP |
<? |
Спустя 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 |
Спустя 48 минут, 6 секунд (3.03.2009 - 22:04) twin написал(а):
Enkei Ну я же написал уже, посмотри предыдущие страницы. Там все поделено, хош так оставь, хош в инклюд выдерни.
Цитата |
На этой фразе я и подумала что это не реально. |
А сомневаться не надь. Правда я не написал, что хорошим, а написал профессиональным. Потому что хорошим ты можешь стать только сама, если сильно захочешь. У тебя здорово получается. А профессиональным можно за это время заделаться. Я видывал профессионалов (людей, зарабатывающих этим деньги), которые html от php плохо отличают, но ничего - работают.
Я вот тоже профессионал, но хорошим программистом себя не считаю.
Вот по теме:

Вот по теме:
PHP |
<? |
Еще будет нужна проверка на уникальность логина. Но это попозже.
И еще, если у тебя дома денвер, то пока замени 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
Да, все тоже самое, и базу и скрипт.
Только обязательные поля проверять будем, зачем нам другие? И сразу тогда уж все русские надписи поменяй на константы и в файл ru.php
Спустя 17 минут, 40 секунд (3.03.2009 - 23:24) twin написал(а):
Ну вот как делали раньше:
PHP |
<? |
а в скрипт так:
PHP |
<? |
Спустя 43 минуты, 25 секунд (4.03.2009 - 00:07) twin написал(а):
Небольшая поправочка, ты начала писать, и что то пропустила. И я туда же

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

Спустя 40 минут, 51 секунда (4.03.2009 - 14:56) lira1 написал(а):
я Так понимаю все названия со значениями, долнны одинаково начинаться
Например
braksingle
brakmarried
braknotanswer
Например
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">Вес, кг </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> </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 |
<? |
Спустя 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 с одинаковыми ключами.
В таблице ты кое где поставила неверные кавычки. Надо не апострофы, а обратные. Это где буква Ё.
А с константами все верно. Молодца.
Только почему то нет надписей "Некорректный E-mail", Пароли не совподают" и "Длина пароля меньше 7 символов"
В таблице ты кое где поставила неверные кавычки. Надо не апострофы, а обратные. Это где буква Ё.
А с константами все верно. Молодца.

Спустя 5 минут, 33 секунды (4.03.2009 - 16:21) lira1 написал(а):
На радио если поменять то один выбор можно сделать. А если я хочу мужчину от 30-50 к примеру, ни как не выбрать
Может лучше их все отдельно в таблице прописать или как?
Может лучше их все отдельно в таблице прописать или как?
Спустя 7 минут, 7 секунд (4.03.2009 - 16:28) lira1 написал(а):
Цитата |
Только почему то нет надписей "Некорректный E-mail", Пароли не совподают" и "Длина пароля меньше 7 символов" |
А это я не понимаю как

Спустя 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">Вес, кг </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> </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 |
<? |
Спустя 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 нужно прописать?
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
Таблицы не закачиваются в базу
Ответ 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

Спустя 20 минут, 46 секунд (4.03.2009 - 18:35) twin написал(а):
Что то у тебя неправильно записано. Вот тут:
`id_user` int(11) NOT NULL,
`da' Наверное опять русская буква. У меня с твоего листинга все встало.
(Во фразочка
)
Tеперь следующий этап. Будем селекты засовывать. Куда их? Наверное и туда и туда надо. Ведь не во всем мире же искать... хотя кто знает
.
Ну в общем так. Селект засовываем в функцию, что бы не писать на каждой странице. Примерно так:
`id_user` int(11) NOT NULL,
`da' Наверное опять русская буква. У меня с твоего листинга все встало.
(Во фразочка

Tеперь следующий этап. Будем селекты засовывать. Куда их? Наверное и туда и туда надо. Ведь не во всем мире же искать... хотя кто знает

Ну в общем так. Селект засовываем в функцию, что бы не писать на каждой странице. Примерно так:
PHP |
<? |
Остальные сама.
Спустя 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() |
Спустя 1 час, 20 минут, 43 секунды (4.03.2009 - 20:23) twin написал(а):
Немного ты напутала с непривычки, но дело понятное - букаф незнакомых много. Вот рабочий вариант, обзови selects.php , положи в каталог functions и запусти. Пока так, чтоб проверить, потом мы аякс прикрутим. На досуге найди 10 различий
. Что не понятно, спрашивай сразу.

PHP |
<?php |
Только переименуй таблицы с городами-странами. Добавь префикс. Что там с той таблицей, получилось?
PS Научите кто нибудь, как под кат прятать это все... не могу кнопку найтить...

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

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

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

lira1
С кодировками нужно разобраться на берегу, иначе потом много чего надо будет перекодировать. Ты настроила редактор? Посмотри, лежит ли в корне .htacces который я тебе дал в комплекте. И проверь кодировку файлов.
Спустя 1 час, 1 минута, 40 секунд (4.03.2009 - 22:57) Bezdna написал(а):
Цитата (twin @ 4.03.2009 - 18:55) |
Bezdna Спасибо! Свернутый текст |
Свернутый текст
Тут ещё и SP исчезающее, наверное тест на трезвость.


Спустя 11 минут, 9 секунд (4.03.2009 - 23:08) Shine написал(а):
я тут прочита все что вы обсуждаете и много полезной информации для себя нашла
...но вы используете для выборки выпадающие списки, а мне нужно сделать так, что бы название узла из таблицы Uzel было ссылкой на список клиентов из таблицы Client этой же БД, и чтобы выбирались только те клиенты у которых ID_uzla из таблицы Uzel совпадает с ID_uzla из таблицы Client . подскажите как сделать такой код? Вот код, который выводит всю информацию таблицы Uzel:

PHP |
<?php |
Спустя 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 |
Спустя 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.

Спустя 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
и
xint
Спустя 17 минут, 35 секунд (5.03.2009 - 10:30) twin написал(а):
Лучше использовать редактор с подсветкой синтаксиса. Вот это (Notepad++) довольно неплохая и популярная штука. Только не ставь рускоязычный - глючит.
В нем открой файл, найди в меню Format. Там поставь галочку Convert to UTF-8 и пресохрани.
В нем открой файл, найди в меню Format. Там поставь галочку Convert to UTF-8 и пресохрани.
Спустя 1 час, 3 минуты, 50 секунд (5.03.2009 - 11:34) Shine написал(а):
Цитата |
Впервые встречаю названия полей бд кирилицей.... Или это псевдонимы? |
нет..не псевдонимы

я вставила запрос, который ты мне сказал:
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
PS
PHP |
<? |
Точку тут пропустил. А в другом месте лишняя... Скузми.

Спустя 32 минуты, 14 секунд (5.03.2009 - 12:14) Shine написал(а):
Цитата |
И поля луче бы все таки переименовать, пока не поздно. |
переименовала
...а вот в запросе он все равно ругается, напоминает про точку...я убрала точку после 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 |
и код, который выводит БД клиентов:
PHP |
<?php |
Спустя 18 минут, 27 секунд (5.03.2009 - 12:38) twin написал(а):
Не понятно, в одном это файле или нет. Если в одном, то не нужно два раза коннектится к базе. И я писал совсем не так, тут у ссылки нет GET параметра, по которому и осуществляется запрос. Нужно так:
PHP |
<? |
А вообще лучше бы открыть новую тему, а то эта и так кандидатом в книгу рекордов Гинесса числится

Спустя 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 |
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 |
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 |
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 |
<? |
Вот и не видно ничего. Наверное надо так:
PHP |
<? |
А вообще в таком случае лучше пользоваться 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 |
<? |
Что он скажет?
lira1
Ты не сказала кстати, что он выдает нотис. Ругается на header()
Я несколько раз слышал про такое, но сам впервые встречаю. Твой редактор как то криво пишет файлы. Выкинь его, перепмши все в новом. Можешь из старого скопировать. Только не открывай свои файлы, а именно перепиши. Сделай новые, в новом редакторе. Из старых файлов листинг скопируй. И записывай не поверх старых файлов, а вообще новые сделай.
lira1
Ты не сказала кстати, что он выдает нотис. Ругается на header()
Я несколько раз слышал про такое, но сам впервые встречаю. Твой редактор как то криво пишет файлы. Выкинь его, перепмши все в новом. Можешь из старого скопировать. Только не открывай свои файлы, а именно перепиши. Сделай новые, в новом редакторе. Из старых файлов листинг скопируй. И записывай не поверх старых файлов, а вообще новые сделай.
Спустя 2 часа, 6 минут, 56 секунд (5.03.2009 - 18:29) Bezdna написал(а):
Цитата (twin @ 5.03.2009 - 13:22) |
Твой редактор как то криво пишет файлы. |
Пресловутые 3 байта.

lira1 переконвертируй файлы в 'utf-8 without BOM'.
Спустя 4 минуты, 29 секунд (5.03.2009 - 18:33) lira1 написал(а):
Как таблицы в базе переименовать без потери данных?
Спустя 22 минуты, 40 секунд (5.03.2009 - 18:56) Shine написал(а):
PHP |
<? |
не помогло...так же не выводит данные(..сейчас вынесу эту тему в отдельную, может кто еще подключится к решению этой проблемы:-)
А еще я хотела спросить...у меня названия узлов и клиентов идут с кавычками и когда я нажимаю кнопку для редактирования и выбираю узел, то у меня открывается форма с заполненными полями, но название узла написано только до кавычек, а та часть которая в кавычках не выводится...что нужно сделать, чтобы все выводилось?
Спустя 4 минуты (5.03.2009 - 19:00) lira1 написал(а):
Все с таблицами и select ами разобралась. Сейчас все нормально отображается. Все эти пресловутые кодировки.
twin, что дальше делать будем?
twin, что дальше делать будем?
Спустя 21 минута, 30 секунд (5.03.2009 - 19:21) Bezdna написал(а):
Shine
В этом запросе ты хочешь выбрать поле ID_client с тем же ограничением?
В этом запросе ты хочешь выбрать поле 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 в случае успеха. Справишься?
Дальше нам нужна функция проверки уникальности логина. Задача такая. Нужна пользовательская функция, аргументом принимающая переменную $login, осуществляющая поиск по таблице PREFIX.users этого значения по колонке `login` и возвращающая true в случае успеха. Справишься?
Спустя 11 минут, 12 секунд (5.03.2009 - 19:50) twin написал(а):
Shine
Вот что значит некрасивый стиль написания кода. Я order by вообще не разглядел. Я бы все таки посоветовал придерживаться общепринятых стандартов. То есть SQL операторы писать в верхнем регистре, а названия полей в нижнем. Вот так:
Вот что значит некрасивый стиль написания кода. Я order by вообще не разглядел. Я бы все таки посоветовал придерживаться общепринятых стандартов. То есть SQL операторы писать в верхнем регистре, а названия полей в нижнем. Вот так:
PHP |
<? |
Тогда будет понятнее, что запрос выполнен с ошибкой синтаксиса. А что бы это узнать наверняка, нужно применить такую конструкцию:
PHP |
<? |
Спустя 17 минут, 30 секунд (5.03.2009 - 20:08) lira1 написал(а):
Это конечно для меня как китайская грамота. Сейчас почитаю, попробую.
Спустя 59 минут, 57 секунд (5.03.2009 - 21:08) twin написал(а):
Ничего не китайская. Все очень просто. Пишем запрос:
PHP |
<? |
потом получаем результат:
PHP |
<? |
а потом эту бредятину
суём в функцию:

PHP |
<? |
PS Мне всегда было любопытно, что заставляет красивых молодых девушек заниматься тем, чем занимаются волосатые небритые дядьки с красными глазами, то бишь программированием?
Спустя 5 минут, 13 секунд (5.03.2009 - 21:13) Shine написал(а):
Bezdna
Цитата |
В этом запросе ты хочешь выбрать поле ID_client с тем же ограничением? |
в этом запросе я хочу, чтобы у меня выбирались данные те у которых id_uzel из таблицы Client соответствует id_uzel из таблицы Uzel и упорядочивались по id_client

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... скидывать файлы которые создались при создании базы?

Спустя 4 минуты, 56 секунд (5.03.2009 - 21:46) lira1 написал(а):
Цитата |
Цитата PREFIX."`users` |
Я про users ? почему не user?
Цитата |
И получается совмещать программирование с маленьким ребёнком? |
В основном ночью) Ну и днем немного, правда он за это иногда долбит компьютер)
Спустя 3 минуты, 6 секунд (5.03.2009 - 21:49) twin написал(а):
Цитата |
скидывать файлы которые создались при создании базы? |
Нет, просто дамп. То есть файл, который сделает phpmyadmin при зкспорте базы. Там есть вкладка "экспорт" и внизу потом надо поставить галочку на "архивировать в zip"
Цитата |
Я про users ? почему не user? |
Потому что я ошибся. Вот хорошо, что не копипастишь тупо.

Спустя 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)"; |
Спустя 1 минута, 55 секунд (5.03.2009 - 23:00) Shine написал(а):
вот файлы со всеми обновлениями.
vsya_bd.php
bd_client.php
а архив не знаю как прикрепить..
vsya_bd.php
Свернутый текст
PHP |
<?php |
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 |
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
Вот смотри, сейчас все профессиональные тайны пораскрою
.
Чем отличается профессионал от любителя. Тем, что профессионалу уже это все поднадоело и он ищет нестандартные пути решения. Лень - двигатель прогресса. Ты этот запрос писала конечно же сама, долго роясь в учебниках и интернете. Оно конечно полезно, но результат не всегда радует. Вот сейчас ты ошиблась. А написать такой запрос - дело трех минут.
1. Заходишь в phpmyadmin
2. выбираешь нужную таблицу
3. там есть вкладка "Вставка". Тырц.
4. появляется практически твоя форма. Заполняешь названиями полей (просто копипастишь их слева)
5. пуск.
Результат:
Вот смотри, сейчас все профессиональные тайны пораскрою

Чем отличается профессионал от любителя. Тем, что профессионалу уже это все поднадоело и он ищет нестандартные пути решения. Лень - двигатель прогресса. Ты этот запрос писала конечно же сама, долго роясь в учебниках и интернете. Оно конечно полезно, но результат не всегда радует. Вот сейчас ты ошиблась. А написать такой запрос - дело трех минут.
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` |
Только лучше все таки так:
PHP |
$insert = "INSERT INTO `strana_user` |
потому что с конкатенацией работает гораздо быстрее и выглядет намного читабельнее. А префикс ты так и не поставила кстати.
Shine
Сейчас, сек, я посмотрю.
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. Это так, я надеюсь?
А вот тут ошибка:
PHP |
<? |
Кавычки в названиях полей должны быть обратные, а не апострофы. Надо так:
PHP |
<? |
а в данном случае лучше вообще так:
PHP |
<? |
Спустя 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 написал(а):
Все понятно, да так уж намного проще

Цитата |
префикс ты так и не поставила кстати. |
В смысле? Где?
Кстати все функции в один файл складывать? или как?
Спустя 2 минуты, 10 секунд (6.03.2009 - 00:27) twin написал(а):
Цитата |
Вот и я снова явился. |
Ребят, я конечно понимаю, что всем хочется помощи, но я не железный и время у меня не резиновое. Давайте попросим у хозяев форума сделать такой раздел - мастеркласс. Если у кого то будет желание тянуть от начала до конца, то значит хорошо. А я просто не разорвусь, вы уж не обессудьте. Или в очередь

Цитата |
В смысле? Где? |
В запросе. Так и стоит у тебя `strana_user` вместо `".PREFIX."user`
Цитата |
Кстати все функции в один файл складывать? или как? |
Нет, в разные. Чтоб легче ориентироваться и подключать только нужные. Функцию про логин можно прямо в валидатор прописать. Только подключи к нему конфигу. И сам валидатор положи в каталог modules/registr
Спустя 3 минуты, 32 секунды (6.03.2009 - 00:31) lira1 написал(а):
Ура я первая
А..понятно...исправлю
Да куда же их все таки складывать?

А..понятно...исправлю

Да куда же их все таки складывать?
Спустя 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. При удачном заполнении.....
И так далее. Это будет план действий, по которому мы и соберем регалку. Если бы ты была заказчиком, и в процессе передумала делать так, а захотела по другому, ябы ткнул носом в сослался на это ТЗ и потребовал бы оплату за допработы. Если хочешь стать профессионалом, привыкай делать все только с ТЗ.
<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 |
Теперь нужна инициализация всех переменных форм. В принципе мы уже это сделали в валидаторах, что бы не плодить и не повторяться вынеси инициализацию в отдельный файл. Вот это:
PHP |
<? |
а потом просто подключим куда нужно.
Спустя 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 |
{ |
Спустя 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 строке не вижу
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
Ураа!! Получилось:)...исправила апострофы на кавычки и все вышло
...Спасибо большое!!
Ураа!! Получилось:)...исправила апострофы на кавычки и все вышло


Спустя 10 минут, 3 секунды (6.03.2009 - 12:11) twin написал(а):
Да, все правильно.
Ошибки я тоже не нашел, видимо твой редактор чудит. Разве что по стилю. Выделяй операторы пробелами, так читабельнее. Когда кода станет много, сама поймешь, как это помогает.
Не так:
Ошибки я тоже не нашел, видимо твой редактор чудит. Разве что по стилю. Выделяй операторы пробелами, так читабельнее. Когда кода станет много, сама поймешь, как это помогает.
Не так:
PHP |
<? |
а так:
PHP |
<? |
Спустя 1 минута, 23 секунды (6.03.2009 - 12:12) twin написал(а):
Shine Ну слава Аллаху. Я искренне рад.

Спустя 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 |
<? |
Я не придираюсь, просто это когда в привычку войдет, будет все красиво и грамотно.
Спустя 4 минуты, 52 секунды (6.03.2009 - 12:47) lira1 написал(а):
Понятно
а редактор notepad
а редактор notepad
Спустя 4 минуты, 16 секунд (6.03.2009 - 12:52) twin написал(а):
Спустя 12 минут, 51 секунда (6.03.2009 - 13:05) lira1 написал(а):
Да с vars у меня вроде нет проблем
С регистрацией нормально
Проблема в ancet.php
Переписала ancet
Все равно ошибка в 14 строке
С регистрацией нормально
Проблема в 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 |
<? |
Тут зачем минус два?
Спустя 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 |
<? |
напиши это:
PHP |
<? |
заполни форму и посмотри, что он выдаст. Вот это:
[sex] => 1 и есть нужный нам элемент массива $_POST. Если поэксперементируешь, увидишь, что ключ ([sex]) не меняется, а меняется только хначение. Вот мы его примем и попросим мускул прописать в поле нужное нам значение из списка enum('ж', 'м'). Если 1, то запишется 'ж', а если 2, то 'м'. То есть не надо мудрить, просто напиши:
[sex] => 1 и есть нужный нам элемент массива $_POST. Если поэксперементируешь, увидишь, что ключ ([sex]) не меняется, а меняется только хначение. Вот мы его примем и попросим мускул прописать в поле нужное нам значение из списка enum('ж', 'м'). Если 1, то запишется 'ж', а если 2, то 'м'. То есть не надо мудрить, просто напиши:
PHP |
`sex`='".$sex."' |
ЗЫ Пока писал, ты сама разобралась. Ну мож кому пригодится, чтоб не пропало зря

Спустя 12 минут, 24 секунды (6.03.2009 - 14:32) twin написал(а):
С массивами я поторопился. Впринципе можно уже попробовать собрать в кучу и проверить. Индекс:
registr.php
и у кнопки в форме registr.html поставь имя name="ok". Запусти и попробуй заполнить форму. Потом глянь, появилась ли запись в базе.
Свернутый текст
PHP |
<?php |
Свернутый текст
PHP |
<?php |
Спустя 2 часа, 25 секунд (6.03.2009 - 16:32) lira1 написал(а):
А sex это не про пол, это цели знакомства
Спустя 5 минут, 8 секунд (6.03.2009 - 16:37) twin написал(а):
Ну если и цель, то объявлена явно.
Вот же у тебя:

Вот же у тебя:
PHP |
<td valign="top">Ваш пол </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....
Код вообще не отражается
Пол отражается только первичный "м", даже сли выбираешь женский
Месяц не отражается. В таблице мы делали 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>
Я так до отлаживалась, что сейчас не чего не пишет в таблицу
<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 |
<? |
Если ошибка в запросе, то мускул откликнится и покажет где.
Еще print_r($_POST);как я выше написал. Смотри, что где, анализируй и исправляй. Это называется трассировка. То есть поэтапный вывод данных из скрипта. Можно смотреть где и на каком этапе что происходит и предпринимать меры. Если сложно, копируй все сюда, что выдаст.
Еще print_r($_POST);как я выше написал. Смотри, что где, анализируй и исправляй. Это называется трассировка. То есть поэтапный вывод данных из скрипта. Можно смотреть где и на каком этапе что происходит и предпринимать меры. Если сложно, копируй все сюда, что выдаст.
Спустя 9 минут, 35 секунд (6.03.2009 - 17:59) lira1 написал(а):
А куда это вставлять?
В Выполнить SQL запрос(ы) на БД �
В Выполнить 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 |
<? |
Положи её в файл default.php в директорию functions и подключи к индексу.
Так как у нас будет валидация на аяксе, то не зачем возвращать заполненную форму в случае некорректного заполнения. По этому прямого вывода не будет. То есть мы можем обработать все данные на входе, не волнуясь за то, что бэеслэши вылезут на экран. Причем сделаем это одним махом, не расписывая по кусочкам:
Так как у нас будет валидация на аяксе, то не зачем возвращать заполненную форму в случае некорректного заполнения. По этому прямого вывода не будет. То есть мы можем обработать все данные на входе, не волнуясь за то, что бэеслэши вылезут на экран. Причем сделаем это одним махом, не расписывая по кусочкам:
PHP |
<? |
Сделай это и проверь еще раз макдональдом.
Спустя 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 |
<? |
только путь поставь свой.
В индекс так:
В индекс так:
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 |
Теперь попробуй все это запустить.
Спустя 59 секунд (6.03.2009 - 22:15) twin написал(а):
Цитата |
Сделала конечно. Но почти нечего в этой записи не поняла |
Разберемся попозже, когда заработает

Спустя 10 минут, 28 секунд (6.03.2009 - 22:25) lira1 написал(а):
Как почистить?
Так все вставила, вышел select с выбором страны
Так все вставила, вышел select с выбором страны
Спустя 12 минут, 51 секунда (6.03.2009 - 22:38) twin написал(а):
Отлично. Теперь я забыл чуток, допиши id в селекты:
PHP |
<? |
В файл 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 написал(а):
Спустя 5 минут, 34 секунды (7.03.2009 - 00:20) lira1 написал(а):
Спасибо

Спустя 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> |
Вот почему я мазилу ненавижу... Опера это прощает
. Поправил, смотри. И в хидере поменяй у себя.

Спустя 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
Но после выбора страны все равно ничего не происходит
Вот
Но после выбора страны все равно ничего не происходит

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

Спустя 3 минуты, 1 секунда (7.03.2009 - 11:29) lira1 написал(а):
Почему то у тебя в select.php только это
Свернутый текст
PHP |
<?php |
Спустя 25 минут, 59 секунд (7.03.2009 - 11:55) twin написал(а):
Цитата |
Почему то у тебя в select.php только это |
Потому что я безнадежно от тебя отстал... Не успеваю.

На самом деле я разнес их по разным файлам. И про дивы не написал, потому что там вообще много изменений.
Не расстраивайся, все щас заработает. Погоди сек.
Спустя 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;
Это что значит?
Зачем так пишут, одно и то же 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 |
<? |
Нужно для того чтобы
1. Не было ошибки при обращении к несуществующему элементу массива. Если в массиве $_GET не окажется page, то будет а-я-яй..
2. Объявляется переменная. Если не писать $page = NULL; то переменной не будет, а так она есть, хотя и пустая.
Дословно верхняя запись звучит так:
Переменная $page спрашивает: существует ли в массиве элемент $_GET['page'](функция isset()) ? Если да, то примет её значение. Если нет, то будут пустой (null).
1. Не было ошибки при обращении к несуществующему элементу массива. Если в массиве $_GET не окажется page, то будет а-я-яй..
2. Объявляется переменная. Если не писать $page = NULL; то переменной не будет, а так она есть, хотя и пустая.
Дословно верхняя запись звучит так:
Переменная $page спрашивает: существует ли в массиве элемент $_GET['page'](функция isset()) ? Если да, то примет её значение. Если нет, то будут пустой (null).
PHP |
$buffer = ob_get_contents(); |
Это что значит?Это буфферизация. Только еще нужно 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 в базе. А в валидаторе так:
<option value="0" >Месяц</option>
<option value="1" >Январь</option>
и так далее. А значения выбирать из ENUM в базе. А в валидаторе так:
PHP |
<? |
Спустя 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 значения заностся
<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 написал(а):
ДолжОн. Я у себя поменял - все айс. Может хостера сменить?
Смотри внимательно, где то чего то недотягиваешь.

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

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

Спустя 1 минута, 41 секунда (7.03.2009 - 21:08) twin написал(а):
И чёт не вижу я у тебя на хостинге изменений... Ты не туда уже заливаешь что ли?
Спустя 3 минуты, 24 секунды (7.03.2009 - 21:11) lira1 написал(а):
Как это?
Туда http://profsvaha.ru/strana/

Спустя 2 минуты, 17 секунд (7.03.2009 - 21:14) twin написал(а):
Ну а изменерия то где? Где value="0"?
Спустя 8 минут, 39 секунд (7.03.2009 - 21:22) lira1 написал(а):
Только тот файл не меняла, сейчас сделала.
Только я немного не так как ты.
НЕ правильно наверно?
ENUM в таблицу прописала
Только я немного не так как ты.
НЕ правильно наверно?
ENUM в таблицу прописала
Спустя 3 минуты, 17 секунд (7.03.2009 - 21:26) twin написал(а):
Правильно. Так даже лучше. Вооот. Работает теперь. Еще есть вопросы, или дальше поедем? Смотри - анкету сама делать будешь

Спустя 6 минут, 41 секунда (7.03.2009 - 21:32) lira1 написал(а):
Я и так и подумала. Я вот не поняла как эти аяксы через id присобачивать
<span class="error" id="error_5" ></span
откуда вот это берется
А файл js вообще очень сложный
<span class="error" id="error_5" ></span
откуда вот это берется
А файл js вообще очень сложный
Спустя 5 минут, 33 секунды (7.03.2009 - 21:38) twin написал(а):
class="error" это просто класс CSS, что бы красненько было. Сам CSS в соответствующей директории. id="error_5" ни откуда не берется, это я написал
. А файл 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+'®ion_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 написал(а):
Да уж. ... Помощь зала!!!
для проверки анкеты надо отдельный js создавать или в этот нужно добавлять?

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

Спустя 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 написал(а):
Кошки съели.
Нужно бэкапить файлы, и лучше на отдельный диск или вообще носитель. Иначе в один прекрасный момент может случиться страшное. А диск у денвера иногда просто глючит. Попробуй перезагрузить комп.
PS Видимо нашла, раз сообщение пропало. Или это аномалия и у тебя не только диск пропадает? С праздником тебя, теперь уже по настоящему!

PS Видимо нашла, раз сообщение пропало. Или это аномалия и у тебя не только диск пропадает? С праздником тебя, теперь уже по настоящему!
Спустя 10 минут, 24 секунды (8.03.2009 - 08:56) lira1 написал(а):
Аякс этот если честно вообще не понятный. Да нашелся. Спасибо.
Спустя 1 час, 10 минут, 9 секунд (8.03.2009 - 10:07) twin написал(а):
Щас все поймешь. Для начала нужно четко понимать, что где происходит. Давай по порядку. Вот сделай такой файл:
ajax.html
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
Вот это свойство и юзается аяксом. Теперь наша задача получить в JS что то, что находится на сервере. Сделай такой файл:
ajax.php
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> |
То есть запускаем встроенную прграмму (создаем объект), который будет соединять нас с сервером. Потом пишем функцию, которая управляет этим объектом (программой):
и еще одну, которая будет писать нам ответ сервера в див.
Вот теперь нажми на кнопку и посмотри. Надпись получилас, а страницу мы не трогали. Теперь дальше. Файл ajax.php это обычный php-скрипт, со всеми вытекающими. То есть он может принимать данные, обрабатывать их и выдавать результат. Усложним малость задачу:
а файл ajax.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 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> |
Свернутый текст
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> |
PHP |
<? |
Вот теперь можешь попробовать. Знач что получается. Мы передали данные из поля на сервер, не имея даже формы. Потом получили ответ сервера, то есть результат работы php скрипта и вывели его на страницу, не перегружая её. Вот в принципе и все. Остальное дело фантазии - что вывести и как.
Спустя 1 час, 56 минут, 43 секунды (8.03.2009 - 12:03) lira1 написал(а):
Столько манипуляций для того чтоб вывести одну строчку
Спустя 7 минут, 12 секунд (8.03.2009 - 12:10) twin написал(а):
Нифигасе одну... Я недавно целый сайт на аяксе написал
. Ты хоть чё нибудь поняла?

Спустя 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.php
Свернутый текст
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 |
<? |
Спустя 2 часа, 24 минуты, 7 секунд (8.03.2009 - 16:13) lira1 написал(а):
Все равно до мне я не доходить как это к radio и checkbox применить

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

Свернутый текст
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"; |
Спустя 36 минут, 45 секунд (8.03.2009 - 17:47) lira1 написал(а):
Так по отдельности более менее понятно но как вот это к анкете применить
Мне уже начинает казаться, что я дура, хотя никогда таковой не была

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

Спустя 19 минут, 5 секунд (8.03.2009 - 18:06) twin написал(а):
Это творческий запор кризис. Я в тебя вкачал столько информации, сколько другие получают за полгода. Не мудрено. Зато потом прорвет откроется второе дыхание и все станет так ясно, что сама будешь смеяться - как же я не понимала таких простых вещей. Я поражаюсь твоему упрямству. Если чесно, думал давно плюнешь. Забудь про анкету, тут до анкеты как ползком до Китая. Спрашивай, что еще не понятно, подробно, не стесняйся.
Спустя 8 минут, 52 секунды (8.03.2009 - 18:15) lira1 написал(а):
Цитата |
что сама будешь смеяться - как же я не понимала таких простых вещей. |
Это точно. Так же думаю.
Вопросов нет пока
Спустя 34 минуты, 27 секунд (8.03.2009 - 18:50) twin написал(а):
Вот это уже хуже, когда вопросов нет. А потому хуже, что это самая распространенная ошибка начинающих программистов - обрадоваться первому результату. Если скрипт пишешь для себя, то конечно хозяин-барин. Но если за это получаешь деньги, то ответственность там уже другая. Я специально оставил дырочку, что бы показать, как может повести себя недоделанный скрипт. Вот набери в поле "Логин" любую строку, начинающуюся я амперсанда(&) и увидишь, что юзера с логином к примеру &er мы обидели. Это конечно мелочи, но важен сам подход к постановке вопроса. Мелочей быть не должно. Всего конечно можно и не предусмотреть, баги вылазят даже на очень продвинутых ресурсах, но стараться надо.
Спустя 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();
Если интересно, можешь посмотреть, что будет, когда сделаешь так:
Ткперь дальше, про пароль. Вот представь себе, что твой сайт взломали (Тьфу-тьфу-тьфу конечно) и злой хацкер получил доступ к базе данных. А там на всеобщем обозрении лежат логин-пароль. Логин, это информация не секретная, а вот когда в паре, уже страшнее. Человек по природе ленив и забывчив, по этому часто использует одни и те же пароли везде подряд. Злоумышленник забъет это в свою хацкерскую базу и будет ломать аккуанты на других сайтах. А может и до вебмани доберется... Косвенно ты будешь виновата. По этому никогда нельзя хранить пароль не в зашифрованном виде. Шифруется пароль односторонне. То есть так, что его вообще невозможно расшифровать. Есть такой алгоритм MD5, который позволяет это сделать. И функция. которая шифрует (хэширкет) строки называется так же md5();
Если интересно, можешь посмотреть, что будет, когда сделаешь так:
PHP |
<? |
Вот перед занесением в базу, нужно пароль обработать этой функцией. Только одно но. Мы на входе весь массив 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 |
<? |
, поставь её в валидатор, потому что он автономный, а в индексе так:
PHP |
<? |
ЗЫ Не, ну ты точно упертая... Ты же должна сидеть за банкетным столом, а не за компьютерным

Спустя 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 & & characterictics of volt& Guest004 |
и сравни с тем, что в базе. Ни какие изменения не допускаются. Еще сделай хэш какой нибудь строки, введи такую же в качестве пароля и сравни хэши в базе и эталонный. Попробуй различные варианты мыла. с дефисом, с заглавными буквами и т.д. Если все норм, поедем дальше.
Спустя 23 минуты, 41 секунда (8.03.2009 - 22:14) lira1 написал(а):
Все логины пропускает и заносит
емаил с заглавными и квачками не пропускает
пароли шифрует
Еще я в форме везде убрала максимальное кол-во символов
емаил с заглавными и квачками не пропускает
пароли шифрует
Еще я в форме везде убрала максимальное кол-во символов
Спустя 6 минут, 54 секунды (8.03.2009 - 22:21) twin написал(а):
Емайл с заглавными нужен. По этому вот те первый ляп. Поставь в регулярку модификатор i
PHP |
<? |
Спустя 12 минут, 55 секунд (8.03.2009 - 22:34) lira1 написал(а):
Сейчас пропускает.
А если человек забудет пароль, как будет напоминаться, если шифруется?
А если человек забудет пароль, как будет напоминаться, если шифруется?
Спустя 8 минут, 25 секунд (8.03.2009 - 22:42) twin написал(а):
А нефиг забывать.
Вообще, по правилам делается восстановление пароля. То есть мы сгенерим что нибудь временное, и дадим возможность еще раз ввести пароль. А времянку отправим на мыло. Но давай все по порядку.
Открываем ТЗ

Открываем ТЗ
Код |
После регистрации переход на новую страницу Поздравляем! Регистрация прошла успешно. Вам необходимо подтвердить e-mail адрес, для этого следуйте инструкциям в письме, которое отправлено |
Вот. Значит теперь нам нужна эта новая страница. Я в верстке дуб, по этому делай сама, прям на чистом html
Спустя 3 минуты, 4 секунды (8.03.2009 - 22:45) lira1 написал(а):
Хорошо.
Я все хотела спросить в каком ты городе?
Я все хотела спросить в каком ты городе?
Спустя 20 минут, 10 секунд (8.03.2009 - 23:05) twin написал(а):
Новокузнецк. Это Кемеровская область. Но я давно живу по московскому времени, если ты про это

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

Тогда значит так. Переделай страницу, на ней должна быть форма с полем ввода для кода активации учетной записи.
Спустя 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 сайта. Один такой тематики, другой серьезной.
И вопрос как можно несколько доменов подключить к одной базе? Есть ли в этом сложность?
Вообще будет 2 сайта. Один такой тематики, другой серьезной.
И вопрос как можно несколько доменов подключить к одной базе? Есть ли в этом сложность?
Спустя 7 минут, 2 секунды (9.03.2009 - 12:36) twin написал(а):
Цитата |
Вообще будет 2 сайта. Один такой тематики, другой серьезной. |
А это что, не серъёзная тематика разве? Народ жаждет общения. Святое дело помочь.

Цитата |
В чем отличие для нас потврждения и активации? |
Подтверждение, это когда зарегался и сразу можешь пользоваться. А не подтвердил - через сутки капут. Вот за эти сутки боты тебя завалят спамом с ног до головы. А активация, это когда нужно сначала ввести код, полученный на мыло, и только потом можно что то писать.
Цитата |
как можно несколько доменов подключить к одной базе? Есть ли в этом сложность? |
Никакой сложности, если домены на одной площадке. Сервер MySQL у них один. Более того, несколько сайтов на одном хостинге могут пользовать одну на всех базу, то есть вносить изменения и т.д.
Спустя 7 минут, 8 секунд (9.03.2009 - 12:43) lira1 написал(а):
Цитата |
А это что, не серъёзная тематика разве? Народ жаждет общения. Святое дело помочь. smile.gif |
Да это понятно, просто я решила разделить серьезные отношения и не серьезные, чтоб сразу с первой страницы сайта это было понятно.
А то на мамбе серьезных отношений ищешь, а они все секс...И многих это там задалбало.
Ну тогда будем делать активацию. Но можно сделать так, что человек может смотреть все страницы сайта, не зарегистрированный, а вот писать и смотреть полноразмерные фото не может?
Спустя 10 минут, 36 секунд (9.03.2009 - 12:54) twin написал(а):
Ну так конечно можно. Для того и сочиняется ТЗ. А потом бедные программисты греют головы, как все прихоти заказчика удовлетворить.
Так что давай корректировать. ТЗ. Пиши более подробно про функционал, про взаимодействие и т.д. Так как сейчас мы работаем без малейшего намека на архитектуру. А это не есть хорошо.

Спустя 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"> </td> <td width="414"> </td> <td width="192"> </td> </tr> <tr> <td height="184"> </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> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> </table> <p> </p> </form> |
Спустя 36 минут, 32 секунды (9.03.2009 - 14:33) twin написал(а):
Ну ладно, в процессе поймешь, что и как надо проектировать. Следующий будешь делать уже по науке
Форма такая годится. Теперь нам нужно редириктом отправить на неё зареганного юзера. Вот тут сразу вопрос. ЧПУ будем пользовать или так сойдет?

Форма такая годится. Теперь нам нужно редириктом отправить на неё зареганного юзера. Вот тут сразу вопрос. ЧПУ будем пользовать или так сойдет?
Спустя 1 час, 19 минут, 25 секунд (9.03.2009 - 15:53) lira1 написал(а):
Цитата |
редириктом |
Цитата |
ЧПУ |
Незнакомые слова...

Спустя 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 |
Вызываетс так:
PHP |
$mail = new Create_Mail(); |
То есть мы фактически в переменную $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
Следи за процессом.
А вообще глянь что у тебя получилось. Если ты в utf-8 работаешь, то поймешь, что не проще.
Следи за процессом.

Спустя 7 часов, 41 минута (10.03.2009 - 08:36) lira1 написал(а):
Ну вот так получается
X-Sendmail-Cmdline: sendmail.pl -t -i
To: lira1@swaha.ru
Subject:
Привет
Да я сегодня думала, что нужно еще сделать рассылку новых анкет.
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 |
Знач что тут. Сначала мы определяем переменные внутри класса по умолчанию. Тип, кодировку и разделитель. Разделитель (перенос строки) на разных платформах используется разный, по этому в первой функции мы определяем платформу и в зависимости от выбираем разделитель. Функция имеет название такое же как класс, по этому выполняется автоматически при запуске класса. Конструкция $this-> означает, что это местная, внутриклассовая переменная. То есть это вместо $, но только для тех переменных, которые определены в классе.
Вторая функция позволяет выставить нужный тип письма. Это с заделом на будущее, вдруг нам захочется расскрасить его html тегами.
Третья функция форимирует заголовок. В ней мы выставляем тип, кодировку, а так же от кого это письма. Если нет обратного адреса, значит ставим адрес сайта. В конфигу теперь нужно дописать это:
Вторая функция позволяет выставить нужный тип письма. Это с заделом на будущее, вдруг нам захочется расскрасить его html тегами.
Третья функция форимирует заголовок. В ней мы выставляем тип, кодировку, а так же от кого это письма. Если нет обратного адреса, значит ставим адрес сайта. В конфигу теперь нужно дописать это:
PHP |
define('MAIL_SUPPORT','lira1@swaha.ru'); |
с твоим почтовым ящиком. А вызывать будем так:
PHP |
$mail = new Create_Mail(); |
Разбирайся и пробуй.
Спустя 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>
Привет
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; |
Зачем это надо. Да в принципе и незачем, просто для подстраховки. Дело в том, что если написать подряд несколько адресов через запятую или Сс, то письма отправятся по всем адресам. Это клад для спамеров. Они будут использовать твой сайт как Байконур для рассылки своих наглых спамовских сообщений. Правда если стоит валидатор, то он на входе не пустит ничего лишнего, но мало ли, вдруг где нибудь забудем.
Теперь тема. Кирилицу в теме письма нужно обязательно кодировать, иначе может придти абра-кадабра. Делается это так:
Теперь тема. Кирилицу в теме письма нужно обязательно кодировать, иначе может придти абра-кадабра. Делается это так:
PHP |
var $Subj = MAIL_SUPPORT; |
Добавь это в класс, а вызывать теперь будем так:
PHP |
$mail = new Create_Mail(); |
Спустя 3 минуты, 38 секунд (10.03.2009 - 11:13) twin написал(а):
Да, забыл. Функцию отправки надо тоже переделать:
PHP |
function SendMail() |
Спустя 1 час, 53 минуты, 3 секунды (10.03.2009 - 13:06) lira1 написал(а):
И как сюда подставлять адрес который вводятся в регистрации
$mail -> ToMail("vasa@pup.ru");
$mail -> SubMail('От Васи Пупкина');
И как сюда прописать адрес сайта
.MAIL_SUPPORT.
$mail -> ToMail("vasa@pup.ru");
$mail -> SubMail('От Васи Пупкина');
И как сюда прописать адрес сайта
.MAIL_SUPPORT.
Спустя 49 минут, 44 секунды (10.03.2009 - 13:56) twin написал(а):
Цитата |
И как сюда прописать адрес сайта .MAIL_SUPPORT. |
Я же написал, что в конфигу эту крнстанту.
А адрес мы подставим оч. даже просто. Но сначала давай класс доделаем, чтоб не возвращаться. Нам же надо не просто привет послать, а что то полезное. По этому сделаем так:
А адрес мы подставим оч. даже просто. Но сначала давай класс доделаем, чтоб не возвращаться. Нам же надо не просто привет послать, а что то полезное. По этому сделаем так:
PHP |
function SendMail($body) |
А вызывать будем так:
PHP |
$mail = new Create_Mail(); |
Теперь можно сюда поставить нужный нам адрес, который достанем из базы:
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 написал(а):
Ну там совсем все по другому написано, я пробовала не получается.
Куда че подставлять
Куда че подставлять

Спустя 13 минут, 56 секунд (10.03.2009 - 15:20) twin написал(а):
Сначала делаем редерикт на страницу с формой активации. Только не совсем так, как я сделал в поздравлении, а прям на саму себя, только с GET параметром. Вот:
PHP |
if($sql) |
Теперь все страницы будут подключаться так :
index.php
PHP |
<?php |
Вот в новый файл active.php и напиши функцию генерации случайной строки. Там же по запросу можно выдернуть E-mail вновьиспеченного юзера и состряпать информационное письмо.
Спустя 9 минут, 1 секунда (10.03.2009 - 15:29) lira1 написал(а):
А эту строку из индекса убираем?
$password = isset($_POST['password'])?md5($_POST['password']):NULL;
$password = isset($_POST['password'])?md5($_POST['password']):NULL;
Спустя 5 минут, 7 секунд (10.03.2009 - 15:34) twin написал(а):
Нет, это просто у меня старый. Я же говорю - безнадежно отстал

Спустя 1 час, 22 минуты, 33 секунды (10.03.2009 - 16:56) lira1 написал(а):
Не получается в registr.php дописала
if($sql)
header("location: ".DOMEN."/?page=active&id=".mysql_insert_id());
active.php
if($sql)
header("location: ".DOMEN."/?page=active&id=".mysql_insert_id());
active.php
Свернутый текст
PHP |
<? |
Спустя 8 минут, 31 секунда (10.03.2009 - 17:05) twin написал(а):
Нееее. Так не пойдет. Нельзя бездумно копировать. Там же все совсем по другому. Надо вникнуть в суть проблемы.
Давай по порядку. Первым делом нужно вынуть из базы E-mail.
Давай по порядку. Первым делом нужно вынуть из базы E-mail.
Спустя 21 минута, 23 секунды (10.03.2009 - 17:26) lira1 написал(а):
Я думала, но не понимаю я
$query= SELECT `email` FROM `".DOMEN."_user`

$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;
?>
Свернутый текст
Вот так пыталась
<?
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 |
<? |
Конфигу подключать не надо, потому что она уже подключена к индексу. А разметка я вообще не понял зачем. Нам же надо почту отправить, а таблица тут совсем не причем. Вот теперь в файл можешь засунуть такой тег
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"); |
Расскажи значение этого
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() |
Спустя 7 минут, 17 секунд (10.03.2009 - 22:12) lira1 написал(а):
Написала $info вставлять в mail.php?
Это я и не читала ты ведь меня на шаг 8 отправлял
Это я и не читала ты ведь меня на шаг 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 |
Спустя 31 минута, 30 секунд (10.03.2009 - 23:13) twin написал(а):
Все правильно вставляешь. Только аккуратнее надо. Вот почему у тебя тут так:
PHP |
$info = "С Вашего э..."; |
а отправлять собираешься это:
PHP |
if($mail -> SendMail($active_info)) |
Теперь опять объясню. В скриптах не должно быть ни одной буквы, не относящейся к коду. Все, что мы вытаскиваем наружу, на экран или в письмо, нужно выносить в файл language/ru.php в виде констант. Вот это будет в теме письма
Код |
ACTIVE |
и все надписи подели на константы и так же туда.
Теперь дальше. Раз у нас в тексте письма есть html разметка, значит выставляем нужный тип:
Теперь дальше. Раз у нас в тексте письма есть 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. А её в константу не засунешь. И вот откуда она у тебя кстати взялась? Что в ней будет? Вот подумай и поймешь, куда это:
На константы делить нужно разумеется письмо. А почему делить - потому что там есть переменная - $key. А её в константу не засунешь. И вот откуда она у тебя кстати взялась? Что в ней будет? Вот подумай и поймешь, куда это:
PHP |
$key = md5(mysql_insert_id().rand_str()); |
А в a в active.php пока только запрос на выборку мыла, который мы чуть раньше сделали, что бы его на страницу вывести. Кстати, почтовый класс подключи в индексе в группу registr а не active
Спустя 3 часа, 51 минута, 59 секунд (11.03.2009 - 09:56) lira1 написал(а):
Тебе легко говорить, я никогда этого не делала, и еще не очень понимаю, как это все вместе сделать. Я и так и сяк. Если бы можно было понимать где ошибка? А то ведь ни че не поймешь.
Я понимаю, после валидации, составление уникального кода, составление письма.
Отправка письма. Переход на форму активации
Но как все это????????Все я умираю!
Я понимаю, после валидации, составление уникального кода, составление письма.
Отправка письма. Переход на форму активации
Но как все это????????Все я умираю!

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

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


Свернутый текст
PHP |
<?php |
Свернутый текст
PHP |
<?php |
А вот константы:
Свернутый текст
PHP |
define("INFO_FOR","С Вашего электронного почтового адреса поступила заявка регистрации на сайте "); |
Пробуй.
Спустя 1 час, 17 минут, 52 секунды (11.03.2009 - 12:47) HardWoman написал(а):
Цитата |
Всегда что то в первый раз и всегда это трудно (и даже больно). А отчаивться не надь. Все наладится и понравится потом. |
Вот это мне особенно понравилось

Надо создать форум перлы
Спустя 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="Зарегистрироваться" />
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 написал(а):
Можешь ничего не менять, это не мешает
Но вообще просто скрытое поле выкинь, оно нам больше не надо. Получилось что нибудь? Если получилось, залей на хостинг, я гляну.

Спустя 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
сначало на класс ругался,
а сейчас когда нажимаешь регистрация, выходит страница активации сразу
и пишет 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'])) |
Полю code в базе поставь тип varchar(32)
И не понял я, что он и где ругался на класс. Письмо приходит не в html формате, но может у тебя так настроен клиент. Добавь в письмо \r\n
PHP |
$info = INFO_FOR."<b>".DOMEN."</b><br>".INFO_ACT." |
и попробуй еще раз.
PS У меня большие проблемы со связью
, по этому меньше жди, больше думай сама.
PS У меня большие проблемы со связью

Спустя 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
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 |
<? |
Свернутый текст
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"> </td> <td width="414"> </td> <td width="192"> </td> </tr> <tr> <td height="184"> </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> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> </table> <p> </p> </form> |
Спустя 31 минута, 3 секунды (11.03.2009 - 19:34) twin написал(а):
Весь active.php Должен выглядеть так:
PHP |
<?php |
У тебя $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 убери
Это не просто дырка, это прямо катлован. Так что давай её заткнем. В registr.php убери
PHP |
unset($_SESSION['pusk']); |
а в active.php сделай так:
PHP |
if(isset($_GET['id']) && isset($_SESSION['pusk'])) |
Вот теперь спать можно относительно спокойно.

Спустя 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
Как правильно $code записать в active?
Parse error: syntax error, unexpected '[', expecting T_PAAMAYIM_NEKUDOTAYIM

Как правильно $code записать в active?


Спустя 7 минут, 2 секунды (11.03.2009 - 22:58) twin написал(а):
так ты покаж, что там у тебя, я ж не вижу

Спустя 5 минут, 27 секунд (11.03.2009 - 23:03) lira1 написал(а):
PHP |
<?php |
Спустя 6 минут, 9 секунд (11.03.2009 - 23:09) twin написал(а):
Так. Во первых убери это:
PHP |
include("config.php"); |
это я прохлопал наверное из отладочного скрипта. Оно есть уже в индексе. А во вторых, что за скобки
PHP |
{ |
?
Спустя 4 минуты, 44 секунды (11.03.2009 - 23:14) twin написал(а):
И зачем два запроса? Если надо вывести еще и имя, то тогда надо так:
PHP |
<?php |
Спустя 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 лапах, и тот падает.
Сомневаешься - спроси лучше.

Спустя 5 минут, 47 секунд (11.03.2009 - 23:26) lira1 написал(а):
Цитата |
Ой, а это что: |

Спустя 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 прописано?
А почему переменная 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>";
Может в письме что изменить
$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;
Вот тут мне кажется что то не то
$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 |
} |
Спустя 20 минут, 49 секунд (12.03.2009 - 17:04) lira1 написал(а):
И так просто, сума сойти
Спустя 22 минуты, 35 секунд (12.03.2009 - 17:27) twin написал(а):
А я говорил - ничего сложного.
Теперь надо юзьверя активировать. Добавь в таблицу поле active ENUM('0', '1')только последним столбиком. Нам нужно написать запрос, который будет ставить в нем единичку для строки, code которой совподает с тем, что получили из письма. Только не из GET, а уже из формы активации.

Спустя 45 минут (12.03.2009 - 18:12) lira1 написал(а):
Добавила, а вот как и где запрос писать?

Спустя 13 минут, 19 секунд (12.03.2009 - 18:25) twin написал(а):
В файле active.php делаем новый блок, который будет запускаться из формы:
PHP |
if(isset($_POST['Submit'])) |
Подсказка
UPDATE и WHERE

Спустя 40 минут, 4 секунды (12.03.2009 - 19:05) lira1 написал(а):
PHP |
if(isset($_POST['Submit'])) |
Не подставляет

Спустя 12 минут, 24 секунды (12.03.2009 - 19:17) twin написал(а):
Потому что теперь мы юзера должны узнать по походке коду из письма:
PHP |
if(isset($_POST['Submit'])) |
А $code надо взять из формы. И про инъекции не забывай.
Спустя 1 час, 10 минут, 31 секунда (12.03.2009 - 20:28) lira1 написал(а):
Цитата |
А $code надо взять из формы. И про инъекции не забывай. |
а подсказка?

Спустя 17 минут, 12 секунд (12.03.2009 - 20:45) twin написал(а):
Вот подсказка:
Теперь нужно сделать автологин. Добавь в форму чекбокс с надписью "Запомнить Вас?" Щас будем кукисы юзать. Ты то, что сделали, все понимаешь, или с трудом?
Свернутый текст

Свернутый текст
PHP |
if(isset($_POST['Submit'])) |
Теперь нужно сделать автологин. Добавь в форму чекбокс с надписью "Запомнить Вас?" Щас будем кукисы юзать. Ты то, что сделали, все понимаешь, или с трудом?
Спустя 8 минут, 48 секунд (12.03.2009 - 20:54) lira1 написал(а):
Многое понимаю.
Цитата |
у чекбокс с надписью "Запомнить Вас? |
Сделала
Спустя 14 минут, 24 секунды (12.03.2009 - 21:08) twin написал(а):
Ну это радует. Теперь надо так:
PHP |
if(isset($_POST['Submit'])) |
Спустя 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> |
можно передать на сервер файл (ну фотку к примеру). А у тебя в форме нет ни элементов ни кнопки отправки...
Чего мы будем передавать? А если это промежуточная страница, то я рекомендую от неё вообще отказаться. Чем меньше мороки, тем больше шансов удержать юзера. Я вот попробовл зарегаться на мамбе (на что не пойдешь ради искусства), так мне терпения не хватило. Только если уж очень сильно хочется с кем нибудь пообщаться, тогда можно терпеть эти мучения.
Давай после активации отправим юзьверя сразу в профиль, а там в одном месте и анкету и фотки и редактирование данных?

Давай после активации отправим юзьверя сразу в профиль, а там в одном месте и анкету и фотки и редактирование данных?
Спустя 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"> </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"> </td> <td colspan="2" valign="top"><p> </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
Bezdna
Цитата |
twin не мучай девушку. |
Буду мучать. Она сама хочет. А потом научится и будет деньги зарабатывать.
Или ты не веришь, что сможет?

Спустя 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
И еще то что у на логин можно и русскими буквами писать, это нормально, а то на всех сайтах почему то только по английски?
А чтоб было более понятней можешь зайти на мамбу
вот
логин jyurt44yrfu1
пароль 123456
И еще то что у на логин можно и русскими буквами писать, это нормально, а то на всех сайтах почему то только по английски?
Спустя 1 минута, 36 секунд (13.03.2009 - 15:12) lira1 написал(а):
Цитата |
но может лучше сначала использовать готовый сайт |
У меня есть такой, но сайт на готовых шаблонах и бесплатных скриптах, дохода который мне нужен не принесет
Спустя 1 час, 17 минут, 9 секунд (13.03.2009 - 16:29) twin написал(а):
Так, из того что есть, я пока понял только, что нужно для начала вывести имя, страну, город, возраст и знак зодиака. Дальше в дебри я пока не полез. Начнем с этого. Для начала нужно организовать такую страничку. Как я понял, её название - это логин. Там кстати по этому используется ЧПУ. Мы же делаем не хуже чем у них, а лучше
, по этому тоже такую штуку заюзаем. А логин у них английскими буквами, потому что в адресной строке кирилица недопустима. Но мы от своего не отступимся, и сделаем автоматический транслит. Давай по порядку. В индекс пропиши новый блок, или мы это на анкету свешаем?
В таблицу user добавь еще одно поле - pagename varchar(100). Можно конечно логин сразу в транслит коверкнуть, но он нам может еще пригодится. Сейчас напишу скрипт транслитерации.

В таблицу user добавь еще одно поле - pagename varchar(100). Можно конечно логин сразу в транслит коверкнуть, но он нам может еще пригодится. Сейчас напишу скрипт транслитерации.
Спустя 43 минуты, 22 секунды (13.03.2009 - 17:13) lira1 написал(а):
Цитата |
или мы это на анкету свешаем? |
да, лучше сюда.
Добавила
Спустя 3 минуты, 34 секунды (13.03.2009 - 17:16) twin написал(а):
Вот скрипт транслитерации URL. Правда нам придется пожертвовать всеми символами, кроме дефиса. Но это только в названии странички. Логин трогать не будем - пусть резвяться. Только немного усложним валидатор.
Засунь это в файл translit.php в каталог functions и подключи в индексе в блок с регистрацией. И спрашивай, что не понятно. Ты совсем ничего не спрашиваешь, то ли все понимаешь, то ли наоборот, нипанимаешь ничего и стесняешься спросить. Чем больше задашь вопросов, тем легче будет потом.
Засунь это в файл translit.php в каталог functions и подключи в индексе в блок с регистрацией. И спрашивай, что не понятно. Ты совсем ничего не спрашиваешь, то ли все понимаешь, то ли наоборот, нипанимаешь ничего и стесняешься спросить. Чем больше задашь вопросов, тем легче будет потом.
Свернутый текст
PHP |
<?php |
Спустя 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");
include("modules/ancet/ancet.php");
include("tpl/ancet.html");
break;
То есть мы получили в GET параметре ancet и у нас на данный момент работает только этот блок. Остальные ждут своей участи. Это удобно тем, что в оперативную память сервера грузится только то, что нам необходимо на данный момент, а не весь скрипт. По этому получается очень ресурсобережливо и быстро.
А вместо include(); можно с таким же успехом прописать код из подключаемого файла. Так как все ссылки сайта идут только на индекс, свич помогает нам разобраться, что нужно делать.
Вот смотри, что получается в индексе:
Выбираем "ancet" (<a href="?page=ancet" >Анкета</a>)
switch($page)
{
case "ancet":
$_POST = magic_off($_POST);
include("modules/vars.php");
Свернутый текст
PHP |
<?php |
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) |
И в блоке регистрации надо заполнить в таблице поле 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)."'
)";
$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`. Или ты их не добавила?

Спустя 2 часа, 5 минут, 58 секунд (13.03.2009 - 20:59) lira1 написал(а):
Цитата |
".$year."' '".$year."' |
Я о том что зачем два year?
Спустя 7 минут, 55 секунд (13.03.2009 - 21:07) twin написал(а):
Обшибочка...
Вот, так и дальше. Самостоятельно.
Дальше что там кстати? Мы забыли про форму вход-выход. Нарисуй такую, будем делать кордон с собаками..


Дальше что там кстати? Мы забыли про форму вход-выход. Нарисуй такую, будем делать кордон с собаками..
Спустя 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
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 нужна.
Да, и на денвере работать не будет. Там mb нужна.
Спустя 51 минута, 4 секунды (13.03.2009 - 22:51) lira1 написал(а):
На хостинге тоже не работает

Спустя 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;
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 написал(а):
Блин, забыл. Прости подонка.
В валидатор тоже подключи транслит.

Спустя 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 Этот файл и форму в блок. Щас напишем вход-выход.
Так, теперь нужен новый блок в индексе - enter Ты уже умеешь. Сделай файл - enter.php в каталог registr Этот файл и форму в блок. Щас напишем вход-выход.
Спустя 16 минут, 55 секунд (14.03.2009 - 00:17) lira1 написал(а):
В базе почему то в pagename ничего не отображается
Спустя 18 минут, 50 секунд (14.03.2009 - 00:35) twin написал(а):
Цитата |
В базе почему то в pagename ничего не отображается |
Щас отобразим. Ошибка пропала?
Вот вход-выход. Только добавь в форму чекбокс - Запомнить Вас? с именем autologin
Вот вход-выход. Только добавь в форму чекбокс - Запомнить Вас? с именем autologin
PHP |
<?php |
Спустя 14 минут, 28 секунд (14.03.2009 - 00:50) lira1 написал(а):
Сделала
if(mysql_num_rows($res) !== 0)
вот это не понятно
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'])) |
и пробовать войти - выйти.
PS В блок входа тоже наверное редирикт надо...
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'])."'"; |
Спустя 52 минуты, 32 секунды (14.03.2009 - 14:55) twin написал(а):
Индексов таперь два. Один главный, второй - индекс модуля регалки. Она теперь автономным блоком сделана. В главном индексе подключен второй индекс. Так мы будем подключать все модули, их ведь будет много, как я понял. Сайт то ты затеяла недецкий. У каждого модуля - свой индекс. Так мы сможем легко и просто добавдлять новые или убирать не нужные модули.
defanse.php это файл защиты. Тот самый кордон. Его надо подключать первой строкой во все блоки, которые только для зареганных пользователей.
А в анкете надо же выводить все данные - имя, пол и так далее. Ты же сама инструкцию написала
Вот в registr.php есть изменения и в базе. С этим разберись пока.
defanse.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 пропиши константы, вроде я ничего не напутал. Я в них плохо разбираюсь. Как говорится:
Я в гороскопы не верю. Потому что я близнец. А близнецы в гороскопы не верят.
Проверь. Это в файл functions/zodiac.php и подключи к анкете.
А вызывать будем так (в файле ancet.php):
Я в гороскопы не верю. Потому что я близнец. А близнецы в гороскопы не верят.

Свернутый текст
PHP |
<?php |
PHP |
$query = "SELECT * FROM `".PREFIX."user` WHERE `login`='".magic_off($_SESSION['login'])."'"; |
Если ты месяца в базе прописала словами, то переделай на номера. Мы слова потом массивом подставим.
Спустя 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
А для пола проще, их два всего. Я попозже сделаю. Остальное все понятно?
($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;
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 знак Водолей, откуда он понимает то это?
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) |
(! - это инверсия, то есть наоборот, нет переменной) выдает результат. Если нет переменной, то есть фальсе, то выдаст элемент массива, который прописан выше, по номеру, который уже определен:
PHP |
return $this->World[$this->Num]; |
а если труе, то картинку:
PHP |
else |
с таким же номером в адресе.
ЗЫ А под номером 1 всегда вроде был телец...
ЗЫ А под номером 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,
То первый я так понимаю Овен, потом Телец...
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 место.
Ну я думаю это не к чему
# на сайте: 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 после меня зариг-лись, До меня ни кто и не дойдет
Некоторые каждый день регистрируются, чтоб анкета на первых позициях была
Зоходишь в поиск,
выбираешь искать девушку Екатеринбург
выходит результат 21 анкета, на страницу выводятся по 10
Первые показываются последние зарегистрированные, если к примеру из этих 20, 5 мужчин то моя анкета среди девушек будет на 16 месте.
А если 20 000 после меня зариг-лись, До меня ни кто и не дойдет
Некоторые каждый день регистрируются, чтоб анкета на первых позициях была
Спустя 31 минута, 56 секунд (15.03.2009 - 00:53) twin написал(а):
Цитата |
До меня ни кто и не дойдет |
Да, это серьёзный аргумент. Как говориться - хочешь выиграть в казино, стань его владельцем.
Ясно теперь. Ну и пусть регаются, вот они на мамбе 10 000 000 и нарегали, а мож натурально 300 человек всего
. Ладно, что у нас дальше по плану? Ты проверила, работает версия? Щас сделаем пол картинкой и надо возраст как то вычислить. Еще есть идеи? Ты придумывай, чтоб мы мамбу обошли на повороте.



Спустя 43 минуты, 26 секунд (15.03.2009 - 01:37) twin написал(а):
Вот тебе функция вычисления возраста. Засунь её в default.php, она нам может на других страницах пригодиться.
PHP |
function find_age($year, $month, $day) |
Вот это добавь в ancet.php
PHP |
$age = find_age($row['year'],$row['month'],$row['day']); |
Ну и в шаблон анкеты соответственно.
Теперь смотри. В базе на поля month и day поставь атрибут UNSIGNED ZEROFILL, что бы они отражались в виде 01, 02, а не 1, 2. В поле sex вместо м и ж

Спустя 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
а хостинг залила, но ничего не работает.
Нажимаешь Регистрация а он переходит ?page=active&id=0

Спустя 2 часа, 2 минуты, 55 секунд (15.03.2009 - 16:13) twin написал(а):
Значит либо не все залила, либо что то исправляля. Я сделал ЧПУ и все ссылки и редирикты теперь делаются по другому. Посмотри в моей версии как. У меня же работает

Спустя 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
Вот полностью registr.php
Свернутый текст
PHP |
<?php |
Спустя 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
А вот константы
Вот active
Свернутый текст
PHP |
<?php |
А вот константы
Свернутый текст
PHP |
<?php |
Спустя 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, то интерфейс нормальный, а в таблице абра кадабра. Как исправить?
Если 1251, то интерфейс нормальный, а в таблице абра кадабра. Как исправить?

Спустя 21 минута, 42 секунды (15.03.2009 - 20:56) twin написал(а):
Когда базу создаешь, нужно ставить сравнение. Вот так должно быть:

Спустя 7 минут, 6 секунд (15.03.2009 - 21:03) lira1 написал(а):
Еще в ancet.php ошибка
$zod = new CreateZodiac();
а класс то у нас называется просто class Zodiac
И почему то не пол не зодиак в анкете не проставляет. Имя, город, страна, возраст выводит.
$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 года?

Спустя 4 минуты, 4 секунды (15.03.2009 - 21:51) twin написал(а):
Да, действительно... чё это я...
Ну а про трассировку забыла? В ancet.php выведи переменные:
Ну а про трассировку забыла? В ancet.php выведи переменные:
PHP |
$zod = new Zodiac(); |
а потом опускай их ниже, к шаблону. и ищи где потерялись.
А это исчё одна функция нужна. Я попозже напишу, очень занят до 20-го числа буду. Впринципе можешь и сама. Сделай свич, выдели последнюю цифру и выводи слово в зависимости от. По образу зодиака.
А это исчё одна функция нужна. Я попозже напишу, очень занят до 20-го числа буду. Впринципе можешь и сама. Сделай свич, выдели последнюю цифру и выводи слово в зависимости от. По образу зодиака.
Спустя 1 час, 12 минут, 27 секунд (15.03.2009 - 23:03) lira1 написал(а):
Да разобралась уже
просто путь везде не правильно написан
"<img src=\"images/zodiac/
а надо "<img src=\"../images/zodiac/
и с полом так же
просто путь везде не правильно написан
"<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) |
Спустя 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 написал(а):
Пока не дошло как эту функцию сделать

Спустя 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 написал(а):
прикольно... вот что происходит, стоит зарегистрироваться на форуме девушке 
А это мысль, ведь любой может представиться девушкой

А это мысль, ведь любой может представиться девушкой



Спустя 18 минут, 31 секунда (16.03.2009 - 21:47) twin написал(а):
Не, конечно приятно, что говорить. Но мне это не меньше чем ей надо. У меня тож меркантильный интерес имеется
Я попутно свои скрипты на прочность проверяю, на публике не схалявишь.

Спустя 1 час, 12 минут, 40 секунд (16.03.2009 - 23:00) lira1 написал(а):
Да вроде нет казусов. Регистрация с 18 лет
Разобралась, с этой функцией, все выводит нормально. прогресс
Разобралась, с этой функцией, все выводит нормально. прогресс

Спустя 19 минут, 2 секунды (16.03.2009 - 23:19) lira1 написал(а):
Цитата |
прикольно... вот что происходит, стоит зарегистрироваться на форуме девушке smile.gif |
О!!! Что происходит??? Человек помогает другому человеку. Для вас это так дико?!

Цитата |
А это мысль, ведь любой может представиться девушкой dry.gif wink.gif |
В чем сомнения?
Как говориться делай добро и оно вернется стократно умноженным!

Ну или сомневайся всю жизнь....

Спустя 1 минута, 47 секунд (16.03.2009 - 23:21) twin написал(а):
Поздравляю.
Мы кстати забыли в регалке систему восстaновления пароля. Сделай страничку с полем для мыла. Может и модуль уже сама сможешь?

Мы кстати забыли в регалке систему восстaновления пароля. Сделай страничку с полем для мыла. Может и модуль уже сама сможешь?
Спустя 4 минуты, 28 секунд (16.03.2009 - 23:25) lira1 написал(а):
Цитата |
Может и модуль уже сама сможешь? |
Думаю пока нет
Спустя 2 часа, 52 минуты, 27 секунд (17.03.2009 - 02:18) twin написал(а):
Вот, только не проверял. Не успеваю.
modules/registr/rebil.php
ru.php
modules/registr/rebil.php
Свернутый текст
PHP |
<?php |
ru.php
Свернутый текст
PHP |
define("SUBJECT_REBIL","Восстановление пароля на сайте "); |
Спустя 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 |
Тут я думаю и объяснять особо ничего не надо. Все очень наглядно получилось

Спустя 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
Сейчас он пишет
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(); |
Спустя 1 минута, 51 секунда (17.03.2009 - 11:48) lira1 написал(а):
Да я уже поняла
Сейчас такая проблема
http://test1.ru/strana/regist/active/
не находит
Хотя в htacces прописано
RewriteRule ^registr/active$ index.php?page=registr&aut=active
Сейчас такая проблема
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 написал(а):

Спустя 1 минута, 50 секунд (17.03.2009 - 12:02) Sylex написал(а):
Цитата ("lira1") |
В чем сомнения? |
да нет сомнений

Цитата ("lira1") |
О!!! Что происходит??? Человек помогает другому человеку. Для вас это так дико?! ![]() |
Нет, не дико, я ж ничего против не имею



Приятного взаимодействия


Спустя 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 написал(а):
Я не совсем понял... То есть обе галочки можно ставить?
Да
И с анкетой.
Как сделать так, что редактируешь анкету ...
выбираешь к примеру.
Семейное положение
Не замужем
Нажимаешь сохранить, переход на др. страницу
И там форма но только уже с выводом
Семейное положение
Не замужем
Не доходит
Щас залью
Да
И с анкетой.
Как сделать так, что редактируешь анкету ...
выбираешь к примеру.
Семейное положение
Не замужем
Нажимаешь сохранить, переход на др. страницу
И там форма но только уже с выводом
Семейное положение
Не замужем
Не доходит

Щас залью
Спустя 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().
А на счет галочек - вот для этого и нужно проектировать сначала, создавать архитектуру. Что бы потом все не переделывать. Если это надо в регалке, то нужно менять таблицу в базе. А если в анкете, то значит поменяй радиокнопки на галочки. У каждой своё имя. Для каждой поле в таблице. Инициализация и пр.
Потом, очень зря ты сбила в кучу вывод ошибок. если надо в куче, то можно было сделать гораздо проще. Я специально делил их, что бы вывести рядом с тем полем, где косяк. Тут надо просто сверстать нормально, чтоб не прыгало.
В транслите не работает mb_strtollover().
А на счет галочек - вот для этого и нужно проектировать сначала, создавать архитектуру. Что бы потом все не переделывать. Если это надо в регалке, то нужно менять таблицу в базе. А если в анкете, то значит поменяй радиокнопки на галочки. У каждой своё имя. Для каждой поле в таблице. Инициализация и пр.
Спустя 5 минут, 48 секунд (17.03.2009 - 23:05) twin написал(а):
Нет там проблемы. Просто ты функцию не протестировала. У тебя девятка и пятерка выпали из списка.
PHP |
case $last >= 5 && $last =< 9 : |
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) |
Нет, не дико, я ж ничего против не имею ![]() ![]() |
Да нехай люди поразвлекаются

Спустя 20 минут, 13 секунд (17.03.2009 - 23:33) twin написал(а):
Цитата |
Какая-нибудь польза будет по-любому. |
А то! Щас сварганим сайт и увеличим население страны ровно в два раза. А то всё - демографический спа-а-а-д...

Спустя 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 написал(а):
ошибка
Fatal error: Call to undefined function mb_strtolower() in F:\home\test1.ru\www\strana\functions\translate.php on line 42

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 |
<? |
залей на хостинг и дай ссылку.
Спустя 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]. Во втором случае массив просто неассоциативный, то есть по номерам. Вот почитай тут, недавно очень классно описали массив. То есть полей все равно по штуке на чекбокс. Массив в аякс прописать крайне сложно, да и ни к чему. Делай просто разные имена и всё. И резве это обязательные поля? Почему же мы раньше валидацию не сделали...
И кстати, с возрастом, не проще сделать просто два списка: "от" и "до"? Только что средний возраст исключить не получиться. То есть педофил и герондофил в одном лице будет оскорблен и обижен
А с транслитом вот что. Сделай так:
И кстати, с возрастом, не проще сделать просто два списка: "от" и "до"? Только что средний возраст исключить не получиться. То есть педофил и герондофил в одном лице будет оскорблен и обижен

А с транслитом вот что. Сделай так:
PHP |
<? |
залей и посмотри что будет. Если будет ошибка, стучи в суппорт хостинга. Пусть разбираются.
Спустя 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 |
По идее так должно все из формы прописаться. Только там данные не только из формы ведь... Логин, возраст, что то еще наверное. Пока пробуй и напиши чего не хатает.
Спустя 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 написал(а):
Точки это значит там твой код должен продолжаться.
Что бы все не писать сюда. Эта штука будет работать только при условии, что поля в базе и имена полей в форме совпадают. Так же как и их количество. Вернее в форме не должно быть лишних элементов. Только кнопку "ok" можно использовать.

Спустя 10 часов, 11 минут, 35 секунд (19.03.2009 - 09:13) lira1 написал(а):
Вообще ничего не заносит, форму я на сто раз проверила
код ancet.php
На хостинг тоже залила
Уже незнаю что делать
код ancet.php
Свернутый текст
PHP |
<?php |
На хостинг тоже залила
Уже незнаю что делать

Спустя 55 минут, 42 секунды (19.03.2009 - 10:09) twin написал(а):
Вот смотри. Надо учиться искать ошибки. Самый простой и действенный метод - трассировка. Я сто раз писал. Нужно сделать видимыми все проблемные процессы. Допустим здесь так:
в ancet.php добавь это:
в 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."'");
Правильно?
Вроде нормально заносит
Вот эту строку добавила
$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 |
<? |
А в анкете подставить так:
PHP |
if(isset($_POST['ok'])) |
А по умолчанию в базе прописывается DEFAULT. У тебя сейчас NULL стоит, а ты поставь то, что нужно. И при пустом поле в форме будет заноситься это значение.
PS и в файле enter.php сделай так же.
Спустя 4 минуты, 48 секунд (19.03.2009 - 11:32) lira1 написал(а):
Тут наверное так?
PHP |
<? |
Спустя 9 минут (19.03.2009 - 11:41) lira1 написал(а):
Так он id_user не заносит
И все время при редактировании делает новую строку
id 25
id 26
И все время при редактировании делает новую строку
id 25
id 26
Спустя 3 минуты, 31 секунда (19.03.2009 - 11:44) twin написал(а):
Да впринципе нам пока не нужна переменная $_SESSION['pagename']. Потом достанем, если понадобится. Я что бы не забыть. Все он занесет, если ты выйдешь и снова зайдешь. Потому что в сессии у тебя пусто. А редактирование еще никто не делал. Это было создание новой анкеты
Конечно будет новая строчка. Сколько анкет - столько строчек.

Спустя 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'], вытаскивай все переменные и выводи на страницу. Там же поставим кнопоську или ссылку - редактировать.
Вывести заполненную анкету проще пареной репы. Пиши запрос 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']; |
Так?
или
PHP |
$icq = $row['icq']; |
А как их вывести на страницу? Чтоб выходило только то что заполнено
К примеру
Чтоб не было так
Об о мне
пусто
Рост пусто
Чтоб Какие поля не заполнены, вообще не выходило их описание(рост, об о мне)
Так путанно написала...

Спустя 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 |
<? |
Спустя 2 минуты, 28 секунд (19.03.2009 - 15:49) twin написал(а):
Цитата |
Но там на английском все |
Ничего не всё, там почти все, особенно самое нужное, на русском. И есть переключалка языков. Ты без этого мануала не научишься никогда.
Спустя 5 минут, 26 секунд (19.03.2009 - 15:54) lira1 написал(а):
То что на русском я читаю, но там я вообще почти ничего не понимаю

Спустя 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()).
как это понять?
Возвращает массив с обработанным рядом результата запроса, или 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 написал(а):
Вот ты побольше бы спрашивала, давно бы сама всё написала
Возврщает - это понятно? Это примерно как стиральеая машинка. Туда суёшь кучу грязных носков (аргументы), она крутит-мутит, бурчит-журчит и возвращает чистые носки (результат). То есть функция mysql_fetch_array() принимает аргументом указатель на запрос. Мы запрос сделали, результат записан гдето там, не важно где. Функция mysql_query(), которая делала запрос, выдала нам адрес - указатель ($res). Вот этот указатель (дескриптор) му суём аргументом в mysql_fetch_array() и она возвращает нам постиранный массив. В этом массиве ряды и колонки. А возвращает она этот массив в переменную $row

Возврщает - это понятно? Это примерно как стиральеая машинка. Туда суёшь кучу грязных носков (аргументы), она крутит-мутит, бурчит-журчит и возвращает чистые носки (результат). То есть функция mysql_fetch_array() принимает аргументом указатель на запрос. Мы запрос сделали, результат записан гдето там, не важно где. Функция mysql_query(), которая делала запрос, выдала нам адрес - указатель ($res). Вот этот указатель (дескриптор) му суём аргументом в mysql_fetch_array() и она возвращает нам постиранный массив. В этом массиве ряды и колонки. А возвращает она этот массив в переменную $row
PHP |
$row = mysql_fetch_array($res); |
То же самое, что так:
PHP |
$row = array( |
Теперь просто остается вынуть нужный элемент массива. Так как он ассоциативный, то ключем суём туда название поля (колонки)
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 написал(а):
Трудно мне это понять. Та как не сталкивались еще с выводом чекбоксов и радио
Ну как это сделать все?

Ну как это сделать все?

Свернутый текст
PHP |
<? |
Спустя 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, |
Так намного лучше

Спустя 1 час, 4 минуты, 44 секунды (19.03.2009 - 23:24) lira1 написал(а):
Цитата |
Трудно мне это понять. Та как не сталкивались еще с выводом чекбоксов и радио blink.gif Ну как это сделать все? wacko.gif Свернутый текст |
twin, на это не будешь отвечать?

Спустя 1 час, 12 минут, 27 секунд (20.03.2009 - 00:36) twin написал(а):
Буду, не переживай. Просто у меня меньше суток до сдачи заказа.
Потерпи.

Спустя 16 минут, 14 секунд (20.03.2009 - 00:53) lira1 написал(а):
Хорошо
Жду. Не отвлекаю!

Спустя 23 часа, 45 минут, 3 секунды (21.03.2009 - 00:38) twin написал(а):
Ну вот, отвечаю.
Если тебе нужно вывести что то через запятую, причем не зная сколько этого будет, самый простой способ - сложить все в массив и потом преобразовать в строку функцией implode():

Если тебе нужно вывести что то через запятую, причем не зная сколько этого будет, самый простой способ - сложить все в массив и потом преобразовать в строку функцией implode():
PHP |
<? |
Спустя 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'])."'"; |
в форму поставь
HTML |
<form action="<?echo DOMEN ?>/my/show/<?php echo $pagename ?>" mhetod="post" > |
Теперь смотри что получается, в анкете уже два файла. Наверно еще будут. Лучше ей сделать свой индекс и тогда это будет автономный модуль, мы сможем потом просто менять каталог с файлами и обновлять систему. Из болка "my" главного индекса все вытащи, а поставь это:
PHP |
case "my": |
в каталоге ancet сделай индекс и туда так:
PHP |
<?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 |
Ну и пробуй, мож чё и получится...

Спустя 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']."'"; |
Что не так?
И еще как в 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
а надо получается сюда 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 |
А штакесс так:
Код |
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); |
это кстати и анкеты касается.
PS
PS
Цитата |
Хорошо. |
Да, а что хорошо? Работает хоть? Я же вслепую пишу, без проверки...
Спустя 18 минут, 16 секунд (21.03.2009 - 22:36) lira1 написал(а):
Да все работает
В том, что пишешь иногда бывают ошибки, типа незакрытой скобки , но это я уже легко нахожу

Спустя 35 минут, 54 секунды (21.03.2009 - 23:12) twin написал(а):
Цитата |
но это я уже легко нахожу |
Умница. Я всегда в тебя верил.

Спустя 3 минуты, 16 секунд (21.03.2009 - 23:15) lira1 написал(а):


Кстати сколько тебе лет? Что ты такой умный

Спустя 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 написал(а):
Цитата |
Кстати сколько тебе лет? Что ты такой умный |
Вот сайт запустишь, я анкету заполню.
А чекбоксы отмечать надо функцией. Вот так примерно:

PHP |
function checked($check) |
А в сам чекбокс так:
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()); |
Спустя 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
show_ancet.php
ancet.php
Свернутый текст
PHP |
<?php |
show_ancet.php
Свернутый текст
PHP |
<? |
Спустя 1 минута, 57 секунд (22.03.2009 - 00:33) lira1 написал(а):
Одну ошибку вижу
$purpose = (count($find))?PURPOSE.implode("<br/>",$purpose):NULL;
$purpose = (count($find))?PURPOSE.implode("<br/>",$purpose):NULL;
Спустя 3 минуты, 57 секунд (22.03.2009 - 00:37) lira1 написал(а):
Вот щас нормально

Спустя 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;
$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; |
(То бишь - не хочу ни с кем знакомиться.

Спустя 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 лет
Вообще в форме он есть, может у тебя форма старая.
$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"';
}
сюда переменные чебоксы ппрописывать?
{
if($check)
return 'checked="checked"';
}
сюда переменные чебоксы ппрописывать?
Спустя 2 минуты, 15 секунд (22.03.2009 - 01:07) lira1 написал(а):
в форму редактирования это добавлять?
<form action="<?echo DOMEN ?>/my/show/<?php echo $pagename ?>" mhetod="post" >
<form action="<?echo DOMEN ?>/my/show/<?php echo $pagename ?>" mhetod="post" >
Спустя 16 минут, 30 секунд (22.03.2009 - 01:23) twin написал(а):
Воооо. Попёрли вопросы. Не успеваю отвечать. Так и сразу надо было.
Цитата |
Он зачем то по 2 запятых ставит |
А сама не догодалась? Это пустые элементы массива, значений нет, но сами элементы то есть. По этому и перечисляет пустоту через запятую. Два пути - исключить пустоту при формировании массива или удалить пустые элементы из уже готового. Лучше сразу, чтоб не делать лишней работы для скрипта:
PHP |
if($row['findw']) |
и так далее.
Цитата |
сюда переменные чебоксы ппрописывать? |
Нет, эту функцию просто засунь в дефолтные и всё. Должно само работать, если все правильно сделала.
Цитата |
Как radio в редактирование проставлять? |
По той же схеме, только чуть сложнее. Надо определить принадлежность кнопки. Вот так:
PHP |
function radio($radio, $num) |
А в кнопку так:
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'];
Вот еще момент, открылась форма редактирования, человек там все поменял, нажимает сохранить ... а в форме нет перехода, если ты говоришь не добавлять, как это прописать.
Наверное какой то запрос нужен на изменение данных, потому что человек может все убрать.
Смысл такой, что когда человек нажимает редактировать из базы его данные должны стираться, а он новые отмечает. Так получается?
$regsex= $row['regsex'];
$sexone[] = $row['sexone'];
$dohod = $row['dohod'];
Вот еще момент, открылась форма редактирования, человек там все поменял, нажимает сохранить ... а в форме нет перехода, если ты говоришь не добавлять, как это прописать.
Наверное какой то запрос нужен на изменение данных, потому что человек может все убрать.
Смысл такой, что когда человек нажимает редактировать из базы его данные должны стираться, а он новые отмечает. Так получается?
Спустя 14 минут, 13 секунд (22.03.2009 - 09:11) lira1 написал(а):
Что то опять не то выводит
Тут правильно
Тут правильно
PHP |
$find = array(); |
Спустя 31 минута, 29 секунд (22.03.2009 - 09:42) twin написал(а):
Цитата |
Я не поняла , если функции прописывать в default, то сами чебоксы, и радио как прописать в edit_ancet |
ну я же написал, как прописать. вот в
edit_ancet.php у тебя почти правильно, только по умолчанию опять ничего нет. А в форму, в чекбоксы, засунь вызов функции. Я же тоже написал как. А функцию можно в любое место засунуть, на то она и функция. Главное чтобы этот файл, в котором она, был подключен на момент работы скрипта. У нас дефолтные всегда подключены, а чекбоксы отмечать мож еще где сгодится, по этому туда, для порядка.
edit_ancet.php у тебя почти правильно, только по умолчанию опять ничего нет. А в форму, в чекбоксы, засунь вызов функции. Я же тоже написал как. А функцию можно в любое место засунуть, на то она и функция. Главное чтобы этот файл, в котором она, был подключен на момент работы скрипта. У нас дефолтные всегда подключены, а чекбоксы отмечать мож еще где сгодится, по этому туда, для порядка.
Спустя 6 минут, 8 секунд (22.03.2009 - 09:48) twin написал(а):
PHP |
Вот еще момент, открылась форма редактирования, человек там все поменял, нажимает сохранить ... |
Ну если тип кнопки submit, то форма без адреса в акшене отправится на тот файл, с которого пришла. Это удобно тем, что сохраняются GET параметры. В нашем случае запрос пойдет на edit_ancet.php и в адресной строке останется
http://mambaftopku.ru/my/edit/katia
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
show_ancet
ancet
Свернутый текст
PHP |
<?php |
show_ancet
Свернутый текст
PHP |
<? |
Спустя 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
show_ancet.php
И еще третий файл -
edit_ancet.php
Сама пиши.
Примерно как show_ancet.php только вывод без констант. Вот на него мы и отправим юзера по ссылке "Редактировать", и выведем уже не текст, а заполненную форму.
ancet.php
Свернутый текст
PHP |
<?php |
Свернутый текст
PHP |
echo "ID_USER => " , $_SESSION['id_user']; |
edit_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 в форме поставить?
$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 и посмотри, она вообще с регистрации приходит или нет. |
Он везде пустой

Спустя 13 минут, 31 секунда (22.03.2009 - 12:15) Sylex написал(а):
блин, я не могу....

Спустя 2 минуты, 15 секунд (22.03.2009 - 12:18) twin написал(а):
Цитата |
Он везде пустой |
Вот змей.
А вообще если такая структура, то давй сразу будем по pagename идентифицировать анкету. Потом мы её и другим покажем по этому параметру. В таблице ancet измени поле `id_user` на `pagename`
в ancet.php тогда так:

в ancet.php тогда так:
PHP |
$set[] = "`pagename`='".magic_off($_GET['pagename'])."'"; |
и в show_ancet.php тогда так:
PHP |
$query = "SELECT * FROM `".PREFIX."ancet` |
Sylex
Терпи, чуток осталось

Спустя 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
не получается у меня этот редирикт
не получается у меня этот редирикт

Цитата |
Как select в форме поставить edit_ancet? ну а тут никуда не денешься - нужно прикручвть аякс, так же как в форме с регалкой. |
Ну
то навнерное не обязательно. Может в анкете select на текстовые поля переделать?
select нужны еще для редактирования личных данных, город, страна, имя, возраст.
Спустя 35 минут, 14 секунд (22.03.2009 - 16:48) twin написал(а):
Цитата |
не получается у меня этот редирикт |
Не расстраивайся, всё получится. Просто мы ведь еще ничего не исправляли, только вывели данные в форму. А вот когда напишем блок редактирования, туда и засунем редирикт.
Цитата |
Ну то навнерное не обязательно. |
Нет уж, померла так померла. Если в одном месте так, а в другом как попало... к тому же у тебя ведь в базе хранится id города, а не название. Как ты юзера заставишь писать туда номер, да и откуда он его узнает? Руки не опускай, аякс мы уже проходили, ничего в нем страшного. К тому же он у нас готов
Выводи селекты точ так же как в форме регистрации.

Выводи селекты точ так же как в форме регистрации.
HTML |
<?php echo country() ?> <div id="region" ></div> <div id="city" ></div> |
Спустя 25 минут, 50 секунд (22.03.2009 - 17:14) Bezdna написал(а):
Предлагаю ув. twin-у присвоить какое-нибудь почётное звание за долготерпение и труд. 


Спустя 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");
сейчас надо понять, как чтоб не только страну выводило? Забылось это уже
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
Всегда пожалуйста. Ученик больно прилежный попался.
Всегда пожалуйста. Ученик больно прилежный попался.

Цитата |
сейчас надо понять, как чтоб не только страну выводило? |
Значит тут нужно определиться, что нам нужно. Можно вывести сразу все три селекта с выбранными раньше городами и весями. А можно предложить выбрать снова. Первое красивее, но сложнее. Второе чуть проще, но как то не очень. Как будем делать, по полной программе?
Спустя 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']) |
Спустя 33 минуты, 43 секунды (22.03.2009 - 23:04) twin написал(а):
Почти попала
Только принадлежность строки не указала. Он так поменяет данные ВСЕМ юзерам, ведь не понятно кому точно менять то. Надо 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 блин, мне на мыло теперь дефки письма шлют с мамбы, я же сдуру там зарегался
Так куда города то пихать?
PS блин, мне на мыло теперь дефки письма шлют с мамбы, я же сдуру там зарегался

Спустя 14 минут, 36 секунд (23.03.2009 - 00:10) lira1 написал(а):
Цитата |
Так куда города то пихать? |
Там под именем есть ссылка, редактировать личные данные
Которая переходит my/editname/
Цитата |
блин, мне на мыло теперь дефки письма шлют с мамбы, я же сдуру там зарегался |


Спустя 6 минут, 1 секунда (23.03.2009 - 00:16) twin написал(а):
Ух ты... Похоже мне пора сливаться. Ты уже сама можешь спокойно разобраться
Щас сделаю тебе города и на покой... А как запустишь - стукни. Я зарегаюсь, пусть мне и от туда дефки пишут


Спустя 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 написал(а):
Что то с ним не так
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
и так много раз

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, там форма должна быть одна, а то остальные данные не будукт передаваться.
И функцию маленько поправил, в дефолтных:
Вот твой 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> </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) |
Спустя 11 минут, 11 секунд (23.03.2009 - 01:08) lira1 написал(а):
Цитата |
Совершенно просто, но мне лично не понравилось. Слишком суетно... Если нужно, конечно сделаем, только мне кажется нужно как то поинтересней придумать... |
Когда уже для меня все это будет просто

Спустя 13 минут, 15 секунд (23.03.2009 - 01:21) lira1 написал(а):
не ставится число
селекты проставила переменную тоже
селекты проставила переменную тоже
Спустя 11 минут, 52 секунды (23.03.2009 - 01:33) twin написал(а):
Ага, мой косяк, echo заспал.
Надо так:

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> |
Да, а я куда смотрю...Видемо спать пора

До завтра
Спустя 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'])."'"; |
Спустя 24 минуты, 27 секунд (23.03.2009 - 12:50) twin написал(а):
Ну как не понимаешь? Пора уже. А то придется меня на работу брать
. Всё правильно, только нюансик. Ты принадлежность определяешь по названию странички, то есть тот кто знает название может спокойно исправить чужую запись. А надо разрешить только хозяину. Хозяина сервер узнаёт по сессионным переменным, по этому нужно WHERE для чего нибудь из сессии, логина или id юзера, я уж не помню что у нас там есть.

Спустя 1 час, 35 минут, 34 секунды (23.03.2009 - 14:25) lira1 написал(а):
PHP |
<? |
Спустя 23 минуты, 40 секунд (23.03.2009 - 14:49) twin написал(а):
Здоровска. Как на качелях. Теперь опять WHERE потеряла

Спустя 47 минут, 53 секунды (23.03.2009 - 15:37) lira1 написал(а):
PHP |
$insert = "UPDATE `".PREFIX."ancet` SET ".implode(", ",$set)." WHERE `login`='".magic_off($_SESSION['login'])."'"; |
Спустя 3 минуты, 47 секунд (23.03.2009 - 15:41) twin написал(а):
Вооот. Молодца. Вот теперь тебя хвалю я, вот теперь тебя люблю я.
Ну и редирикт в этот блок на шоу, и все как у чемпиёна получится.

Спустя 8 минут, 43 секунды (23.03.2009 - 15:49) lira1 написал(а):

Цитата |
Ну и редирикт в этот блок на шоу, и все как у чемпиёна получится. |
Я пыталась.
header("location: ".DOMEN."/my/show/".$_GET['pagename']);
Спустя 4 минуты, 43 секунды (23.03.2009 - 15:54) twin написал(а):
И что он сказал? Вот так пыталась?
PHP |
<? |
Кстати, после редирикта лучше ставить exit() что бы не гонять за зря скрипт.
Спустя 7 минут, 23 секунды (23.03.2009 - 16:01) lira1 написал(а):
Нет, не так.
У нас там еще много кода
У нас там еще много кода
Свернутый текст
PHP |
if(isset($_POST['ok']) && $_SESSION['login']) |
Спустя 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
что это вообще значит?
На одном сайте нормально работает, на втором то так то сяк, хотя код одинаковый
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) |
ЗЫ Ну ёмаё... Посмотри что делается... Вот мамба так мамба...
Свернутый текст
Приветик,как делишки ?
Вчера приехала в ваш Город по делам на месяц, на квартире одной очень скучно, хочется пообщаться, провести время интересно, ктому же к концу той недели мне не скем будет справить день рождения...
Вот моя домашняя страничка: kiss-kiss.do.am Там мои фотки и номер мобильника (а это пароль для входа: 952).
Если позвонишь, - с удовольствием пообщаюсь с тобой!
Чмок
Вчера приехала в ваш Город по делам на месяц, на квартире одной очень скучно, хочется пообщаться, провести время интересно, ктому же к концу той недели мне не скем будет справить день рождения...
Вот моя домашняя страничка: kiss-kiss.do.am Там мои фотки и номер мобильника (а это пароль для входа: 952).
Если позвонишь, - с удовольствием пообщаюсь с тобой!
Чмок



Спустя 32 минуты, 51 секунда (23.03.2009 - 16:51) lira1 написал(а):
Цитата |
ЗЫ Ну ёмаё... Посмотри что делается... Вот мамба так мамба... Свернутый текст |
Хорошо разводят

Если делаю вот так то переход происходит, но только что от этого, если он ничего не меняет
Свернутый текст
PHP |
<? |
Спустя 3 минуты, 30 секунд (23.03.2009 - 16:54) twin написал(а):
А не меняет, это другой вопрос. Это значит, что что то нагло закралось в запрос. Где у тебя or die()? Опять всё наугад? Вот недавно студент при сдаче экзамена по латыни нечаяно вызвал дьявола. Смотри...

Спустя 53 минуты, 22 секунды (23.03.2009 - 17:48) lira1 написал(а):
пишет нет колонки логина.
через id надо, но как через сессию
через id надо, но как через сессию
Спустя 2 часа, 19 минут, 4 секунды (23.03.2009 - 20:07) twin написал(а):
Так же как и логин. Вытаскивай из базы в файлах active.php и enter.php и прописывай в сессию.
Спустя 25 минут, 26 секунд (23.03.2009 - 20:32) HardWoman написал(а):
twin
Никуда не ходи - а то на месяц пропадешь:)
На тебя уже ставки делают - 10000 сообщений на топ
Никуда не ходи - а то на месяц пропадешь:)


Спустя 7 минут, 11 секунд (23.03.2009 - 20:40) lira1 написал(а):
Что вот это значит?
http://test1.ru/strana/my/edit/280983?tel=...%B8%D1%82%D1%8C
Хотя должно на show_ancet переходить
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 написал(а):
Цитата |
На тебя уже ставки делают |
А где? Я пойду поставлю
А это значит, что форма у тебя не в проядке. Передача идет методом GET. Это бывает когда метод не указан или указан с ошибкой.
PS А ты рeврайт в .htaccess прописала?

А это значит, что форма у тебя не в проядке. Передача идет методом 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
периодически вылазит, функцию я не трогаю. Страницу обновишь, нормально, потом опять
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 сообщений умру. |
Чёт раненько засобиралась
Уже больше 700
А конца
края не видно





Спустя 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 |


Хотя возможно, в связи с тем что одну страницу в день, пока я ошибки найду, она и настанет.
Спустя 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)."'"; |
Спустя 25 минут, 7 секунд (23.03.2009 - 21:56) twin написал(а):
Правильно прописала. Вот так по чаще и пенсия отодвинется
. С багой не пойму что такое, у меня такой нету. Поставь пока собаку, потом попробую отловить. Только не забудь напомнить. Реврайт тоже правильно. Значит что то с формой.

Спустя 24 минуты, 17 секунд (23.03.2009 - 22:20) lira1 написал(а):
Цитата |
Значит что то с формой. |
Нет, это я как то не так id добавляю
в enter и active
Свернутый текст
PHP |
if(isset($_POST['Submit']) && isset($_POST['login']) && isset($_POST['password'])) |
Свернутый текст
PHP |
if(isset($_GET['id']) && isset($_SESSION['pusk'])) |
Посмотри где ошибка, плиз
Спустя 13 минут, 13 секунд (23.03.2009 - 22:33) twin написал(а):
Вот это:
PHP |
$query = "SELECT `id` FROM `".PREFIX."ancet` WHERE `pagename`='".magic_off($pagename)."'"; |
совсем убери, и верхний пойдет. А в нижнем тоже убери, и поставь так:
PHP |
$_SESSION['id'] = mysql_result($res,0,'id'); |
Спустя 13 минут (23.03.2009 - 22:46) lira1 написал(а):
Нет, так не идет
Сессию id ведь надо из strana_ancet
Сессию 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, то можно спокойно Катю отредактировать.
А Катя у нас девочка порядочная, по этому нужно доступ только из сессии:

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) |
У меня по плану повешаться. |
Вот этого не надо - на тебя весь форум с надеждой смотрит. Не подведи нас.

Спустя 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 написал(а):
Это связано с тем, что ты опять не делаешь трассировку.
Поставь первой строчкой

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.


Спустя 4 часа, 59 минут, 52 секунды (24.03.2009 - 07:35) twin написал(а):
Цитата |
До конца как видно еще далеко. |
Вообще, это по определению невозможно закончить, это можно только прекратить.

Цитата |
Следующее наверное будет добавление фото |
Ну вот, добрались до вкусного. Каким образом это происходит, опиши алгоритм. Как и когда добавляются, на какой странице, что потом с ними происходит, вобщем как можно подробнее. А то мы опять будем из пустого в порожнее переливать.
Спустя 3 часа, 35 минут, 11 секунд (24.03.2009 - 11:10) lira1 написал(а):
Сейчас он все обнуляет, и не выводит то что было отмечено/
трассировку делала данные он в массив заносит, но до базы они не доходят
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] => Сохранить )
трассировку делала данные он в массив заносит, но до базы они не доходят
Свернутый текст
PHP |
echo "pagename => ".$_SESSION['pagename']; |
Свернутый текст
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 |
Спустя 2 минуты, 18 секунд (24.03.2009 - 11:43) lira1 написал(а):
да
Свернутый текст
PHP |
$icq = isset($_POST['icq'])?$_POST['icq']:NULL; |
Спустя 4 минуты, 37 секунд (24.03.2009 - 11:48) lira1 написал(а):
Свернутый текст
PHP |
if(isset($_POST['ok']) && $_SESSION['login']) |
Спустя 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']
Ошибок вроде не нашел, должно работать. Проверь еще $_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 написал(а):
Цитата |
короче как на мамбе |
Я на мамбу больше не ходун!!!! Чуть не порвали...
Давай тогда рисуй страницу с альбомом и форму загрузки фотки.

Давай тогда рисуй страницу с альбомом и форму загрузки фотки.
Спустя 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 |
то должен быть переход после авторизации. Не должна форма вернуться.
Спустя 5 минут, 9 секунд (24.03.2009 - 13:52) twin написал(а):
Цитата |
Как сделать чтоб в меню после авторизации. Появлялась ссылка моя страница. ссылка войти пропадала? |
В главном индексе выше меню напиши это:
PHP |
if(!$_SESSION['pagename']) |
А в самом меню вместо ссылок выведи эту переменную
Спустя 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>'; А в самом меню вместо ссылок выведи эту переменную |
Спустя 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? Для них нужно сочинять конвертор, все равно браузер в чистом виде их не распознает. Конвертор будем делать или пусть просто картинки грузят?
Думай, я пока классик сочиню для загрузки.
1. Максимальное количество фотографий ограничено?
2. Ты явно форму где то стырила, я бы не советовал разрешать грузить файлы весом 10mb, иначе скоро на хостинге не останется места. Да и ограничение может быть у хостера. 500kb вполне достаточно. Или сделать 10mb?
3. Зачем файлы с расширением TIFF и BMP? Для них нужно сочинять конвертор, все равно браузер в чистом виде их не распознает. Конвертор будем делать или пусть просто картинки грузят?
Думай, я пока классик сочиню для загрузки.
Спустя 7 минут, 15 секунд (24.03.2009 - 19:12) twin написал(а):
Цитата |
Как разделить несколько условий else ? |
Есть такая конструкция elseif()
PHP |
if($_SESSION['pagename']) |
их может быть сколько угодно, если какое то условие выполнится, дальше ничего выполняться не будет.
Спустя 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 написал(а):
Цитата |
Да, эту форму стырила, признаюсь. |
Аяяяяй. В угол поставлю.
Аякс не нужен, нужно просто несколько полей, что бы несколько сразу загрузить. Делай новую форму.

Цитата |
Ине нужно чтоб при входе, выходило мои сообщения, мои настройки, моя страница. Вот такого плана. |
Ну а я ведь не зря меню вынес в отдельный файл. Что бы сделать его динамическим. Щас с фотками разберемся и сделаем красиво.
Спустя 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 |
сделать в корне директорию photo а в ней еще одну - small
Вот этот класс положить в functions в файл upload.php
В конфигу добавить это:
Вот этот класс положить в functions в файл upload.php
Свернутый текст
PHP |
<?php |
PHP |
# Ширина (мин) |
ну и пытаться всю эту хреновину запустить...
Спустя 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; |
тогда он вытащит три первые. А если вместо ASC поставить DESC, то будет три последних. Потом в цикле это дело вынуть:
PHP |
if($res) |
потом вставляем пустую, если ничего нет:
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. Но пропорции остануться исходные.
Другими словами, фотка никогда не вылезет за квадрат 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 написал(а):
Цитата |
Да, ну почему то на мамбе они все одинаковые, как и везде в принципе. |
Неправда ваша. Совсем не везде. Я посмотрел щас на мамбе - там режут фотки, то есть обрезают лишнее. Можно конечно сделать и так, только вместо этого

получиться такое:

Согласись, несколько иначе. А вот если их по центру и в рамочки, то по моему веселей будет. А то там уж очень официально...

получиться такое:

Согласись, несколько иначе. А вот если их по центру и в рамочки, то по моему веселей будет. А то там уж очень официально...
Цитата |
А тут рядом с моей фоткой, твои наверное |
неее, это ты себе таких навыбираешь, когда запустим.
С фотоальбомом я завтра помудрю, посвободнее буду. Ты пока план составляй, что дальше. Там на мамбе много чего есть, только зря ты повторяешься. Надо что то своё, поинтереснее. Вот допустим поиск идеальной пары там есть? Чтоб по гороскопу совместимость и еще по каким там признакам, я не знаю... наверно интересно было бы не просто парня или девушку искать, а что то еще завернуть туда...
С фотоальбомом я завтра помудрю, посвободнее буду. Ты пока план составляй, что дальше. Там на мамбе много чего есть, только зря ты повторяешься. Надо что то своё, поинтереснее. Вот допустим поиск идеальной пары там есть? Чтоб по гороскопу совместимость и еще по каким там признакам, я не знаю... наверно интересно было бы не просто парня или девушку искать, а что то еще завернуть туда...
Спустя 22 минуты, 33 секунды (26.03.2009 - 00:51) twin написал(а):
Ну так что, резать будем?
Спустя 2 часа, 37 минут, 43 секунды (26.03.2009 - 03:29) twin написал(а):
Ну в общем то попробуй так (я класс подправил, вроде и впрямь ничего страшного):
В конфигу добавь
Свернутый текст
PHP |
<?php |
PHP |
define('HEIGTH_PREW',150); |
и погоняй на разных размерах загружаемых файлов.
Спустя 6 часов, 46 минут, 49 секунд (26.03.2009 - 10:16) twin написал(а):
Цитата |
На амбе тоже обрезают, я вспомнила. |


Впринципе это тоже можно сделать, я только не нашел, где это и как выглядет. Если хош -сделаю как я себе это представляю.
Спустя 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 |
Спустя 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
Вот такая ошибка
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 обозначает деление на ноль. Ты в конфиге не проставила константы. там новые есть. Комменты напишу попозже. С чего начать?
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 написал(а):
Это редактирование превьюшки, потому и маленькая. Если надо из большой кусочек вырезать, то маленько по другому надо. Обрезать должно, я проверял. Там может еще с кэшем проблемы, но обрезает точно. Смотри на превьюшку слева. Какую функцию расписать, что то все сразу лениво.

Спустя 1 час, 53 минуты, 49 секунд (28.03.2009 - 00:31) twin написал(а):
Вот я у себя поставил прямо без изменений, из архива. Всё режется. А с превьюшкой ты не поняла опять. Скрипт уменьшает фотку, а если она в размеры не лезет, то обрезает лишнее. Автоматически вырезает середину, но если не понравилось - можно подправить. А большая фотка тоже грузится, мы просто её не вывели. Если ты будешь из большой вырезать превьюшку, то только нос или ухо получиться.
Спустя 8 часов, 29 минут, 34 секунды (28.03.2009 - 09:00) twin написал(а):
Цитата |
Все работает. |
Ну вот и славно.

Цитата |
Сейчас фотоальбом |
Три варианта вывести полную фотографию:
1. С перезагрузкой страницы на то место, где сейчас куча маленьких
2. Без перезагрузки ниже того, где куча
3. во всплывающее окошко, как я показывал
Выбирай.
Вот list_page.php Спрашивай, что не ясно. Я немного изменил, хочешь поменяй, а хочешь - так оставь:
1. С перезагрузкой страницы на то место, где сейчас куча маленьких
2. Без перезагрузки ниже того, где куча
3. во всплывающее окошко, как я показывал
Выбирай.
Вот list_page.php Спрашивай, что не ясно. Я немного изменил, хочешь поменяй, а хочешь - так оставь:
Свернутый текст
PHP |
<?php |
Спустя 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 так:
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) |
Спустя 4 часа, 55 минут, 15 секунд (28.03.2009 - 18:29) lira1 написал(а):
Что дальше будем делать?
Спустя 2 часа, 4 минуты, 16 секунд (28.03.2009 - 20:33) twin написал(а):
Цитата |
Что дальше будем делать? |
Я, судя по аватарке, наверное ложиться спать

Ну давай попробуем доделать альбом. Знач так, скрипт увеличения не мой, по этому без комментов. Файлов опять куча, разбирайся с архивом, он там же. Изменения в index.php album.php album.html header.html добавлен js и css и кой чего в images
Посмотреть в действии можешь у меня на хостинге.
С тем что раньше делали разобралась или уже совсем запуталась?
Спустя 3 минуты, 53 секунды (28.03.2009 - 20:37) lira1 написал(а):
Цитата |
С тем что раньше делали разобралась или уже совсем запуталась? |
Разбираюсь

Больше всего мне не понятны кавычки, точки, всякие знаки, че куда...
Спустя 26 минут, 13 секунд (28.03.2009 - 21:04) twin написал(а):
А что конкретно не понятно? Синтаксис довольно простой, если ты уже сама можешь находить ошибки и писать скрипты, то трудностей с точками быть не должно... Кавычки бывают трех видов - двойные, апостроф и обратные. Обратные используются в SQL запросах для выделения названия полей. Всё, что заключено в апострофы, расценивается как строка, то есть просто текст. А внутри двойных кавычек можно писать переменные. И еще там работают спецсимволы. Вот напиши это и запусти, будет понятно.
PHP |
<?php |
Спустя 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 написал(а):
Цитата |
Сейчас надо фотки удалять? Пыталась сама, но не получилось |
Открываешь каталог с фотками. На нужную наводишь мышку, правой кнопкой - клац. Выбираешь "удалить", потом "да". Всё.
Запретить сохранять фотки ты не сможешь. Все, что видит клиент находится у него в браузере и ничего с этим не поделаешь.

Запретить сохранять фотки ты не сможешь. Все, что видит клиент находится у него в браузере и ничего с этим не поделаешь.
Спустя 10 минут, 56 секунд (28.03.2009 - 22:06) lira1 написал(а):
вот тут так и надо или это ошибка?
$res = mysql_query("SELECT * FHROM `".PREFIX."photo`
".$where." LIMIT ".$list -> StartPage()." , ".ROWS * COLUMNS);
Слово FHROM
$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 Не забывай русские буквы сразу в константы выносить, а то потом замучаешься искать.
Вот в файле 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-ов на фото.

Спустя 7 минут, 25 секунд (28.03.2009 - 22:30) twin написал(а):
Это же не мамба, я там регаться не хочу. Хотя вот:

А с мамбы вот (землячка кстати):
На главной странице висит.

А с мамбы вот (землячка кстати):
Свернутый текст

Спустя 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) |
Да это не помешает их скачать и вырезать этот логотип |
Скачать твою картинку при неработающей правой кнопке сможет любой юзер, сидящий в инернете более двух месяцев и в возрасте старше пяти лет.

Спустя 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 написал(а):
Цитата |
Да, лучше так. Только нужно не просто из базы удалить, а еще сами файлы из каталога, а то накопится стопицоттыш |
это как?

Он все пишет запрос пустой

Спустя 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());
$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 |
<? |
Спустя 1 час, 52 минуты, 28 секунд (29.03.2009 - 13:30) twin написал(а):
Наоборот надо))) То, что находится в сессии, это на сервере, и пользаватель изменить не может. Перед тем, как занести в базу pagename мы исключили все потенциальео опасное, по этому обрабатывать её не обязательно. Чего нельзя сказать про $_GET['name']. Вот туда из адресной строки может попасть всё что угодно. А не удаляет скорее всего потому что не видит $_SESSION['pagename']. Выведи её на экран и посмотри. А удалять файлы надо так:
PHP |
unlink("user_photo/".$name); |
Спустя 57 минут (29.03.2009 - 14:27) lira1 написал(а):
НИ ЧЕ НЕ УДАЛЯЕТ
Сессию видит
Сессию видит
PHP |
<? |
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']; |
?
В реврайт надо как то так:
В реврайт надо как то так:
Код |
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>'; |
Спустя 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 смени аватарку, слишком ты красивая, не возможно сосредоточиться.

Спустя 2 часа, 1 минута, 18 секунд (29.03.2009 - 20:35) twin написал(а):
А куда ты его приспособила? Это в album.php там где я напортачил, поменяй строчку на эту. Просто будет подтверждение спрашивать.
Спустя 43 секунды (29.03.2009 - 20:35) twin написал(а):
ААААА, кавычка лишняя там. Щас поправил. (определенно не возможно сосредоточиться
)

Спустя 6 минут, 45 секунд (29.03.2009 - 20:42) lira1 написал(а):
И еще можно сделать так чтоб любую фотку можно было назначить основной, т.е. первой, которая будет в поиске выводиться?
Спустя 7 минут, 18 секунд (29.03.2009 - 20:49) twin написал(а):
Цитата |
еще бы хорошо обратно на страницу возвращалось моментально |
ты по подробнее, я же не вижу как у тебя работает. Откуда моментально то надо? И на какую страницу?
Цитата |
И еще можно сделать так чтоб любую фотку можно было назначить основной, т.е. первой, которая будет в поиске выводиться? |
Можно сделать все что угодно, кроме детей. Я правда теперь, после того как пару раз побывал на мамбе, и в этом уже не уверен))))
Нужно в таблицу photo добавить еще одно поле с типом enum и в него поставить очередность. Потом можно выводить - первая вторая третья. Там же три у тебя в анкете. А на фотках ссылки - добавить в анкету и сделать основной. По этим ссылкам прописывать в поле 1 для основной к примеру и 2 для тех, что в анкету.
Нужно в таблицу 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 написал(а):
Цитата |
Вот без добавить в анкету можно? Они и так должны быть все в анкете. Выводится только первые три. |
Ну я имел ввиду, что не обязательно первые три, можно выборочно сделать. и менять потом, если охота. А ваще правильно мыслишь. А с белым листом - так а кто ж редирикт то делать будет? Пушкин? Забыла? А голову ты не забыла?

Спустя 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)."'"; |
Вот это /".$pag для того, что бы вернуться именно на ту страницу, с которой удаляла, а не на первую. Только инициализируй переменную.
Спустя 3 минуты, 3 секунды (29.03.2009 - 21:34) lira1 написал(а):
И еще мне не понятно, если одну фотку добавляешь, зачем еще 2 ссылки удалить появляются?
Да у меня вот так header("location: ".DOMEN."/album/".$_SESSION['pagename']);
Прекрасно переходит
Да у меня вот так 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 = " ";
$link_del = NULL;
if($i < $rows)
{
if($i % COLUMNS == 0)
echo "<tr>\r\n";
$prew = " ";
$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($_ ..........
А лучше не так, лучше чтоб название странички всегда было последним. так красивее:
".DOMEN."/albump/pag/2/логин....
$pag = isset($_ ..........

".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
Вот и всё собственно. Для начала более чем достаточно.
^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
Вот и всё собственно. Для начала более чем достаточно.
Цитата |
Да просто нервы уже не выдерживают, за день сделала одну ссылку удалить. Я не думала, что это так затянется. Так точно до пенсии просижу, а к ней уж и не нужно будет.. |
Ну я же предупреждал, что не очень быстро это все. Да и по сути ничего не затянулось. Такой скрипт с нуля, без архитектуры, без базовых знаний и практики у тебя получается в рекордно короткие сроки. А вот сделаешь красиво всё, будет у тебя куча бабок и женихов.
Не расстраивайся. Счастье есть, оно не может не есть.
Вот так измени таблицу:

Вот так измени таблицу:
Код |
ALTER TABLE `strana_photo` ADD `date` TIMESTAMP NOT NULL , ADD `top` ENUM( '0', '1', '2' ) NOT NULL; |
Сделай файл muve_photo.php:
Свернутый текст
PHP |
<?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": |
а в fase.php запрос для фоток поменяй так:
PHP |
$res = mysql_query("SELECT `prew`,`id` FROM `".PREFIX."photo` |
и пробуй. Вроде проверил.
Спустя 3 часа, 33 минуты, 48 секунд (30.03.2009 - 16:40) lira1 написал(а):
Спасибо за помощь, поддержку, терпение. Без тебя я бы уже давно плюнула на это дело.
У меня ничего не работает. Не загрузить фото, не редактировать анкету, не редактировать личные данные....
Если блок отключаю этот
PHP
case "delete" || "up" || "top":
include("modules/ancet/muve_photo.php");
break;
то работает
У меня ничего не работает. Не загрузить фото, не редактировать анкету, не редактировать личные данные....
Если блок отключаю этот
PHP
case "delete" || "up" || "top":
include("modules/ancet/muve_photo.php");
break;
то работает
Спустя 40 минут, 20 секунд (30.03.2009 - 17:20) twin написал(а):
Возьми в архиве рабочий вариант и сравни, мож я сослепу упустил чего...
А руки не след опускать. Тем более что уже процентов 10 готово
.
Вся сложность в том, что я плохо себе представляю функционал такого сайта, а тз у нас нету. Ты так и не написала чего там должно быть. Или написала, да я по природной своей тупости не могу понять толком. По этому и двигаемся в час по чайной ложке.
А руки не след опускать. Тем более что уже процентов 10 готово

Вся сложность в том, что я плохо себе представляю функционал такого сайта, а тз у нас нету. Ты так и не написала чего там должно быть. Или написала, да я по природной своей тупости не могу понять толком. По этому и двигаемся в час по чайной ложке.
Спустя 34 минуты, 20 секунд (30.03.2009 - 17:54) lira1 написал(а):
Цитата |
PS А самых красивых скрипт должен выбирать или как? biggrin.gif |
Самых красивых люди выбирают, каждый за одного может отдать только один голос.
как здесь вот только тут должен быть еще select с выбором города, чтоб человек мог посмотреть только по своему городу.
Получается должна быть еще одна ссылка рядом с фото, добавить в ТOp
А про сообщения. Человек видит анкету в поиске, нажимает. Выходит анкета, там кнопка, написать сообщение. Открывается новое окно. Там Сверху фотка , имя возраст, город того кому он пишет. Ниже поле со смайликами, которые можно добавить в сообщения., ниже поле для ввода текста и кнопка отправить. после отправления сообщения появляется в папке сообщения у адресата и у того кто оправил.
Спустя 1 час, 29 минут, 11 секунд (30.03.2009 - 19:24) twin написал(а):
Так, давай по порядку.
Цитата |
Человек видит анкету в поиске, нажимает. |
Где видит? Нам наверное сначала надо поиск сделать. И наверное вывод самых свежих, чтобы было куда нажать. Давай определимся с критериями поиска. В анкете куча полей, а на главной у тебя только несколько из них. Значит нужно делать простой и расширенный поиск. Для простого форма есть, теперь надо для расширенного. И еще, в каком виде выводить результаты? Так же фотками в табличке, как в альбоме или еще как? какие то сопроводительные надписи наверное надо. Ты потрать немного времени, подумай хорошенько и составь грамотный план наступления на мамбу
Это сэкономит потом кучу времени. Прямо по порядку и как можно подробнее:
1. Главная страница. Форма поиска. Поля:
а)Кто я
б)Кого ищу
в)В возрасте от до
.
.
.
ссылка на форму расширенного поиска.
2. Расширенный поиск, отдельная страница с формой. Поля:
.
.
.
.
3. При выборе то-сё открывается страница с результатом поиска. Результат в виде:
и так далее.

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 стр. .....................................
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 написал(а):
Цитата |
не создавайте несодержательных сообщений. |
Ой...
Так, ну приступим. Вот смотри что получается, когда за ранее не продумано. У нас данные для поиска оказались разбросаны по разным таблицим. Теперь нужно делать сложный запрос, который ничего кроме тормозов и пожирания ресурсов не даст. По этому, пока мы в дебри не забрались, нужно разделить эти данные. В таблице user оставить только аунтификацию, а остальное перетащить в анкету. К аунтификации относятся дата регистрации, логин, пароль, мыло и имя странички. При регистрации нужно данные разнести по таблицам. Сможешь сама? Я пока поисковиком займусь.

Так, ну приступим. Вот смотри что получается, когда за ранее не продумано. У нас данные для поиска оказались разбросаны по разным таблицим. Теперь нужно делать сложный запрос, который ничего кроме тормозов и пожирания ресурсов не даст. По этому, пока мы в дебри не забрались, нужно разделить эти данные. В таблице user оставить только аунтификацию, а остальное перетащить в анкету. К аунтификации относятся дата регистрации, логин, пароль, мыло и имя странички. При регистрации нужно данные разнести по таблицам. Сможешь сама? Я пока поисковиком займусь.
Спустя 1 час, 12 минут, 20 секунд (31.03.2009 - 12:41) twin написал(а):
Теперь дальше полезли косяки. База у нас получилась вообще ни к черту. Вот видишь, как плохо без предварительного планирования и архитектуры.
В базе полно кирилицы, что не допустимо на многоязычном сайте. Но это еще полбеды, главное, что по такой базе очень трудно организовать корректный поиск. Так что придется нам засучить рукова и сделать генеральную уборку. Значит так. Всю кирилицу из базы перенеси в константы (ru.php). Имена констант не важны пока, только делай похоже, чтоб легче ориентироваться потом. Вместо значений кирилицы в базе проставь порядковые номера. то есть было:

Код |
enum('без пары', 'как пара Ж+Ж', 'как пара М+Ж', 'как пара М+М') |
а должно стать:
Код |
enum('1', '2', '3, '4') |
Как закончишь, выложи сюда константы, я скрипты поправлю.
Спустя 1 час, 39 минут, 11 секунд (31.03.2009 - 14:20) lira1 написал(а):
Я вот так сделала, но че то не то
Свернутый текст
PHP |
if(isset($_SESSION['pusk'])) |
Спустя 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 Всё, починил. Проверь почту на форуме. Завтра распишу что как.
PS Всё, починил. Проверь почту на форуме. Завтра распишу что как.
Спустя 9 часов, 13 минут, 51 секунда (1.04.2009 - 07:29) lira1 написал(а):
Цитата |
А инициализация переменных не та, старая |
Для чего она нужна? Что вообще туда выносят?
Спустя 3 дня, 14 часов, 23 минуты, 11 секунд (4.04.2009 - 21:52) Марио написал(а):
неужели тема закрыта?
