• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

php nie działający submit

VPS Starter Arubacloud
0 głosów
2,579 wizyt
pytanie zadane 19 lutego 2017 w PHP przez koczo21 Początkujący (450 p.)

Cześć,

Mam problem z "submitem" w PHP. Po wciśnięciu nie wywołuje się żadna akcja.

<?php
	
	echo '<input type = "submit" name="submit" value="wróć do logowania" />';
	if(isset($S_POST['submit']))
	{
		echo 'sukces';
		//unset($_SESSION['zalogowanyadmin']);
		//header ('adminz.php');
	}
	else
	{
	echo "blad";	
	}	
?>

Nie do końca chyba też rozumiem funkcjonowanie takiego przycisku. Czemu ma w takim przypadku służyć "else"? Przecież nie da się "nie kliknąć" przycisku. U mnie cały czas wyświetla komunikat "blad", kliknięcie submita nie wywołuje żadnej reakcji. Dodam, że jestem początkujący i proszę o wyrozumiałość :) będę bardzo wdzięczny za pomoc.

5 odpowiedzi

+2 głosów
odpowiedź 19 lutego 2017 przez TheBan Obywatel (1,400 p.)
edycja 19 lutego 2017 przez TheBan

Nie pisze się:

$S_POST['submit']

tylko

 $_POST['submit']

DODATKOWO musisz dać form,aby wysłać żądanie :)

0 głosów
odpowiedź 19 lutego 2017 przez misiek.sz Bywalec (2,050 p.)

wyświetla komunikat "błąd" bo wykonuje sie blok else bo zmienne super globalne jak kolega wyżej zauważył pisze sie $_POST, $_GET bez żadnych znaków dodatkowych, po za tym nie wiem czy ten kod, który dałeś to cały kod jeśli tak to żeby zainstniała jakakolwiek akcja to trzeba dać:

<form method="POST" action="">
<input type="submit" name="submit" value="Zaloguj">
</form>

 

0 głosów
odpowiedź 20 lutego 2017 przez Wilczu Mądrala (5,190 p.)

Cześć

wyświetla się "błąd" ponieważ zmienna $_POST['submit'] nie jest ustawiona 

ok a wracając do problemu napisałem tutaj prosty kod na szybko sprawdzałem działa

<?php


    echo '<form method="POST">
            <input type="submit" value="wyloguj sie !" name="submit" />
          </form>';

    if(isset($_POST['submit']))
    {
        unset($_POST['submit']);
        header('Location: admin.php');
    }
    else
    {
        echo "Zmienna submit nie jest ustawiona !";
    }

?>

nie dałem tutaj action bo sprawdzanie if odbywa się w tym samym dokumencie 

Pozdrawiam

komentarz 20 lutego 2017 przez koczo21 Początkujący (450 p.)

Dzięki za wskazówki. Wprowadziłem poprawki, ale nadal mam pewien problem. Całość kodu wygląda tak: 


<form action="adminz.php"><input type = "submit"  value="wróć do logowania" /></form>

	<br /><br />
	<form method="POST">
	<input type = "submit" name="submit" value="wróć do strony głównej" />
	</form>
	<?php
	if(isset($_POST['submit']))
	{
		unset($_SESSION['zalogowanyadmin']);
		header ('Location: index.php');
	}
	?>

Jak widać są dwa przyciski. Pierwszy przekierowuje mnie do adminz.php i tu wszystko działa. Drugi ma mnie przekierować do index.php, z tym że aby tak się stało musi być nie ustawiona zmienna $_SESSION['zalogowanyadmin']. W przeciwnym razie z automatu przekieruje do aminz.php(w index.php jest warunek, że jeśli jest ustawiona zmienna $_SESSION['zalogowanyadmin'] to przekieruj do adminz.php). W instrukcji if dałem warunek, że jeśli naciśniemy submit to "wyłączamy" $_SESSION['zalogowanyadmin'] i przekierowujemy do index.php. Problem w tym, że mimo to dalej przekierowuje do adminz.php zamiast do index.php. Żeby było ciekawiej to nawet w przypadku takiego kodu:

<form method="POST">
	<input type = "submit" name="submit" value="wróć do strony głównej" />
	</form>
	<?php
	if(isset($_POST['submit']))
	{
	echo "test";
	}
	?>

 nie wiedzieć czemu dalej przekierowuje mnie do adminz.php

0 głosów
odpowiedź 20 lutego 2017 przez koczo21 Początkujący (450 p.)

Daje jeszcze raz odpowiedź pod głównym wątkiem, bo skomentowałem tylko jeden z komentarzy:

 

Dzięki za wskazówki. Wprowadziłem poprawki, ale nadal mam pewien problem. Całość kodu wygląda tak: 

<form action="adminz.php"><input type = "submit"  value="wróć do logowania" /></form>
 
    <br /><br />
    <form method="POST">
    <input type = "submit" name="submit" value="wróć do strony głównej" />
    </form>
    <?php
    if(isset($_POST['submit']))
    {
        unset($_SESSION['zalogowanyadmin']);
        header ('Location: index.php');
    }
    ?>

