Loading...
VitaminX avatar VitaminX 7 Точки

GET работи, POST не

Здравейте, предполагам, някой от вас се сблъскал с този проблем.

Когато правя някаква форма и се опитвам да обработя резултата с GET заявка всичко работи, но когато се опитва да направя същото с POST, не става. Предполагам се касае за някаква настройка на Apache, но не знам къде и каква.

 

Тагове:
0
PHP Fundamentals
Fornt.Improve1 avatar Fornt.Improve1 2 Точки

Какво излиза като съобщение?

0
VitaminX avatar VitaminX 7 Точки

Undefined index, ако не направя isset проверка на $_POST масива. После сложих isset за обработката на резултата и съответно нищо не се изпълни.

0
Fornt.Improve1 avatar Fornt.Improve1 2 Точки

Пробваш ли да изведеш по-подробен резултат с var_dump() ?

Иначе едно просто търсене (www.google.bg/?#q=enabling+%24_POST+in+PHP), би те насочило къде е проблема в твоя случай, предполагам.

0
VitaminX avatar VitaminX 7 Точки

Мерси, ще пробвам и ще кажа за резултата.

0
RAYCHEV avatar RAYCHEV 31 Точки

Случвало ми се е, но понеже ползвам различни браузъри за тестване ( когато се налага ) та в единия браузър просто не работеше а във друг ми изкара notice и оправих проблема.

Ако не е много секретен, пусни кода да потестваме.

0
VitaminX avatar VitaminX 7 Точки

Това е просто код, който копирах от интернет за да видя дали не бъркам нещо. Това, което добавих е проверката за isset в if-a

<form action="#" method="post">
    <input type="text" name="name" placeholder="Your Name"></input><br/>
    <input type="text" name="email" placeholder="Your Email"></input><br/>
    <input type="text" name="contact" placeholder="Your Mobile"></input><br/>
    <input type="submit" name="submit" value="Submit"></input>
</form>


<?php
if( isset($_POST["name"]) || isset($_POST["email"]) || isset($_POST["contact"]))
{
    echo "Welcome: ". $_POST['name']. "<br />";
    echo "Your Email is: ". $_POST["email"]. "<br />";
    echo "Your Mobile No. is: ". $_POST["contact"];
}
?>

Както писах по-горе - Undefined index ми дава като грешка, ако не се направи проверка с isset

0
07/02/2017 12:46:37
RAYCHEV avatar RAYCHEV 31 Точки

Кода си работи при мен,
какъв сървар ползваш,
през phpstorm ли го стартираш или през xampp ?
Kaкато казват в The It Crowd : опита ли да рестартираш ?

Проверката според мен трябва да е

if( isset($_POST["name"]) && isset($_POST["email"]) && isset($_POST["contact"]))

//or 

if( isset($_POST["name"]) && !empty($_POST["name"]) && isset($_POST["email"]) && !empty($_POST["email"]) && isset($_POST["contact"]) && !empty($_POST["contact"]))

в твоят случай "ИЛИ" || , ще пропусне дори при една сетната стойност.

0
07/02/2017 13:08:42
worminer avatar worminer 104 Точки

Здравей,
Ако го отваряш през webstorm или друго ide с собствен сървър .. Post просто не работи..
(като натиснеш бутончето "отвори в хром" в php сторм ти не ползваш апачето а вградения сървър на phpstorm)
Но през апачето би трябвало да работи като отвориш 127.0.0.1 и навигираш до файла..
Прати кода за да видим какво става..

0
07/02/2017 15:48:24
VitaminX avatar VitaminX 7 Точки

Да, отварям го през PHP Storm - мислех си, че Storm-a си намира Apache-то и го отваря чрез него, но явно не е така. Постнал съм кода в коментар към горния отговор.

0
worminer avatar worminer 104 Точки

Видях го кода ..тази грешка с ||  и && която е посочил колегата (наистина трябва да е както той го е казал) въпреки че е грешно би трябвало пак да сработи самата пост заявка когато го отвориш в апаче..
EDIT:
почетох малко за проблема в гугъл и хората казват, че след определена версия това просто неработи..
Hack-a за да проработи е да сложиш този код в началото на <php файла, но не съм го тествал..
 

<?php
$_POST = array(); //workaround for broken PHPstorm
parse_str(file_get_contents('php://input'), $_POST);
?>

 

0
07/02/2017 15:59:19
b.yordanov avatar b.yordanov 146 Точки

Най-добре не се занимавай с вградения сървър на php а си ползвай XAMPP по простата причина, че един ден като започнеш да го работиш това чудо PHP в повечето случаи ще ти се налага да конфигурираш настройки на апаче или друг уеб сървър, но не и вградения на PHP.

Като пускаш XAMPP-а не забравяй да си спреш скайп преди това (ако нямаш намерение да променяш портовете на апаче)

0
vkutov avatar vkutov 57 Точки

$_REQUEST работи ли?

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.