LINUX.ORG.RU

Проклятый Метод POST неидут данные


0

0

Есть скрипт <html> <head> <title>hello gavno</title> </head> <body> <? $b = $_POST['toner']; $a = $_GET[a]; echo $a; switch ($a){ case "add":

echo("Добавлениее сделано"); $b = $_POST['toner']; echo($b);

break;

default: echo (" <form method='post' enctype='text/plain' name='addcartrige' action='./in.php?a=add' target='_self'> Производитель <select size='1' name='vendor'> <option value='HP'>HP</option> <option value='Canon'>Canon</option> <option value='Samsung'>Samsung</option> </select><br> Наименование модели <input type='text' name='name' ><br> Марка тонера<input type='text' name='toner' ><br> Вес тонера <input type='text' name='weight'><br> Базовая цена заправки <input type='text' name='rprice'><br> Базовая цена фотовала <input type='text' name='phprice'><br> Путь к изображению <input type='text' name='img'><br > <input name='submit' type='submit' value='ПОШЕЛ'> </form> "); break;

}

?> </body></html>

Скрипт для добавления в базу. Через форму в ПОСТЕ не идут данные хоть убейся всё перепробовал


<html>
<head>
<title>hello gavno</title>
</head>
<body>
<?
$b = $_POST['toner'];
$a = $_GET[a];
echo $a;
switch ($a){
case "add":

echo("Добавлениее сделано");
$b = $_POST['toner'];
echo($b);

break;

default:
echo (" 
<form method='post' enctype='text/plain' name='addcartrige' action='./in.php?a=add' target='_self'>
Производитель
<select size='1' name='vendor'>
	<option value='HP'>HP</option>
	<option value='Canon'>Canon</option>
	<option value='Samsung'>Samsung</option>
</select><br>
Наименование модели <input type='text' name='name' ><br>
Марка тонера<input type='text' name='toner' ><br>
Вес тонера <input type='text'  name='weight'><br>
Базовая цена заправки <input type='text' name='rprice'><br>
Базовая цена фотовала <input type='text' name='phprice'><br>
Путь к изображению <input type='text' name='img'><br >
<input name='submit' type='submit' value='ПОШЕЛ'>
</form> ");
break;

}

?>
</body></html>

Nuka
() автор топика

> хоть убейся

Сам знаешь, что надо сделать.

anonymous
()

1) меняешь post на get и смотришь что в адресной строке получаешь. Если всё нормально косяки у тебя в скрипте или на сервере.

2) enctype='text/plain' это действительно то, что ты хочешь?

Deleted
()
Ответ на: комментарий от Deleted

Я проверял 
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
print_r($_POST);
var_dump($_REQUEST); 

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

Nuka
() автор топика
Ответ на: комментарий от Nuka

у тебя там ошибка была: $a = $_GET[a];

так неправильно, надо так: $a = $_GET['a'];

читай мануалы внимательно в разделе работа с массивами

для отладки и вывода всех ошибок надо задавать репортинг так: error_reporting(E_ALL | E_STRICT);

но и в этом случае не все ошибки могут быть отображены. Чтобы увидеть почти все, назначь свой обработчик ошибок.

Поставь екстеншн для лисы: httpfox, да и вообще сконфигурируй свое рабочее место нормально. Юнит-тесты, селениум, логи, мониторинг http и т.д. и т.п.

Когда пишешь такие скрипты неслабо старайся логику, вывод и данные разделять как-то, но не делай кашу. Людям при просмотре такого кода приходит чувство, похожее на инверсию приема пищи...

Когда совсем ничего не помогает, после события ПОСТ вызывай сразу phpinfo(); И не забудь, когда отладишь, что отдавать контент в браузер при событии пост это "весело"

anonymous
()
Ответ на: комментарий от anonymous

Это я знаю пробовал как в Гете без кавычек! У меня 4 разных скрипта получилось так так и так и не как не работало переписал с чистого листа и ОЧУДО все получилось

$b = $_POST['toner']; $a = $_GET[a]; echo $a; switch ($a){

Прилагаю новый листинг: <?php #ini_set('error_reporting', E_ALL); #ini_set('display_errors', 1); $a=$_GET[a]; switch ($a){ case 'add':

print_r($_POST); $db = mysql_connect("localhost", "script", "qwerty"); mysql_select_db("lcart", $db); $vendor=$_POST['vendor'];$model=$_POST['model'];$weight=$_POST['weight'];$rpric e=$_POST['rprice'];$phprice=$_POST['phprice']; $result = mysql_query("INSERT INTO cartriges (vendor, model, weight, rprice, phprice) VALUES ('$vendor','$model','$weight','$rprice','$phprice')"); if ($result == true) { echo ("<br>УСПЕШНО В БАЗУ ЗАНЕСЕНО !!!"); } else { echo ("<br>ГОВНО КАКОЕТО ОДНАКО !!!"); } break; case 'formadd': echo " <html>

<head> <title>POST DATA</title> </head>

<body>

<form action=\"./form.php?a=add\" method=\"post\" target=\"_self\" name=\"forma\" title=\"FORMA\"> Выбирите производителя:<select size=\"1\" name=\"vendor\"> <option value=\"HP\">HP</option> <option value=\"Canon\">Canon</option> <option value=\"Samsung\">Samsung</option> </select><br> Название:<input type=\"text\" value=\"TEST POST\" size=\"20\" name=\"model\" /><br> Марка тонера:<input type=\"text\" name=\"toner\" /><br> Вес тонера:<input type=\"text\" name=\"weight\" /><br> Базовая цена заправки:<input type=\"text\" name=\"rprice\" /><br> Замена фотовала:<input type=\"text\" name=\"phprice\" /><br> Картинко тут будет <br> <input type=\"submit\" value=\"ПОШЕЛ\" name=\"submit\" title=\"submit\" /> </form>

</body> </html>"; break;

case 'view': echo "Здеся просмотр будет а пока нема"; break;

default: echo "<a href=\"form.php?a=formadd\" target=\"_self\">ДОБАВИТЬ КАРТРИДЖ</a><br><a href=\"form.php?a=view\" target=\"_self\">Просмотр Картриджей</a>"; break; }

