Przekierowanie PHP

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
Atom
Sędziwy Jeż
Sędziwy Jeż
Posty: 45
Rejestracja: 08 mar 2009, 12:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Przekierowanie PHP

Post autor: Atom »

Witam napisałem sobie w PHP skrypty rejestracji i logowania.
Chciałbym by po zalogowaniu użytkowni dostał komunikat że zostal zalogowany i automatycznie przekierowany na właściwej strony

Kod: Zaznacz cały

<?php

session_start();

if (isset($_POST['konto']) and isset($_POST['password']) )

{

require('conn.php');

$konto=mysql_real_escape_string(trim($_POST['konto']));

$password=mysql_real_escape_string(trim($_POST['password']));

if ($konto!="" and $password!="") 

{

   $password = sha1(md5($password));

   $zapytanie="SELECT id FROM user WHERE login='$konto' and password ='$password'";

   $temp=mysql_query($zapytanie) or die("Wystąpił błąd"); 

    $ile=mysql_num_rows($temp);

   $temp=mysql_fetch_array($temp);

   $id=$temp['id'];

  

   if ($ile==1)

   {

     $_SESSION['user_id']=$id;

     $_SESSION['login']=$konto;

     echo('Zostales zalogowany. ');
	
	header("Location: test.php");


   }

   else echo ('Podales zle dane. Kliknij wstecz aby sprobowac ponownie.');

}

}

else{
	

?>

<html>

<body>

<form  action="login.php" method="post">

<strong>Login:</strong><input name="konto" type="text" value="" />


<strong>Haslo:</strong><input name="password" type="password" value="" />


<input type="submit" value="Zaloguj" />

</form>

</body>

</html> 

<?php

}?>
lecz dostaje taki error
Zostales zalogowany.
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\Skany\login.php:41) in C:\xampp\htdocs\Skany\login.php on line 43
Prosił bym o pomoc
Awatar użytkownika
Hauleth
Wytworny Kaczor
Wytworny Kaczor
Posty: 382
Rejestracja: 18 sie 2008, 17:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86

Odp: Przekierowanie PHP

Post autor: Hauleth »

Nie możesz wysłać headera gdy już coś wyświetliłeś. Jest jakiś znacznik meta za to odpowiedzialny, ale nie pamiętam jego typu. Zawsze możesz też spróbować to zrobić za pomocą JS
Jeśli problem rozwiązany dodaj na początku tematu [SOLVED].

Biblioteka do C++ - Bust Lib: http://code.google.com/p/bust/
dam
Sędziwy Jeż
Sędziwy Jeż
Posty: 40
Rejestracja: 21 maja 2008, 20:43
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: Przekierowanie PHP

Post autor: dam »

Wywołaj przed session_start() funkcję ob_start()
darnok
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 06 sty 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME

Odp: Przekierowanie PHP

Post autor: darnok »

Czy linia

Kod: Zaznacz cały

  echo('Zostales zalogowany. ');
jest tutaj potrzebna?
Może spróbuj wyświetlić komunikat w pliku test.php?
Radzę oddzielić kod HTML od PHP kod będzie czytelniejszy i unikniesz części takich błędów:)
Awatar użytkownika
sibul
Wytworny Kaczor
Wytworny Kaczor
Posty: 318
Rejestracja: 16 paź 2007, 22:29
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Odp: Przekierowanie PHP

Post autor: sibul »

Nie wgłębiałem się w kod ale można zrobić to w ten sposób:

Kod: Zaznacz cały

<?php
//tutaj jest kod który zostanie wyświetlony i wykonany po zalogowaniu
echo "<h3>Zostałeś poprawnie zalogowany!</h3>";
echo '<meta http-equiv="refresh" content="3;url=zalogowany.php" />';
?>
OS X 10.8.3
Awatar użytkownika
Atom
Sędziwy Jeż
Sędziwy Jeż
Posty: 45
Rejestracja: 08 mar 2009, 12:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przekierowanie PHP

Post autor: Atom »

Dzięki wielkie wytarczyło dać ob_start() i ruszyło odrazu :) jeszcze raz dziekuje :)
Awatar użytkownika
f00sek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 109
Rejestracja: 18 kwie 2009, 15:54
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przekierowanie PHP

Post autor: f00sek »

Sibul - to nie jest zbyt bezpieczne, gdyż nie przekazujesz tutaj żadnych danych, ktoś może wejść do pliku po prostu znając jego nazwę. Żeby to działało musimy wrócić znów do sesji;)
System.out.println ("Java programmer");
Awatar użytkownika
Atom
Sędziwy Jeż
Sędziwy Jeż
Posty: 45
Rejestracja: 08 mar 2009, 12:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przekierowanie PHP

Post autor: Atom »

Właśnie co do bezpieczeństwa czy ktoś zna jakiś artykuł gdzie jest pokazane lub gdzie omawia sie własnie logowanie + rejestracja ale taka full bezpieczna ?? Szukam już dlugo w necie i zawsze znajde artukuł który mówi o właśnie takim logowaniu ale odrazu jest uwaga że nie jest to zzbytnio bezpieczne a ja chciałbym już takie zrobić full pro. Zna ktoś coś takiego ??
Awatar użytkownika
lukas_j
Sędziwy Jeż
Sędziwy Jeż
Posty: 54
Rejestracja: 20 lut 2009, 10:25
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: Przekierowanie PHP

Post autor: lukas_j »

Ja zrobilem bardzo fajny skrypt ;) Pomeczylem sie troche, ale jest ok ;)

Macie tu:

http://wrzuc.net/get.php?what=3x6n4gsjmyfrends.rar
a na tej stronie mozna przetestowac dzialanie skryptu ;]
co prawda nie odporne na chamow, ktorzy uwielbiaja dodawac tabelki na stronie i dawac parametr width na 1000000 xD
Awatar użytkownika
Spawnm
Sędziwy Jeż
Sędziwy Jeż
Posty: 83
Rejestracja: 30 maja 2009, 18:16
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: Unity
Architektura: x86
Lokalizacja: Radom
Kontakt:

Odp: Przekierowanie PHP

Post autor: Spawnm »

poczytaj strip_tags i htmlspecialchars :)
Awatar użytkownika
sibul
Wytworny Kaczor
Wytworny Kaczor
Posty: 318
Rejestracja: 16 paź 2007, 22:29
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Odp: Przekierowanie PHP

Post autor: sibul »

f00sek pisze:Sibul - to nie jest zbyt bezpieczne, gdyż nie przekazujesz tutaj żadnych danych, ktoś może wejść do pliku po prostu znając jego nazwę. Żeby to działało musimy wrócić znów do sesji;)
Nie wróci do tamtego pliku, bo gdy tablice $_POST są puste nie wykona działania skryptu.
OS X 10.8.3
Awatar użytkownika
rryk
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 206
Rejestracja: 04 mar 2008, 16:00
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Kontakt:

Odp: Przekierowanie PHP

Post autor: rryk »

patrze 3 fotka powstanie ^^
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 28 gości