Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: реализация вывода переменной

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
haveFun
Отправлено: 08 Января, 2010 - 07:57:53
Post Id



Гость


Покинул форум
Сообщений всего: 102
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




в общем тема такая.
есть страничка head.php с ячейкой (основной поле сайта) в которой выводится
CODE (text):
скопировать код в буфер обмена
  1. <?php  echo $contents ?>

есть форма, как бы для регистрации
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $out.='<form action="q.php" method="POST">';
  4. $out.='<table width="100%" height="100%" align="center" border="1">';
  5. $out.=' <tr><td width="260" align="right" span style="padding:0px 30px;">Enter your nickname: </td><td width="260"><input type="text" name="uname"> <input type="submit" value="Проверить"></td><td><?echo $unu?></tr>';
  6. $out.=' <tr><td align="right" span style="padding:0px 30px;">Enter the password: </td><td><input type="password" name="upassword"></td><td><? echo $upu ?></td><tr>';
  7. $out.=' <tr><td align="right" span style="padding:0px 30px;">Confirm the passwod: </td><td><input type="password" name="upassword2"><td></tr>';
  8. $out.=' <tr><td align="right" span style="padding:0px 30px;">Enter your e-mail: </td><td><input type="text" name="uemail"></td><td><? echo $umu ?></td></tr>';
  9. $out.=' <tr><td align="right" span style="padding:0px 30px;">Confirm your e-mail: </td><td><input type="text" name="uemail2"></td><td><? echo $test ?></td></tr>';
  10.  
  11. $out.=' <tr><td align="right" span style="padding:0px 30px;">Сколько спутников у Юпитера?</td><td><input type="text" name="upiter"></td><td><? echo $uuu ?></td></tr>';
  12. $out.=' <tr><td><? echo $za ?></td><td><br><input type="submit" value="Зарегистрироваться!"></td></tr>';
  13. $out.='</table>';
  14. $out.=' </form>';
  15. ...
  16. $contents = $out;
  17. require("head.php"); ?>
  18.  

при нажатии на "регистрироваться", активируется страничка q.php в которой выполняются всякие там условия...
CODE (text):
скопировать код в буфер обмена
  1. <?
  2. if ((!($_POST["upassword"] != $_POST["upassword2"])) && (!($_POST["upassword"] != NULL))) {
  3.                 if ((!($_POST["uemail"] != $_POST["uemail2"])) && (!($_POST["uemail"] != NULL))) {
  4.                         if ($_POST["upiter"] == "63")
  5.                                 {$za = "zaebis!";}
  6.                         else $uuu = "Почитайте википедию.";
  7.                         }
  8.                 else $umu = "некорректный e-mail!";
  9.                 }
  10.         else $upu = "некорректный пароль!";
  11.  
  12. require("registration.php");
  13. ?>
  14.  

разумеется переменные, которые по идее должны из q.php грузануться в registration.php не отображаются в соответствующих ячейках изза апострофов. как бы это дело обойти, что б к примеру в случае несоответствия кол-ва спутников Юпитера, рядом печаталось "почитайте вику"?

ps: я не очень профессиональный кодер, ниодного языка не знаю, третий день вообще что-то делаю, а курсовой сделать хочется. Подмигивание

для наглядности привожу скрин:


Отредактировано модератором: JustUserR, 16 Января, 2010 - 11:45:20
 
 Top
alpha_beta
Отправлено: 08 Января, 2010 - 10:33:20
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Курсовая расчитана обычно на год (бывают правда и удивительные исключения), а ты хочешь сделать все менее чем за неделю. Даж помогать не хочется таким лентяям.
 
 Top
RomAndry Администратор
Отправлено: 08 Января, 2010 - 10:47:07
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




в q.php у тебя "каша" из проверок.
раздели каждую проверку и делай постепенно все и проверяй сразу
 
My status
 Top
haveFun
Отправлено: 08 Января, 2010 - 18:26:59
Post Id



Гость


Покинул форум
Сообщений всего: 102
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




alpha_beta пишет:
Курсовая расчитана обычно на год (бывают правда и удивительные исключения), а ты хочешь сделать все менее чем за неделю. Даж помогать не хочется таким лентяям.

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

а kasha="0" не пойдет в моем случае? это я к тому что ответ на мой вопрос получился ооочень доходчивый))

