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