Jak widać są dwa przyciski. Pierwszy przekierowuje mnie do adminz.php i tu wszystko działa. Drugi ma mnie przekierować do index.php, z tym że aby tak się stało musi być nie ustawiona zmienna $_SESSION['zalogowanyadmin']. W przeciwnym razie z automatu przekieruje do aminz.php(w index.php jest warunek, że jeśli jest ustawiona zmienna $_SESSION['zalogowanyadmin'] to przekieruj do adminz.php). W instrukcji if dałem warunek, że jeśli naciśniemy submit to "wyłączamy" $_SESSION['zalogowanyadmin'] i przekierowujemy do index.php. Problem w tym, że mimo to dalej przekierowuje do adminz.php zamiast do index.php. Żeby było ciekawiej to nawet w przypadku takiego kodu:


<form method="POST">
    <input type = "submit" name="submit" value="wróć do strony głównej" />
    </form>
    <?php
    if(isset($_POST['submit']))
    {
    echo "test";
    }
    ?>

nie wiedzieć czemu dalej przekierowuje mnie do adminz.php

komentarz 20 lutego 2017 przez dev Nowicjusz (180 p.)

To co najprostsze jest najtrudniejsze :D

w pliku index.php

if(isset($_SESSION['zalogowanyadmin'])) {
 header('Location: ./adminz.php');
 exit; // bezsens dalej ładować kod ;)
 }

a w pliku adminz.php

if(!isset($_SESSION['zalogowanyadmin'])) {
 header('Location: ./index.php');
 exit; // bezsens dalej ładować kod ;)
 }
komentarz 20 lutego 2017 przez koczo21 Początkujący (450 p.)
dev,

Ja mam właśnie tak ustawione. Przechodząc do index.php automatycznie ląduje w adminz.php poniewać jest ustawiona zmienna $_SESSION['zalogowanyadmin']. To co chcę osiągnąć, to srobić submita(może być też przekierowania w inny sposób), który przekieruje mnie do index.php i jednocześnie wykona unset$_SESSION['zalogowanyadmin'], abym został w tym index'ie :)
komentarz 20 lutego 2017 przez dev Nowicjusz (180 p.)
Pokaż cały kod...
komentarz 20 lutego 2017 przez koczo21 Początkujący (450 p.)

To jest cały kod witamyadmin.php z którego chcę mieć możliwość przejścia do index.php i do adminz.php. W zasadzie najważniejszą część kodu już przesłałem wcześniej. Tak jak pisałem wcześniej, aby przejść do index.php musi być "wyłączona" zmienna  $_SESSION['zalogowanyadmin'], która jest domyślnie włączona

<?php
	session_start();
	
		if (!isset($_SESSION['udanarejestracjaadmin'])) 
		{
			header('Location: index.php');
			exit();
		}	
		else
		{
		unset($_SESSION['udanarejestracjaadmin']);
		}
		
		//Usuwanie zmiennych pamiętającyh wartości wpisane do wormularza
		if(isset($_SESSION['fr_imie'])) unset($_SESSION['fr_imie']);
		if(isset($_SESSION['fr_nazwisko'])) unset($_SESSION['fr_nazwisko']);
		if(isset($_SESSION['fr_login'])) unset($_SESSION['fr_login']);
		if(isset($_SESSION['fr_haslo1'])) unset($_SESSION['fr_haslo1']);
		if(isset($_SESSION['fr_haslo2'])) unset($_SESSION['fr_haslo2']);
		
		
		//Usuwanie błędów rejestracji
		if(isset($_SESSION['e_imie'])) unset($_SESSION['e_imie']);
		if(isset($_SESSION['e_nazwisko'])) unset($_SESSION['e_nazwisko']);
		if(isset($_SESSION['e_login'])) unset($_SESSION['e_login']);
		if(isset($_SESSION['e_haslo1'])) unset($_SESSION['e_haslo1']);
		
		
?>



<!DOCTYPE HTML>
<html lang="pl">
<head>
	<meta charset ="utf-8" />
	<title>Sklep internetowy</title>
	<meta name="description" content="Sklep internetowy oferujący media w formacie cyfrowym" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
</head>
	
<body>
	<form action="adminz.php"><input type = "submit"  value="wróć do logowania" /></form>

	<br /><br />
	<form method="POST">
	<input type = "submit" name="submit" value="wróć do strony głównej" />
	</form>
	<?php
	if(isset($_POST['submit']))
	{
		unset($_SESSION['zalogowanyadmin']);
		header ('Location: index.php');
	}
	?>

 

0 głosów
odpowiedź 21 lutego 2017 przez koczo21 Początkujący (450 p.)
Dzisiaj ponownie zacząłem walczyć i z przyzwyczajenia spróbowałem na aktualnym kodzie i okazało się, że działa jak należy o.O Nie wiem dlaczego tak się dzieje, ale wygląda na to, że  czasami przeglądarka buforuje jakieś stare dane i ignoruje zmiany w kodzie. Tak czy siak to wasze wskazówki okazały się pomocne i udało się zrobić to co zamierzałem :)

Podobne pytania

0 głosów
1 odpowiedź 167 wizyt
pytanie zadane 10 czerwca 2017 w Nasze projekty przez xxxxxx Nowicjusz (180 p.)
0 głosów
1 odpowiedź 471 wizyt
pytanie zadane 10 czerwca 2017 w Nasze projekty przez xxxxxx Nowicjusz (180 p.)
0 głosów
1 odpowiedź 832 wizyt

93,006 zapytań

141,972 odpowiedzi

321,254 komentarzy

62,345 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...