1. Кода форму заполняю кириллицей, функция strlen() работает некорректно.
2. Постоянно в браузере выводятся Notice'ы:
Цитата:
Notice: Undefined index: name in P:\WEB\localhost\www\test.php on line 34
Notice: Undefined index: post in P:\WEB\localhost\www\test.php on line 35
3. Как сделать так, чтоб сообщение
Цитата:
You haven't specified your name
не выводилось сразу при первой загрузке.
4. Наконец, база и таблица нормально создаются, но почему то записи туда не добавляются.
Спасибо за внимание!
EuGen
Отправлено: 17 Ноября, 2007 - 11:33:40
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
1. В чем проявляется некорректность работы? И убедитесь что Вы правильно задаете кодировку.
2. Потому, что Вы обращаетесь сразу к необъявленным элементам массива $_POST.
Правильно делать так:
3. Нужно проверять - а передавались ли данные. В простейшем случае это можно делать, проверяя $name и $post на непустые строки (см п. 2.), но правильнее это делать так:
4.Вы вставляете NULL-значение в поле `id` таблицы, которое наверняка у Вас служит первичным ключем, и, соответственно, никаких NULL там быть не может. Если нет, то приведите структуру Вашей таблицы. Плюс к тому, зачем Вы пишете имя таблицы в кавычках, означающих строковую константу? Если и употреблять кавычки, то только обратные, например:
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
T-Mon
Отправлено: 17 Ноября, 2007 - 13:17:08
Гость
Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2007
Помог: 0 раз(а)
1. Некорректность в том, что когда ввожу значение в поле name (если б дошло до поля post, было б тоже самое и с ним) в кириллической раскладке, сразу выводится сообщение "Your name is too long".
Тут вроде бы кодировку задаю:
Что означают опереторы "?" и ":", если можно, линк на инфо, где это объясняется.
Что-то напоминает if...else, но синтаксис странный.
3. Не совсем понимаю суть этой формы... если можно, тоже линк или пояснение.
4. Хмм... не знал, что ' отличается от `, тоже хотелось бы точно найти, где и как точно можно каждую применять.
Спасибо за ваш ответ.\n\n(Добавление)
Кстати, в коде есть структура таблицы, вот:
`name` VARCHAR( 12 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
`post` VARCHAR( 90 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
);";
\n\n(Добавление)
Еще одно, NULL в поле id я ставил, потому что так делал phpmyadmin, с которым я, так сказать, консультировался.
T-Mon
Отправлено: 17 Ноября, 2007 - 20:16:10
Гость
Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2007
Помог: 0 раз(а)
Никто не поможет?
valenok
Отправлено: 17 Ноября, 2007 - 21:14:02
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Если это всё нужно читать - то вряд ли\n\n(Добавление)
начните с http://phpfaq[dot]ru/debug
а там посмотрим
----- Truly yours, Sasha.
T-Mon
Отправлено: 18 Ноября, 2007 - 00:09:48
Гость
Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2007
Помог: 0 раз(а)
Мда, трудно тут с чтением, хреновый из вас модератор, обязанность модератора - читать внимательно каждое сообщение в модерированном форуме на предмет нарушения правила или просьбе о помощи.
Staind
Отправлено: 18 Ноября, 2007 - 01:02:47
Гость
Покинул форум
Сообщений всего: 116
Дата рег-ции: Нояб. 2007 Откуда: Планета сокровищ
Помог: 0 раз(а)
[+]
Цитата:
или просьбе о помощи.
Что за нова?
EuGen
Отправлено: 18 Ноября, 2007 - 11:11:29
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
1. Попробуйте передавать в кодировке cp1251 (обычная Windows) и задавать ее не в тэге meta, а в свойстве accept-charset формы:
только нужно убедиться, что оно задается именно как "cp1251" (я то уже не помню), а не, скажем, "windows1251" и т.п.
2. Конструкция и есть краткая запись ветвления. Выполняется оно так:
Если expr есть true (либо по правилам приведения типов считается равным true), то переменной $var присвоится значение выражения val0, в противном случае присвоится значение выражения val1
Некоторые другое альтернативные виды конструкция PHP Вы можете найти тут: http://php.su/learnphp/cs/?alt
3. А тут нет ничего сложного: Вы создаете скрытое полу в форме, скрипту оно передается вместе с другими, "явными" данными. Но в скрипте оно уже совсем "явное", и Вы можете проверить, например, было ли оно задано или нет. Таким образом, если оно не задано, то данные формы не передавались, и делать ничего не нужно.
4. Как я и предполагал, Вы пытаетесь вставить NULL - значение в поле, объявленное при создании таблицы как NOT NULL. Такой запрос INSERT никогда не выполнится. Либо сделайте ваше поле id как поле auto_increment и уберите его вообще из запроса INSERT, либо перестраивайте логику Вашего скрипта.
Обратные кавычки - применимы для обозначения объектов БД в запросах (самих баз данных, таблиц, полей(колонок)). Одинарные и двойные кавычки применяются, в случаях, когда Вам нужно обозначить строковую константу. Например, применимо для вставки значений в строковое поле.
__________
P.S. не пойму, отчего я сегодня такой добрый?((*
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
valenok
Отправлено: 18 Ноября, 2007 - 12:13:49
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
если вам ответили, а мне не пожаловались - то по мне всё нормально.
а код у вас по цвету явно не похож на чтото такое
код ..
// А вот ты , да ты, ты полный **** **** *** ** ** ** * * *
код ..
--
Может из вас получится лучше.
Поживём увидим.
----- Truly yours, Sasha.
Infuzzer
Отправлено: 18 Ноября, 2007 - 12:22:35
Гость
Покинул форум
Сообщений всего: 80
Дата рег-ции: Нояб. 2007 Откуда: Израиль, Ашкелон
Помог: 0 раз(а)
T-Mon, valenok - не разжигайте
Нужно проще относиться к словам людей. А модераторы - тоже люди. T-Mon, можно же с юмором относиться, зачем сразу нападать?
Вообще на многих форумах за обсуждение действий модератора банан вешают. Хотя это маразм полнейший.
Вот так и складывается плохое отношение к модераторам.
Вообще иногда лучше жевать, чем говорить. В любом случае - не надо лезть с кулаками после одного сообщения, не помог valenok, поможет кто-то другой.
T-Mon
Отправлено: 18 Ноября, 2007 - 12:33:55
Гость
Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2007
Помог: 0 раз(а)
Да при чем тут кулаки, я вообще редко вступаю в конфликт, про меня удивили слова модератора "я не хочу все читать", скорей я отреагировал с юмором... кстати, на счет юмора, главное, чтоб сейчас модератор не отреагировал с "с юмором" и не закрыл тему. EuGen, огромное спасибо, сейчас все проверю.
Infuzzer
Отправлено: 18 Ноября, 2007 - 12:39:48
Гость
Покинул форум
Сообщений всего: 80
Дата рег-ции: Нояб. 2007 Откуда: Израиль, Ашкелон
Помог: 0 раз(а)
T-Mon, он вполне адекватный.
valenok
Отправлено: 18 Ноября, 2007 - 12:50:06
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
я темы закрываю если там нахально флудят пятую страницу.
Вы сам первоначальный вопрос решили ?
но читать десятки строк кода никому не нужно
особенно если это теги html или такая фигня как
$data=mysql_connect($host,$login,$pass) or die("Cannot connect mysql");
$query="CREATE DATABASE IF NOT EXISTS `$db_name`;";
нужно прямо ошибку, строку в которой ошибка и две строки до и после, ну вы не потрудились стираьт пробелы, а я читать.
Вроде честно. Ну помогу не я, поможет ктото другой.
Как сказал один хороший человек: ещё не извелись добродетели
----- Truly yours, Sasha.
Infuzzer
Отправлено: 18 Ноября, 2007 - 12:56:29
Гость
Покинул форум
Сообщений всего: 80
Дата рег-ции: Нояб. 2007 Откуда: Израиль, Ашкелон
Помог: 0 раз(а)
Ура, нахально флудить можно аж до четвертой страницы!!!
На мой взгляд схема один вопрос - одна тема -- очень удобная.
Флуд разводится до той поры, как задавший вопрос не скажет "Спасибо, проблема решена, тему можно закрыть".
EuGen
Отправлено: 18 Ноября, 2007 - 13:26:37
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
А вот не скажите.. частенько бывает так, что одна тема "плавно" перетекает в другую. Вроде и не флуд, а читать потом очень трудно.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.