• 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

0 głosów
1,728 wizyt
pytanie zadane 19 lutego 2017 w PHP, Symfony, Zend przez koczo21 Początkujący (420 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,420 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 Obywatel (1,790 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,210 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 (420 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 (420 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 (420 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 (420 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 (420 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ź 49 wizyt
pytanie zadane 10 czerwca 2017 w Nasze projekty przez xxxxxx Nowicjusz (180 p.)
0 głosów
1 odpowiedź 85 wizyt
pytanie zadane 10 czerwca 2017 w Nasze projekty przez xxxxxx Nowicjusz (180 p.)
0 głosów
1 odpowiedź 95 wizyt
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

62,453 zapytań

108,603 odpowiedzi

226,735 komentarzy

36,179 pasjonatów

Przeglądających: 194
Pasjonatów: 18 Gości: 176

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...