» »

Koda za prijavo

Koda za prijavo

roky99 ::

Živjo!

Pri izvajanju kode za prijavo mi izpiše naslednje:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\cms\login\prijavi.php:7) in C:\xampp\htdocs\cms\login\prijavi.php on line 31

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\cms\login\prijavi.php:7) in C:\xampp\htdocs\cms\login\prijavi.php on line 31
Prijavljen kot roky99

prijava.php
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<title>Prijava</title>
</head>
<body>
<?php
	include "../config.php";
	
	if (isset($_POST['submit']))
	{
	@$id = $_POST['id'];
	$uime = $_POST['uime'];
	$geslo = $_POST['geslo'];
	$ok = 0;
	
	$result = mysql_query("SELECT * FROM uporabniki");
	while($row = mysql_fetch_array($result))
	{
		$uime1 = $row['uime'];
		$geslo1 = $row['geslo'];
		
		if(($uime == $uime1) && ($geslo == $geslo1))
		{
			$ok = 1;
		}
	}
	
	if($ok == 1)
	{
	session_start(); 
	$_SESSION['uime'] = $uime;
	echo "Prijavljen kot <b>". $_SESSION['uime']."</b>";
	?>
		<script language="javascript">
		alert("Pozdravljen <?php echo $uime ?>!");
		window.location = "<?php echo URL."login" ?>"
		</script>
	<?php
	}
	else
	{
		?>
		<script language="javascript">
		alert("Prijava ni uspela!");
		window.location = "<?php echo URL."login" ?>"
		</script>
		<?php
	}
	
	}
?>
</body>
</html>


To se mi večkrat dogaja in ne pogruntam kje je problem oz. kaj delam narobe.
don't drink and drive, just smoke and fly! ;)

Gost ::

Problem je, ker kličeš funkcijo session_start() za nekim izpisom datoteke. To je v tvojem primeru html koda na začetku. Torej malo moraš prestrukturirati datoteko (php kodo daj recimo na začetek, izpise pa v body tag).

roky99 ::

Hvala, bom poskusil pa se javim ce se kaj ne bo stimalo :)
don't drink and drive, just smoke and fly! ;)

roky99 ::

Spet imam en problem.

Napisal sem kodo za reigstracijo in prijavo, vendar se pojavi težava pri geslu. Uporabil sem funkcijo md5().
Registracija lepo uspe, pri prijavi pa se zatakne. Če iz baze skopiram md5 geslo je prijava uspešna, drugače ne.

registriraj.php
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<title>Registracija</title>
</head>
<body>
<?php
	include "../config.php";
	
	if (isset($_POST['submit']))
	{
	@$id = $_POST['id'];
	$uime = addslashes($_POST['uime']);
	$geslo = md5($_POST['geslo']);
	$email = addslashes($_POST['email']);
	$ok = 1;
	
	$result = mysql_query("SELECT * FROM uporabniki WHERE uime='$uime'");
	while($row = mysql_fetch_array($result))
	{	
		$ok = 0;
		echo "Uporabniško ime <b>".$uime."</b> že obstaja<br>";
		exit();
	}
	
	$result = mysql_query("SELECT * FROM uporabniki WHERE email='$email'");
	while($row = mysql_fetch_array($result))
	{	
		$ok = 0;
		echo "Uporabnik z email naslovom <b>".$email."</b> že obstaja<br>";
		exit();
	}	
	
	if($ok == 1)
	{
		$sql = "INSERT INTO uporabniki (uime, geslo, email) VALUES ('$uime', '$geslo', '$email')";
	
		if (!mysql_query($sql,$link))
		{
			die('Error: ' . mysql_error());
		}
			?>
				<script language="javascript">
				alert("Podatki so bili vnešeni v bazo.\n Hvala!");
				window.location = "<?php echo URL."login" ?>"
				</script>
			<?php
		}
	}
?>
</body>
</html>


prijavi.php
<?php
	include "../config.php";

	if (isset($_POST['submit']))
	{
		@$id = $_POST['id'];
		$uime = addslashes($_POST['uime']);
		$geslo = $_POST['geslo'];
		$ok = 0;

		$result = mysql_query("SELECT * FROM uporabniki WHERE uime='$uime' AND geslo='$geslo'");
		$rowc =  mysql_num_rows($result);
		if($rowc > 0)
		{
			while($row = mysql_fetch_array($result))
			{
				session_start();
				session_register('uime');
				?>
				<html>
				<head>
				<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
				<title>Prijava</title>
				</head>
				<body>
				<script language="javascript">
				alert("Pozdravljen <?php echo $_SESSION['$uime']; ?>!");
				window.location = "<?php echo URL."login" ?>"
				</script>
				<?php
			}
		}
		else
		{
			?>
			<script language="javascript">
			alert("Prijava ni uspela!");
			window.location = "<?php echo URL."login" ?>"
			</script>
			<?php
		}
	}
?>
</body>
</html>
don't drink and drive, just smoke and fly! ;)

Zgodovina sprememb…

  • spremenil: roky99 ()

schtr4jh ::

prijavi.php -> $geslo = md5($_POST['geslo']);

ps: priporočam, da si ogledaš funckijo mysql_real_escape_string

roky99 ::

prijavi.php -> $geslo = md5($_POST['geslo']);


Kam naj dam to?
don't drink and drive, just smoke and fly! ;)

bluefish ::

V osmo vrstico prijavi.php datoteke.

roky99 ::

Tudi to sem poskusil vendar ne dela. Še kakšna fora, ki bi lahko pomagala?
don't drink and drive, just smoke and fly! ;)

alien01 ::

Problem je, ker kličeš funkcijo session_start() za nekim izpisom datoteke. To je v tvojem primeru html koda na začetku. Torej malo moraš prestrukturirati datoteko (php kodo daj recimo na začetek, izpise pa v body tag).


Lahko bi pa na začetek dal ob_start() in na konec ob_end_flush(), da mu ne bi bilo potrebno spreminjati kode.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Php register/login problem

Oddelek: Izdelava spletišč
362640 (2051) keworkian
»

Javascript vprašanje

Oddelek: Izdelava spletišč
51079 (993) zigi
»

[php-seje]Ali kdo pozna rešitev!

Oddelek: Programiranje
101332 (1158) diovc
»

unset cookie

Oddelek: Izdelava spletišč
221792 (1599) tomitza
»

[php] Problem z dinamično stranjo

Oddelek: Izdelava spletišč
111485 (1330) Iskraman

Več podobnih tem