Jump to content
  • 0

Не передается переменная


Mixail.09
 Share

Question

 

 

 

Здравствуйте. Почему переменная не передается в файл?

Почему во втором файле не видно переменной $userName

<html>	
	
	<head>
		<title>стр на пхп</title>
	</head>
	
	<body>
		<h1>Title</h1>
		<form method = "post" action = "2.php" >
			 <span>введите свое сраное имя</span>
       <br><br>
			 <input type = "text" name = "userName" value = "ddd">
			 <br><br>
			 <input type = "submit" >
		</form>
	</body>
</html>
<html>	
	
	<head>
		<title>стр на пхп</title>
	</head>
	
	<body>
		<h1>Title</h1>
		<?

		print "<h2>Hi $userName ; </h2>";
		?>
	</body>
</html>

 

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

А в первом документе переменная объявлена? Если имеется ввиду, что значение переменной - это то, что отправляет форма в первом документе, должно быть как то так:

2.php

<?php
	$userName = $_POST['userName'];
	print_r($userName);
?>

И то, жедательно ещё проверки проводить.. isset и т.д.

Edited by Q4Dizzy
Link to comment
Share on other sites

  • 0

Нужно сначала создать переменную $userName и присвоить ей значение полученное из глобального массива.

$userName = $_POST['userName'];
//или
$userName = $_REQUEST['userName'];

А чтобы заработал ваш код нужно чтобы был включен register_globals в конфиге PHP, но это настоятельно не рекомендуется!

Так же массив можно раскидать по переменным:

extract($_POST, EXTR_PREFIX_SAME, "post");

echo $userName;

 

  • Like 1
Link to comment
Share on other sites

  • 0

Похоже, пример взят из какого-то очень архаичного руководства, чуть ли не от PHP3 (а сегодня актуален PHP7). Лучше держаться от таких музейных экспонатов подальше. Для старта стоит смотреть как минимум сюда.

  • Like 2
Link to comment
Share on other sites

  • 0
1 час назад, SelenIT сказал:

Похоже, пример взят из какого-то очень архаичного руководства, чуть ли не от PHP3 (а сегодня актуален PHP7). Лучше держаться от таких музейных экспонатов подальше. Для старта стоит смотреть как минимум сюда.

Совершенно верно, начал читать сей самоучитель чтобы хоть в общих чертах разобраться с тем как работает PHP, кстати довольно неплохо там все объясняется. Самые азы так сказать усвоил.

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

3 часа назад, wwt сказал:

Нужно сначала создать переменную $userName и присвоить ей значение полученное из глобального массива.


$userName = $_POST['userName'];
//или
$userName = $_REQUEST['userName'];

А чтобы заработал ваш код нужно чтобы был включен register_globals в конфиге PHP, но это настоятельно не рекомендуется!

 

Спасибо. Логику понял. В своем примере как раз и не мог разобраться откуда должна появится userName, теперь ясно.

А нет по PHP чего то похожего на онлайн учебник Ильи Кантора?

Link to comment
Share on other sites

  • 0

Блин, что опять не так?

отправляю форму

			<form action=calendar.php method="get">
				<h3>Введите имя</h3>
				<input type=text name=login value="">
				<h3>Введите пароль</h3>
				<input type=text name=password value="">
				<br><br>
				<input type=submit value="Войти">
			</form>

и хотю ее вывести 

		<?
			$name = $_REQUEST['login'];
			$password = $_REQUEST['password'];
			echo $name;
			echo $password;
		?>

и ни чего не выводится(

Link to comment
Share on other sites

  • 0
11 час назад, Николя223 сказал:

сделайте print_r($_REQUEST);

Сделал, оказывается такая строка передает массив name <input type=text name=login value="">?

Вот так работает

$name = $_REQUEST['login'][0];
$password = $_REQUEST['password'][0];
echo $name;
echo $password;

Странно, поправьте меня пжл в рассуждениях, видимо не правильно понял инфу из книги.

Данные из формы передаются в массив $_REQUEST, где они доступны под именем формы $name = $_REQUEST['login'], в случае же если есть несколько форм с одинаковыми именами тогда в массив $_REQUEST передастся не пара "ключ: значение", а массив значений login[]. Т.Е. получается вложенный массив который будет доступен вот так $_REQUEST['login'][n].

У меня же почему то сразу передается массив, хотя одинаковых имен форм нет. Отсюда вопрос, так и должно быть или я чего то не понимаю?  Ведь даже выше советовали делать $userName = $_REQUEST['userName']; без всяких вложенных массивов?

Link to comment
Share on other sites

  • 0

Да GETом

calendar/calendar.php?login%5B%5D=k&password%5B%5D=y

 

48 минут назад, Николя223 сказал:

И да. ставьте кавычки. не ленитесь

Кавычки в смысле в тексте сообщения? Или в коде?

Если в коде то это не из за лени)

https://jsfiddle.net/1pydmpvh/

Вот целиком этот "шедевр", не знаю как правильно на php код показать

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy