Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Настройка и Изменение (http://forum.mynuke.ru/forumdisplay.php?f=11)
-   -   работа с формой отправки (http://forum.mynuke.ru/showthread.php?t=1304)

Kxu 16.02.2006 11:18

Вот я тут тоже с запросиком бьюсь!!!! ПОСМОТРИТЕ----<input type=\"checkbox\" name=\"c31\" value=\"$c31\">------так проблема в том, что значения никакие не передаются из флага...ПОЧЕМУ!!!!!вроде с виду такая невинная штучка, а так раздражает...как передать значение базе--отмечено или нет...
НО!!! есть такая вещь $c31 = intval(isset($_REQUEST['c31']));
я только не знаю куда её всунуть, ведь значение из форме по value передается, неужели для такой мелочи JS надо писать...ну не верю.....Кто-нидь знает!!!!!!

Soniks 16.02.2006 16:36

Kxu у вас должно быть две части скрипта одна форма для заполнения, в ней находиться вашь checkbox
<input type=\"checkbox\" name=\"c31\" value=\"$c31\">
при условии, что вы поставили галку на нем при отправки формы и переменная $c31 не пустая, то это все передасться во вторую часть скрипта, где это все обрабатываеться, эта переменная теперь будет конфигурировать как $_REQUEST['c31'] и вставляете вы ее уже куда хотите и делаете нужные вам проверки.

Kxu 16.02.2006 18:05

Soniks , я не могу больше, но не работает все равно, может ошибка в базе, как определить значение атрибута в базе, которое передается по value из checkbox, вроде все так и есть в программе, я бы так и не замарачивалась с самого начала, так все ровно и получилось, но в чем то прокол все равно????

function add_Flat() {

echo "<form enctype=\"multipart/form-data\" action=\"index.php?name=$module_name\" method=\"post\">"
."<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" align=\"center\">";


echo "<tr><td>"._LIFT.":</td><td><input type=\"checkbox\" name=\"c31\" value=\"$c31\"></td></tr>";
echo "<tr><td>"._PHONE.":</td><td><input type=\"checkbox\" name=\"c29\" value=\"$c29\" ></td></tr>";

echo "<tr><td colspan=\"2\" align=\"center\"><input type=\"hidden\" name=\"op\" value=\"flat\">"
."<input type=\"submit\" value=\""._FADD."\"></td></tr></form></table>";
}

function flat($c29, $c30, $c31) {
$c29 = stripslashes(FixQuotes($c29));
$c30 = stripslashes(FixQuotes($c30));
$c31 = stripslashes(FixQuotes($c31));

$ad = $db->sql_query("INSERT INTO ".$prefix."_bd (id, lift, phone) VALUES (NULL, '$c29', '$c31')");
}

Soniks 16.02.2006 19:18

Kxu
в приведенном коде у вас две переменные которые передадуться функции flat, а в самой функции объявлено 3, это не верно, если оно так:

PHP код:
 function flat($c29$c31) { 
global 
$db,$prefix;
$c29 stripslashes(FixQuotes($c29));
$c31 stripslashes(FixQuotes($c31));
 
$ad $db->sql_query("INSERT INTO ".$prefix."_bd (id, lift, phone) VALUES (NULL, '$c29', '$c31')");
if(!
$ad) echo "Данные НЕ добавились!";



Обратите внимание, что в кейсе должно быть так же:

PHP код:
 case "flat"
flat($c29$c31);
break; 

Kxu 17.02.2006 10:57

да, Soniks, просто неаккуратно вырезала лишний код, тебе же не интересно мишуру читать, так вот я так понимаю у меня все правильно и по идее, что должна передать эта переменная $c31 и $c29 ? какое значение? какое значение атрибута в бд должно быть, чтобы все соответствовало? просто передает нули в базу и никакого значения об отмеченности флага, вот....

Kxu 17.02.2006 12:09

Я даже вот что пишу echo '<pre>', print_r($_POST, 1), '</pre>';----все данные формы выводит, очень чудесно и удобно, вообщем проблема открыта!!!! как работает checkbox??????

Kxu 17.02.2006 14:16

Soniks , да вообще, тема закрыта, все гениальное ОЧЕНЬ просто.....
На самом деле, для всех кто ожидает от checkbox автомата, как я думала, что будет автоматически да или нет, то при отмеченном флаге передается значение value, при неотмеченном ничего не передается, вот и все!!!!

Kxu 20.02.2006 20:31

Soniks , ещё один вопрос меня преследует!!! Вот создаю я кучу форм для ввода пользователем различных данных, а вдруг пользователь решит что-нибудь пакосное ввести....как отреагирует система??? где можно просветиться на эту тему??? и ещё хочу производить всякого рода проверки...где можно прочитать про всякие казусы и уязвимости....или самой предполагать!!! Может существует какой-либо тест для проверки??? СПАСИБО!!! но меня ещё интересует проверка такого рода типа: ввожу метро, определяется в следующей форме какой район!!!!! Можно такое осуществить!!!!

Soniks 21.02.2006 14:22

Kxu обычно во всех книгах по пхп приводятся различные варианты проверки вводимых данных пользователем и методы защиты скрипта.

Kxu 21.02.2006 17:14

Soniks , ладно почитаю, но просто я как-то изучаю так без книг, следуя своей интуиции, а теперь следует наверное почитать !!!!
Ещё одна ситуация, у меня много checkbox, представим большой список выбора. Представили!!! А как теперь их передать из формы на обработку??? все тупо перечислять или можно в один массив запихать??? Но с массивом какие-то проблемы.. Так передает, а массив не хочет!!!
Код:
echo "<form enctype=\"multipart/form-data\" action=\"index.php?name=$module_name\" method=\"post\">" ."<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" align=\"center\">"; $i=1;while ($mA[$i] != "") { echo "<tr><td><input type=\"checkbox\" name=\"c10[".$i."]\" value=\"$mA[$i]\">$mA[$i]</option></tr></td>"; $i=$i+1; } echo "<tr><td colspan=\"2\" align=\"center\"><input type=\"hidden\" name=\"op\" value=\"flat\">" ."<input type=\"submit\" value=\""._BSEARCH."\"></td></tr></form></table>"; function flat($c10) { //работаю с этим массивом $c10 }

Вроде так!!!!!!А!!!

Soniks 21.02.2006 19:24

Kxu а что именно у вас здесь не работает?

Kxu 22.02.2006 10:34

Soniks, я хочу передать массив значений, отмеченных в checkbox! но, если тупо перечислять переменные во flat, то все норамально передается, а массив не хочет!!!!

Soniks 22.02.2006 17:11

вот так:
<input type=\"checkbox\" name=\"c10[".$i."]\" value=\"$mA[$i]\">
у вас будет приходить массив $c10 с ключами $i и значение $mA, если такой массив не передаеться в, то скорее всего он не объявлен как глобальный.

Kxu 28.02.2006 15:09

Soniks ,у меня так смешно получилось!!!!! теперь эта переменная $c10 передает массив, ну слово array!!!! как это так?????

Soniks 28.02.2006 16:16

Kxu все верно, если переменная являеться массивом и вы пытаетесь ее просто вывести на экран при поможи echo или print то он выведет Array, выводить нужно по ключу массива или переберать все имеющиеся значения массива например при помощи функции foreach

Kxu 28.02.2006 17:10

Soniks , да,наверное, попробую.... хотя если так подумать, перебор перебором, но если просто так, по произвольному индексу выводить, например $c10[3] почему так-то нельзя, а то выводит просто r?????

Soniks 01.03.2006 00:01

Kxu по индексу он должен вывести значение

Kxu 01.03.2006 12:45

Soniks , понятное дело!!! значение, но его-то нет!!!! Вообщем, формирую я массив $c10, из отмеченных значений флага, по идее так хочу!!!! через форму отправляю для обработки, но отправляется слово array, если я ничего не отмечу, то ничего не выводиться для $c10, а если отмечу, и выведу индексом, например $c10[2] выведиться буква r , почему так, Сделала глобальным этот массив $c10, типа описала в этих функциях, но ничего все равно!!!!!!

Kxu 01.03.2006 17:01

Soniks , смотри что ввожу
PHP код:
 echo "<center>$c10</center>";
    echo 
"<center>$c10[2]</center>";
echo 
"<center>".$_REQUEST["c10"]."</center>";
    echo 
"<center>$c10[3]</center>";
    echo 
'<pre>'print_r($_POST1), '</pre>'

а что получаю
Array
r
Array
a
Array
(

[c10] => Array
(
[1] => Первое
[2] => Второе
)

[op] => flat
)
Как быть!!!!!!!Вроде передается массив, а никак не взять!!!! :angry:

Вообщем, теперь вопрос в другом, вот так я достала значение массива
$_REQUEST["c10"][$i] все нормально имею,
Но а на прямую как это сделать, чтобы прямо значение массива получить, а не буквы массива....хочу так как типа $c10[1] и значение массива "Первое" КАК!!!!!!

Soniks 02.03.2006 15:36

$c10=$_POST['c10'];

echo $c10[1].$c10[2];

Kxu 02.03.2006 18:06

Soniks , спасибо, но я то через $_REQUEST["c10"][$i] , уже все значения повытаскивала, вот думаю на локалке-то работает такое, а если на серваке отключит register_global, то работать $_REQUEST не будет, а $_POST????? все равно будет работать!!!!!!

Soniks 02.03.2006 22:25

Kxu почему не будет, будет!

Kxu 10.03.2006 10:52

Soniks , как можно сделать, чтобы пользователь при вводе формы в таблицу заносилась дата и время его ввода. Я думаю это надо сделать в форме невидимое что-то и ему присваивать автоматически число и др полю время....Вот есть такая возможность автоматического определения времени и даты, а затем присвоить какому либо невидимому значению, например текстовому!!!! Можно ли!!!!

Soniks 11.03.2006 01:33

Kxu еще раз повторюсь! учитесь формулировать вопросы!

Kxu 13.03.2006 10:54

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

Soniks 14.03.2006 00:38

в замен значения вставляйте функцию Now()
Код:
insert into table (id, date) values (null, now())

Kxu 14.03.2006 13:27

Soniks , ты просто чудо!!!!! :groupjump :groupjump :groupjump :groupjump
и время аналогично также получилось, главное правильно значение атрибутов поставить!!!!
А если поставить значение datetime, то в поле будет заноситься и дата и время. А как по такому полю потом выборку делать??? если отдельно нужно по дате, по времени...????А!

Soniks 15.03.2006 02:59

Kxu вариантов очень много, можно по средством mysql, а можно по средством php принять дату как строку и разобрать ее на нужные составляющие, например как выполнена функция formatTimestamp в mainfile.php

Kxu 15.03.2006 11:03

Soniks , php средствами все понятно, разбирусь, когда книжку куплю, в конце концов... меня больше интересует sql запрост, например, вывести все данные за последние пол часа??? вообще как это от текущего времени отнять пол часа и сравнивать? я даже не понимаю как вычет по времени сделать?? а если время и дата вместе, то sql сделать вообще труба, но так интересно, любопытство распирает!!!!:bubble:
ААААА как работет эта функция ??? formatTimestamp

Soniks 15.03.2006 16:28

Kxu почитайте руководство по mysql там много различных функций существует для sql и используйте нужные вам, а вычет по времени считайте в скендах time() - это сколько сейчас на сервере времини и отнимайте количество секунд, вот вам и будет время
Цитата ААААА как работет эта функция ??? formatTimestamp

почитайте описание функций поторые она использует, должны понять как именно.

Kxu 20.03.2006 10:53

в каких ещё скендах????? я такого не слышала???а вот про формат временной метки начиталась!!!! очень любопытно, буду пробовать и делиться опытом и косяками :splash:

Soniks 20.03.2006 21:08

Kxu в секундах, опечатался...

Kxu 22.03.2006 14:39

Soniks , ну вот,!!!! а прикольно секунды скендами называть!!!!:lol:


Часовой пояс GMT +4, время: 21:32.

Copyright © 2005 by Soniks