webForumDet fria alternativet

inloggnings problem

6 svar · 391 visningar · startad av mr.mainline

mr.mainlineMedlem sedan feb. 2003777 inlägg
#1

jag hittade detta inloggnings scriptet här på wf http://www.webforum.nu/showthread.php?t=37527

men får det inte att fungera,jag har skapat db, och ändrat i config filen, sen går jag in på login.php och ska skapa ett nytt konto så fyller jag i namn och e mailadress i formulären, men när jag klickar på "skapa konto" händer ingenting, vad kan vara fel??

TulorkMedlem sedan aug. 2004903 inlägg
#2

Får du inga felmeddelanden? har du skrivit in rätt information i koden där du skapar kontakt med databasen?

mr.mainlineMedlem sedan feb. 2003777 inlägg
#3

Nej jag får inga felmeddelande,inget händer när jag klickar på skapa konto,här är koden för att skapa ett nytt konto.

<? 
   /********************************************
	* Include databaseconfig and settings      *
	********************************************/
	include("include/config.php");

?>

<h3>Skapa ett nytt konto - steg 1</h3>

<? 
	if (isset($add))
	{
	 /********************************************
		* Check the form variables                 *
		********************************************/
		$okName = isset($name) && strlen($name) > 5;
		$okEmail = (isset($email) && strlen($email) > 5 && eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+([a-z]{2,3}$)",$email,$check));
	 	$okEmail = ($okEmail) && (getmxrr($check[1].$check[2],$temp));
		
	 /********************************************
		* Check so that the email adress isn't     *
		* already registred                        *
		********************************************/
		$query = "select count(*) as cnt from user where email='$email'";
		$res = mysql_query($query) or die ("Kan inte läsa från databasen!");
		$row = mysql_fetch_array($res);
		$okEmailDontExist = ($row['cnt'] <= 0);
	}
	
	if (isset($add) && $okName && $okEmail && $okEmailDontExist)
	{
	 /********************************************
		* Remove hazardous characters from the     *
		* name variable                            *
		********************************************/
		$name = addslashes($name);

	 /********************************************
		* Create a unique registration number      *
		********************************************/
		$regnumber = crc32($name.$email.microtime());
		if ($regnumber < 0) 
			$regnumber = $regnumber * -1;
	
	 /********************************************
		* Save the information into the database   *
		********************************************/
		$query = "insert into user set name='$name',email='$email',regnumber=$regnumber";
		mysql_query($query) or die ("Kan inte spara informationen i databasen!");

	 /********************************************
		* Prepare the email message                *
		********************************************/
		$subject = "Ditt konto hos $systemName är skapat!";
		$message = "OBS! Om du inte har begärt ett konto hos $systemName så kan du kasta det här brevet, ";
		$message .= "inga fler brev kommer att skickas.\n\n";
		$message .= "Klicka på länken nedan för att fullfölja din registrering eller klipp ut ";
		$message .= "addressen och klistra in i din webbläsare.";
		$message .= "\n\nhttp://$systemHost/$systemUrl/confirm.php?regnumber=$regnumber";
		
	 /********************************************
		* Send the email message                   *
		********************************************/
		mail($email,$subject,"$message","From: $sentFrom \nContent-Type: text/plain; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit"); 
?>

Ett epostmeddelande har sänts till den adress du uppgav med information om hur du går vidare med
registreringen.<p>
Kontrollera din epost om ett par minuter.

<? // TA BORT DENNA DEL NÄR DU FÅTT MAIL-UTSKICKET ATT FUNGERA! ?>
	<p>
	DEBUG:
	<i>Denna del skall tas bort när du fått allt att funka</i>
	<hr>
	<b>Här är innehållet i mailet som skall ha skickats:</b><br>
	<?= $message ?>
	<hr>
<? // ------------------------------------------------------------ ?>

<?
	}
	else 
	{
?>

Fyll i ditt namn och din epostadress. Ett brev kommer att skickas till dig med vidare
instruktioner.<p>

<?
	 /********************************************
		* Print out a note about any  malformed    *
		* form variables                           *
		********************************************/
		if (isset($add))
		{
			print "<font color=\"red\">";
			if (!$okName) print "* Fältet 'Namn' är inte rätt ifyllt.<br>";
			if (!$okEmail) print "* Fältet 'Epost' är inte rätt ifyllt.<br>";
			if (!$okEmailDontExist) print "* Den angivna epostadressen är redan registrerad.<br>";
			print "</font>";
		}			
?>
		<form action="newaccount.php?add=yes" method="post">
			Namn: <small>(minst 6 tecken)</small><br>
			<input type="text" size="30" name="name" value="<? print $name; ?>"><p>
			
			e-postadress: <small></small><br>
			<input type="text" size="20" name="email" value="<? print $email; ?>"><p>

			<input type="submit" value="Skapa konto!">
		</form> 
<? 
	}

?>
Peter SMedlem sedan dec. 20025 483 inlägg
#4

Du skriver att filen heter login.php, medan du för action har angivet newaccount.php. Eftersom skriptet är byggt så att det skall postas till samma sida, kanske du vill ändra actionvärdet till login.php?

mr.mainlineMedlem sedan feb. 2003777 inlägg
#5

nix, ändrar jag så kommer jag bara tillbaka till början av scriptet,login.php ser ut såhär.

<? 

   /********************************************
	* Include databaseconfig and settings      *
	********************************************/
	include("include/config.php");

	
    if (isset($email) && isset($pass))
    {
            $query = "SELECT id, name FROM user WHERE email='$email' AND pass=PASSWORD('$pass')";               
            $res = mysql_query($query) or die ("Kan inte läsa från databasen!");
            $row = mysql_fetch_array($res);
            
            if (isset($row['id']))
            {
                    session_start();
                    $uid = $row['id'];
                    $uname = $row['name'];
                    session_register("uid", "uname"); 
		Header("Location: $systemLoggedIn");   
            }
    }

?>

<html>
<body>
<h3>Logga in</h3>
Om du inte har ett konto så måste du först <a href="<?= $systemNewReg ?>">registrera dig</a>, det är en snabb process som inte tar
mer än någon minut.<p>

<form action="login.php" method="post">
e-postadress:<br>
<input type="text" size="20" name="email"><p>

Lösenord:<br>
<input type="password" size="20" name="pass"><p>

<input type="submit" value=" Logga in! ">
</form>

</body>
</html>
Peter SMedlem sedan dec. 20025 483 inlägg
#6

Lägg in några utskrifter här och var. På så vis ser du vilka delar av koden som körs.

Sedan bör INSERT-koden se ut så här

"insert into user (name,email,regnumber) values ('$name','$email',$regnumber)";
@ndersMedlem sedan juni 200032 969 inlägg
#7

Är register_globals verkligen påslaget på din server? Prova att använda $_POST[..] istället för att inte ange varifrån du vill hämta värdena.

http://se2.php.net/manual/en/security.globals.php

137 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)