Frederik Junkuhn wrote in dk.edb.internet.webdesign.serverside.php:
> Hej,  
>  
> Jeg har lavet et login script på mit site, som virker fint, men 
> da jeg så skal lave det på et andet site virker det ikke mere. 
>  
> Kort fortalt så består det af 4 sider: 
>  
> 1. login.php 
>  
> 2. checklogin.php 
>  
> 3. admin.php 
>  
> 4. super-admin.php 
>  
> Formularen på "login.php" har method="post" og 
> action="checklogin.php".  
>  
> Det virker ved at man logger ind og brugernavn og password 
> sammenlignes med en database, og hvis de stemmer overens så 
> bliver man sendt videre via "header("location:admin.php");" 
>  
> Mit problem er at jeg ikke bliver sendt videre fra 
> "checklogin.php", men at den bare giver mig en blank skærm. 
>  
> Skifter jeg "header("location:admin.php");" ud med f.eks. "echo 
> "du er logget ind";" så virker det fint. 
>  
>  
> Her er koden på "checklogin.php": 
>  
> <?php 
> $host="localhost"; // Host name 
> $username=""; // Mysql username 
> $password=""; // Mysql password 
> $db_name="test"; // Database name 
> $tbl_name="members"; // Table name 
>  
> // Connect to server and select databse. 
> mysql_connect("$host", "$username", "$password")or die("cannot 
> connect"); 
> mysql_select_db("$db_name")or die("cannot select DB"); 
>  
> // username and password sent from form 
> $myusername=$_POST['myusername']; 
> $mypassword=$_POST['mypassword']; 
>  
> // To protect MySQL injection (more detail about MySQL injection) 
> $myusername = stripslashes($myusername); 
> $mypassword = stripslashes($mypassword); 
> $myusername = mysql_real_escape_string($myusername); 
> $mypassword = mysql_real_escape_string($mypassword); 
>  
> $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and 
> password='$mypassword'"; 
> $result=mysql_query($sql); 
>  
> // Mysql_num_row is counting table row 
> $count=mysql_num_rows($result); 
> // If result matched $myusername and $mypassword, table row must 
> be 1 row 
>  
> if($count==1){ 
> // Register $myusername, $mypassword and redirect to file 
> "login_success.php" 
> if($myusername == username1){ 
> session_register("myusername"); 
> session_register("mypassword"); 
> header("location:admin.php"); 
> } 
> if($myusername == username2){ 
> session_register("myusername"); 
> session_register("mypassword"); 
> header("location:super-admin.php"); 
> } 
> else { 
> echo "Wrong Username or Password"; 
> } 
> ?> 
>  
>  
> Som sagt har jeg brugt dette script på min private site, og der 
> virker det fint.  
>  
> Mange tak 
>  
UPDATE:
Jeg har fundet en "ørkenløsning" på mit problem ved at sætte "echo
"<meta http-equiv='refresh'
content='0;url=
";"'>http://www.minURL.dk/admin.php'>";" ind istedet for
en "header("location:admin.php");" og dette virker fint. 
Men hvis der er nogen der kan forklare mig hvorfor "header(... "
ikke virker på det ene site, men fint på det andet vil jeg gerne
vide det.. :) 
/Frederik Junkuhn
-- 
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - Pædagogiske tutorials på dansk
 - Kom godt i gang med koderne
KLIK HER! => 
http://www.html.dk/tutorials