?>

И все работает! ЛЮДИ УМНЫЕ СКАЖИТЕ ЧТО В ПРОШЛОЙ ВЕРСИИ НЕ ТАК БЫЛО??? =))) ВОТ ТАКАЯ ВОТ ДЕЛЕМА =) Если не работает пиши заново =)

Nuka
() автор топика
Ответ на: комментарий от Nuka

ЛИСТИНГ ТУТУА :
<?php
#ini_set('error_reporting', E_ALL);
#ini_set('display_errors', 1);
$a=$_GET[a];
switch ($a){
	case 'add':

    print_r($_POST);
    $db = mysql_connect("localhost", "script", "qwerty");
    mysql_select_db("lcart", $db);
    $vendor=$_POST['vendor'];$model=$_POST['model'];$weight=$_POST['weight'];$rpric
e=$_POST['rprice'];$phprice=$_POST['phprice'];
	$result = mysql_query("INSERT INTO cartriges (vendor, model, weight, rprice, phprice) VALUES ('$vendor','$model','$weight','$rprice','$phprice')");
    if ($result == true) {
        echo ("<br>УСПЕШНО В БАЗУ ЗАНЕСЕНО !!!");
    } else {
        echo ("<br>ГОВНО КАКОЕТО ОДНАКО !!!");      }
 	break;
 	
	 case 'formadd':
    echo "
<html>

<head>
	<title>POST DATA</title>
</head>

<body>

<form action=\"./form.php?a=add\" method=\"post\" target=\"_self\" name=\"forma\" title=\"FORMA\">
Выбирите производителя:<select size=\"1\" name=\"vendor\">
	<option value=\"HP\">HP</option>
	<option value=\"Canon\">Canon</option>
	<option value=\"Samsung\">Samsung</option>
</select><br>
Название:<input type=\"text\" value=\"TEST POST\" size=\"20\" name=\"model\" /><br>
Марка тонера:<input type=\"text\" name=\"toner\" /><br>
Вес тонера:<input type=\"text\" name=\"weight\" /><br>
Базовая цена заправки:<input type=\"text\" name=\"rprice\" /><br>
Замена фотовала:<input type=\"text\" name=\"phprice\" /><br>
Картинко тут будет <br>
<input type=\"submit\" value=\"ПОШЕЛ\" name=\"submit\" title=\"submit\" />
</form>

</body>
</html>";
break;

case 'view':
echo "Здеся просмотр будет а пока нема";
break;

default:
echo "<a href=\"form.php?a=formadd\" target=\"_self\">ДОБАВИТЬ КАРТРИДЖ</a><br><a href=\"form.php?a=view\" target=\"_self\">Просмотр Картриджей</a>";
break;
}

?>

Nuka
() автор топика
Ответ на: комментарий от Nuka

ГОСПОДИ И ЗАЧЕМ Я ВЗЯЛСЯ ЗА ПХП И МАЙСКВИРЛ =(((

Писал на паскале всю жизнь.....но POSIX..... Вобще не понимаю как мне в голову пришло перейдти на ЮНИКС ПРОКЛЯТАЯ ХРЕНЬ! 

НО Я НЕ СДАМСЯ!!! НАДЮСЬ =)

Nuka
() автор топика
Ответ на: комментарий от Nuka

Опять забыл дописать....

Отлаживал под фряхой7 апач рхр5 мускуль сервак работает просто супер никаких проблем не нарадуюсь просто, и на ноуте под денвером результат один и тот же.... я уже понял что где то косяк у меня но не могу найти......

Nuka
() автор топика
Ответ на: комментарий от Nuka

> Отлаживал под фряхой7 апач рхр5 мускуль сервак работает просто супер никаких проблем не нарадуюсь просто, и на ноуте под денвером результат один и тот же.... я уже понял что где то косяк у меня но не могу найти......

в стволовых клетках спинного мозга поищи.

phasma ★☆
()

Сюда, кагбе, на нетрезвую голову писать не рекомендуется. Так что вот.

И здесь — «$a = $_GET[a];» — содержится ошибка. Очень толстая.

shimon ★★★★★
()
Ответ на: комментарий от Nuka

> какрас в ГЕТ работает без кавычек а вот ПОСТ НЕТ =)

1) покури мануал, что означает «без кавычек», тогда в приличную компанию суйся
2) сам ты какрас

shimon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.