Strona 1 z 1

Przekierowanie PHP

: 30 cze 2009, 19:20
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

Odp: Przekierowanie PHP

: 30 cze 2009, 19:59
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

Odp: Przekierowanie PHP

: 30 cze 2009, 20:31
autor: dam
Wywołaj przed session_start() funkcję ob_start()

Odp: Przekierowanie PHP

: 30 cze 2009, 20:46
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:)

Odp: Przekierowanie PHP

: 30 cze 2009, 20:46
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" />';
?>

Odp: Przekierowanie PHP

: 30 cze 2009, 21:09
autor: Atom
Dzięki wielkie wytarczyło dać ob_start() i ruszyło odrazu :) jeszcze raz dziekuje :)

Odp: Przekierowanie PHP

: 01 lip 2009, 16:22
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;)

Odp: Przekierowanie PHP

: 01 lip 2009, 17:29
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 ??

Odp: Przekierowanie PHP

: 01 lip 2009, 23:36
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

Odp: Przekierowanie PHP

: 02 lip 2009, 09:43
autor: Spawnm
poczytaj strip_tags i htmlspecialchars :)

Odp: Przekierowanie PHP

: 02 lip 2009, 10:22
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.

Odp: Przekierowanie PHP

: 02 lip 2009, 13:31
autor: rryk
patrze 3 fotka powstanie ^^