вот кстати по новому переписал
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?
  3.         if ((!($_POST["upassword"] == $_POST["upassword2"])) && (!($_POST["upassword"] != NULL)))
  4.                 {
  5.                         if ((!($_POST["uemail"] == $_POST["uemail2"])) && (!($_POST["uemail"] != NULL)))
  6.                                 {
  7.                                         if ($_POST["upiter"] == "63")
  8.                                                 {
  9. $link = mysql_connect('localhost','root','pass') or die("Could not connect");
  10. mysql_select_db('user', $link ) or die ('Не могу выбрать БД');
  11. $query = "INSERT INTO eblans VALUES(NULL,'$uname','$upassword','$uemail')";
  12. $result = mysql_query($query);
  13. if($result) {echo "Даные внесены в базу данных";} else {echo "Ошибка, данные не были внесены в БД";}
  14. mysql_close;
  15. $contents = "thx for registration! ,)";
  16. require("index.php");
  17. //$za = "zaebis";
  18.                                                 }
  19.                                         else $uuu = "Почитайте википедию.";
  20.                                 }
  21.                         else $umu = "некорректный e-mail!";
  22.                 }
  23.         else $upu = "некорректный пароль!";
  24.  
  25. require("registration.php");
  26. ?>
  27.  

единственное что вылетает - "некорректный пароль". в формах пишу одинаковые пассы, то есть они равны и не пустые, а условие {...} не выполняется. может где-то в if(...) что-то не верно написал? никаких ошибок не вылетает.

(Отредактировано автором: 08 Января, 2010 - 18:36:45)

 
 Top
Мелкий Супермодератор
Отправлено: 08 Января, 2010 - 19:32:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




alpha_beta пишет:
Курсовая расчитана обычно на год (бывают правда и удивительные исключения)

По моим наблюдениям аналогично, курсовая - на один семестр, а не на год.

haveFun пишет:
в формах пишу одинаковые пассы, то есть они равны и не пустые,

Ну, а в коде проверяете, что бы они были не равны и нулевые.
PHP:
скопировать код в буфер обмена
  1.         if ((!($_POST["upassword"] == $_POST["upassword2"])) && (!($_POST["upassword"] != NULL)))

$_POST["upassword"] == $_POST["upassword2"] => true
(!true) => false
Есть false, значит && теряет смысл проверять дальше. Прерывание. Всё!

(Отредактировано автором: 08 Января, 2010 - 19:33:24)



-----
PostgreSQL DBA
 
 Top
Hunter
Отправлено: 09 Января, 2010 - 15:19:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




Мелкий
у меня была подобная поблема, две величины были равными по значению, одна из формы, другая из БД.. в if при сравнении почему-то ни как не признавалось их равенство..я даже специально выводил в их браузер чтобы убедиться что они равны..сколько не искал ошибку так и не нашел.. все удалил подчистую, написал заново но гораздо медленнее и внимательнее .. и все заработало Подмигивание
 
 Top
JustUserR
Отправлено: 09 Января, 2010 - 15:41:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Hunter пишет:
Я даже специально выводил в их браузер чтобы убедиться что они равны
Этот метод не всегда помогает так как переменные могут быь разного типа и выглядть в браузере будут одинаково только за счет одинаковости в toString (При преобразовании в строку)
Hunter пишет:
Написал заново но гораздо медленнее и внимательнее .. И все заработало
В действительности частичное или полное переписывание кода как правило дает заментые улучшения и в функциональности и в структуре программы
haveFun Вам для сведения скажу что пустая переменная и NULL-переменная это совершенно разные вещи - если в форме было поле но его не заполнили то это будет пустая переменная (Проверка if(!empty()) или просто if()) а если такой переменной вообще не было то она NULL (Проверка if(isset) или if(==NULL)

alpha_beta пишет:
Даж помогать не хочется таким лентяям
А тебе не надоело постоянно обвинять других - не знаешь не пиши Улыбка

(Отредактировано автором: 09 Января, 2010 - 15:43:08)



-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Hunter
Отправлено: 09 Января, 2010 - 15:53:04
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




JustUserR пишет:
Этот метод не всегда помогает так как переменные могут быь разного типа и выглядть в браузере будут одинаково только за счет одинаковости в toString (При преобразовании в строку)

но у меня же в условии стояла проверка на равенство а не на идентичность?)
 
 Top
JustUserR
Отправлено: 09 Января, 2010 - 16:12:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Hunter А может где в конце был символ \n ? Ведь в HTML он не является символом перевода строки и его можно не заметить Поэтому уж если и сравнивать через вывод в браузер то надо обрамлять дополнительно в одиночные кавычки - чтобы точно видеть начало и окончание содержимого переменной


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Мелкий Супермодератор
Отправлено: 09 Января, 2010 - 17:18:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




JustUserR пишет:
Поэтому уж если и сравнивать через вывод в браузер то надо обрамлять дополнительно в одиночные кавычки - чтобы точно видеть начало и окончание содержимого переменной

