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
<?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
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].
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:)
<?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" />';
?>
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;)
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 ??
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.