а лучше - var_dump(). Тип скажет, длину строки - тоже Улыбка

Hunter пишет:
но у меня же в условии стояла проверка на равенство а не на идентичность?)

но таки у вас проверка на неравенство! !($a==$b) аналогично $a!=$b
отрицание уберите, в общем Улыбка


-----
PostgreSQL DBA
 
 Top
biperch
Отправлено: 09 Января, 2010 - 18:09:21
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




haveFun пишет:
$out.="<form action="q.php" method="POST">";

$out.="<table width="100%" height="100%" align="center" border="1">";

$out.=" <tr><td width="260" align="right" span style="padding:0px 30px;">Enter your nickname: </td><td width="260"><input type="text" name="uname"> <input type="submit" value="Проверить"></td><td><?echo $unu?></tr>";

$out.=" <tr><td align="right" span style="padding:0px 30px;">Enter the password: </td><td><input type="password" name="upassword"></td><td><? echo $upu ?></td><tr>";

$out.=" <tr><td align="right" span style="padding:0px 30px;">Confirm the passwod: </td><td><input type="password" name="upassword2"><td></tr>";

$out.=" <tr><td align="right" span style="padding:0px 30px;">Enter your e-mail: </td><td><input type="text" name="uemail"></td><td><? echo $umu ?></td></tr>";

$out.=" <tr><td align="right" span style="padding:0px 30px;">Confirm your e-mail: </td><td><input type="text" name="uemail2"></td><td><? echo $test ?></td></tr>";


незнаю как оно там дальше но я наблюдаю офигенное количество """""" без \
 
 Top
JustUserR
Отправлено: 09 Января, 2010 - 19:25:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




biperch Может вам надо выключить magic_quoues_gpc чтобы не было лавинообразного экранирования спецсимволом
И когда вы выводите на экран то слеши последнего уровня никогда не будут видны (А будут видны начиная с тех которые были сами заэкранированы - типа \\ )


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
haveFun
Отправлено: 11 Января, 2010 - 01:19:17
Post Id



Гость


Покинул форум
Сообщений всего: 102
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




в общем господа, перебрал я все заново, проверка проходит на ура, пользователи добавляются в бд, но!
опять та самая проблема меня настигла, из за которой я тему эту и поднял.

на страничке q.php, на которой выполняется проверка условий, при неправильности проверки
PHP:
скопировать код в буфер обмена
  1.  
  2. if ($u=="63")
  3.               {добавление в бд}
  4.               else $_POST["uuu"] = "rtfm!"; require("registration.php");
  5.  

(если u=="фиг" например) переменная uuu должна принимать значение 4х веселых букв, и после этого грузиться страничка регистрации, на которой эта переменная должна отображаться в соответствующей ячейке:
PHP:
скопировать код в буфер обмена
  1.  
  2. $uuu = $_POST["uuu"];
  3. ...таблица, все дела...
  4. $out.='
  5. <tr>
  6.    <td> // 1 ячейка
  7.       Сколько спутников у Юпитера?
  8.    </td>
  9.    <td> // 2 ячейка
  10.       <input type="text" name="upiter">
  11.    </td>
  12.    <td> // 3 ячейка
  13.       <? echo $uuu ?>
  14.    </td>
  15. </tr>';
  16.  

и отображаться в третьей ячейке в виде rtfm!
прогружается registration.php
надпись rtfm не отображается Недовольство, огорчение
я что-то не так с $_post намудрил? как это подправить?

(Отредактировано автором: 11 Января, 2010 - 01:45:25)

 
 Top
JustUserR
Отправлено: 11 Января, 2010 - 08:06:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




haveFun Наверное дело в том что вы неправильно используете функцию require - она работает таким образом что не подключается файла в момент выполнения во время выполнения определеного условия - а делает это при запуске программы и при этом просто заменяет оператор на содержимое указанного файла
Если вам нужна вставка по условию то замените на include Об этом можете почитать здесь http://www.php.su/functions/?require


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
haveFun
Отправлено: 11 Января, 2010 - 18:46:57
Post Id



Гость


Покинул форум
Сообщений всего: 102
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




да нет, если я вместо
PHP:
скопировать код в буфер обмена
  1. else {$_POST["uuu"] = "rtfm!"; require("registration.php");}

напишу
PHP:
скопировать код в буфер обмена
  1.  else {echo "rtfm!"; require("registration.php");}

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

я могу конечно что-то путать ввиду своего непрофессионализма, но если эхо выводиться, должна выводиться и пременная Не понял

UPD: замена require на include ни к чему не привела.

(Отредактировано автором: 12 Января, 2010 - 01:46:57)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB