Login bestand en index combineren

Status
Niet open voor verdere reacties.

bas007gsm

Gebruiker
Lid geworden
4 jan 2002
Berichten
394
Beste mensen,

ik kom al steeds verder, maar ik loop alleen tegen een probleem aan. Want de bedoeling is dat de index.php de opmaak pagina is. Daarin wil ik natuurlijk een login systeem, nu is me dit al gelukt (met goede hulp) maar de combinatie werkt nog niet helemaal.

Ik heb nu het login.php bestand geincluded in index.php in een tabel, maar is dit wel de goede manier? want wanneer je nu bent ingelogd ga je direct naar login.php ipv dat je bij index.php blijft...

Ik heb al een en ander geprobeer met header ('location maar dit levert nog niets op, iemand een idee?? (en de session moet die in index.php worden gestart (volgens mij wel) of in login.php??

Hier de code zoals ie nu is: {login.php}

PHP:
<?php 

If ($Submit) { 

    $DBHost = "localhost"; 
        $DBLogin = "***"; 
    $DBPassword = "***"; 
        $DBDatabase = "bas007gsm_guestbook"; 

    mysql_connect("$DBHost", "$DBLogin", "$DBPassword")
		or die ('FOUT : kan geen verbinding maken');
		 
        mysql_select_db("$DBDatabase")
		or die ("FOUT : openen database mislukt"); 

    $LoginNaam = addslashes($LoginNaam); 
        $LoginPassword = addslashes($LoginPassword); 

$Query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '$LoginNaam' AND password = '$LoginPassword'"); 
    $Results = mysql_num_rows($Query); 

        if ($Results == '1') { 

            $Login = "1"; 
        session_register("Login");

            echo "Je bent ingelogd.\n"; 

        } 
        else { 

        echo " Je gebruikersnaam of password klopt niet.\n"; 

        } 

} 

?>

en dit is index.php

PHP:
<?php 	
    session_start(); 
?> 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Content Management System Test</title> 
</head> 

<body>
<table border="0" align="left"> 
    <tr> 
        <td><form method="post" action="login.php"> 
<input type="hidden" name="Submit" value="1"> 
<input type="text" name="LoginNaam" value="Username"> 
<input type="password" name="LoginPassword" value="Password"> 
<input type="submit" value="Login"> 
</form> 
 </td> 
    </tr> 

</table> 

<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 

<table width="10%"  border="1" align="left"> 
    <tr valign="top"> 
        <td>Menu</td> 
    </tr> 
    <tr valign="top"> 
        <td><a href="register.php" target="content">Registreer</a></td>
    </tr> 
</table> 

<table width="85%" height="80%" border="1" align="center" bgcolor="#00FF00"> 
    <tr> 
        <iframe src="home.html" frameborder="0" scrolling="auto" name="content" align="middle"> 
    </tr> 
</table> 
</body> 
</html>
 
Laatst bewerkt:
Misschien even je username en wachtwoord weghalen?;)
 
- Variabelen scheiden van string (Niet "$DbHost" maar gewoon $DbHost enzo ...).
- if($submit) is een zwaar ranzige techniek. Kijk in je vorige thread hoe ik dat veranderd heb.
- Waar zijn die prachtige or die(...) van je gebleven ? Bij mysql_connect() en mysql_select_db() zie ik ze nog, maar bij mysql_query() missen ze.
- session_register() niet gebruiken, probeer dit:
PHP:
$_SESSION['naam'] = 'waarde';
Als je vragen hebt over deze punten, vraag maar :p

Succes :thumb:
 
hmm ik heb eea verandert, maar ik kom nu even niet verder k kan me ff niet meer helemaal concentreren dus k ga er later mee verder.De code is nu als volgt, maar klopt niet helemaal meer, er gebeurt nu ook niks als k probeer in te loggen!

index.php is nog steeds zelfde als hierboven
dit hieronder is de login.php:

PHP:
<?php 

if ((isset($_POST['gebruikersnaam']) == TRUE) AND (isset($_POST['password']) == TRUE))
{
// Maak verbinding met server
mysql_connect ("localhost","user", "password") or die ('FOUT : verbinden met server mislukt'); 

// Selecteer database
mysql_select_db("bas007gsm_guestbook") or die ('FOUT : openen Database mislukt');

   	$LoginNaam = addslashes($LoginNaam); 
	$LoginPassword = addslashes($LoginPassword); 

	$Query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '$LoginNaam' AND password = '$LoginPassword'")
	or die ('FOUT: Kon gebruikersnaam en password niet aan elkaar koppelen');
	 
    $Results = mysql_num_rows($Query); 

        if ($Results == '1') { 

            $Login = "1"; 
        $_SESSION['Login'] = '1'; 

            echo "Je bent ingelogd."; 

        } 
        else { 

        echo " Je gebruikersnaam of password klopt niet.\n"; 

        } 

} 
?>
 
Jij checkt nu of $_POST['gebruikersnaam'] en $_POST['wachtwoord'] bestaan, terwijl je in je HTML deze velden hebt:
Code:
<input type="text" name="LoginNaam" value="Username"> 
<input type="password" name="LoginPassword" value="Password">
Oftewel, $_POST['gebruikersnaam'] moet nu $_POST['LoginNaam'] worden, net zoals voor 't password veld :)

Daarnaast scheidt je variabelen nog niet van strings :p

Succes :thumb:
 
K kan er nog steeds niet mee ophouden

Hmm maar dat van die strings en variabelen zie ik nog niet, maar verder doet hij het wel weer, maar wat nu m'n echte probleem is, hoe pas ik het toe in de opmaak (index.php)

het staat er nu zo bij:
PHP:
<?php 	
    session_start(); 
?> 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Content Management System Test</title> 
</head> 

<body>
<table border="0" align="left"> 
    <tr> 
        <td><form method="post" action="login.php"> 
<input type="hidden" name="Submit" value="1"> 
<input type="text" name="gebruikersnaam" value="Username"> 
<input type="password" name="password" value="Password"> 
<input type="submit" value="Login"> 
</form> 
 </td> 
    </tr> 

</table> 

<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 

<table width="10%"  border="1" align="left"> 
    <tr valign="top"> 
        <td>Menu</td> 
    </tr> 
    <tr valign="top"> 
        <td><a href="register.php" target="content">Registreer</a></td>
    </tr> 
</table> 

<table width="85%" height="80%" border="1" align="center" bgcolor="#00FF00"> 
    <tr> 
        <iframe src="home.html" frameborder="0" scrolling="auto" name="content" align="middle"> 
    </tr> 
</table> 
</body> 
</html>

dit is de login die in de tabel komt met het formuliertje:

PHP:
<?php 

if ((isset($_POST['gebruikersnaam']) == TRUE) AND (isset($_POST['password']) == TRUE))
{
// Maak verbinding met server
mysql_connect ("localhost","***", "***") or die ('FOUT : verbinden met server mislukt'); 

// Selecteer database
mysql_select_db("bas007gsm_guestbook") or die ('FOUT : openen Database mislukt');

   	$LoginNaam = addslashes($LoginNaam); 
	$LoginPassword = addslashes($LoginPassword); 

	$Query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '$LoginNaam' AND password = '$LoginPassword'")
	or die ('FOUT: Kon gebruikersnaam en password niet aan elkaar koppelen');
	 
    $Results = mysql_num_rows($Query); 

        if ($Results == '1') { 

            $Login = "1"; 
        $_SESSION['Login'] = '1'; 

            echo "Je bent ingelogd."; 

        } 
        else { 

        echo " Je gebruikersnaam of password klopt niet.\n"; 

        } 

} 
?>
:D
 
Geplaatst door bas007gsm
Hmm maar dat van die strings en variabelen zie ik nog niet
Dit:
PHP:
    $Query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '$LoginNaam' AND password = '$LoginPassword'")

    or die ('FOUT: Kon gebruikersnaam en password niet aan elkaar koppelen');
Moet dit worden:
PHP:
    $Query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '" . $LoginNaam . "' AND password = '" . $LoginPassword . "'") or die ('FOUT: Kon gebruikersnaam en password niet aan elkaar koppelen');
maar wat nu m'n echte probleem is, hoe pas ik het toe in de opmaak (index.php)
Daar volg ik je ff niet, wat bedoel je ?
 
hmm ik zat op de goede weg, en k dacht dat ik dat ook al geprobeerd had, maar het werkt nu weer goed.

Wat ik daarmee bedoel is dat het login scherm laat ik aanroepen in een tabel in index.php. maar wanneer je op login drukt, neemt login.php het over, en wordt index.php gewoon niet meer gebruikt, terwijl het de bedoeling is dat je inlogd op de index.php en daar ook gewoon blijft! (en NIET naar login.php gaat)
 
Het formulier niet naar login.php maar naar index.php verwijzen ?
Code:
<form action="index.php" method="post">
 
nee dat werkt niet, want index.php verwijst bij het form naar login.php of zou ik login.php moeten opnemen in nidex.php?

index is nu zo:
PHP:
<?php 	
    session_start(); 
?> 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Content Management System Test</title> 
</head> 

<body>
<table border="0" align="left"> 
    <tr> 
        <td><form method="post" action="login.php"> 
<input type="hidden" name="Submit" value="1"> 
<input type="text" name="gebruikersnaam" value="Username"> 
<input type="password" name="password" value="Password"> 
<input type="submit" value="Login"> 
</form> 
 </td> 
    </tr> 

</table> 

<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 

<table width="10%"  border="1" align="left"> 
    <tr valign="top"> 
        <td>Menu</td> 
    </tr> 
    <tr valign="top"> 
        <td><a href="register.php" target="content">Registreer</a></td>
    </tr> 
</table> 

<table width="85%" height="80%" border="1" align="center" bgcolor="#00FF00"> 
    <tr> 
        <iframe src="home.html" frameborder="0" scrolling="auto" name="content" align="middle"> 
    </tr> 
</table> 
</body> 
</html>
 
Ik zou de formulierverwerking gewoon bij 't formulier proppen.
Sterker nog, dat doe ik ook. Is namelijk veel handiger voor 't geval er fouten optreden, dan kun je de melding bijv. boven het formulier tonen en de velden automatisch weer invullen, zodat deze niet opnieuw hoeven worden ingevuld (zoals bij hotmail registreren enzo).
 
Nou ik heb alles nu in 1 staan, alleen weigert de login weer dienst, ik heb nog wel enige aanpassingen gedaan, mbv de registratie cyclus (mijn andere post)
het ziet er nu zo uit:

PHP:
<?php 	
    session_start(); 
?> 

<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Content Management System Test</title> 
</head> 

<body>
<form method="post" action="index_1.php">
<input type="hidden" name="Submit" value="1">
<table border="0" align="left"> 
    <tr> 
        <td> Username: <input type="text" name="email"></td> 
	</tr>
	<tr>
		<td> Password: <input type="password" name="password"></td>
	</tr>
	<tr>
		<td><input type="submit" value="Login"></td>
	</tr>
</table> 
</form> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 

<table width="10%"  border="1" align="left"> 
    <tr valign="top"> 
        <td>Menu</td> 
    </tr> 
    <tr valign="top"> 
        <td><a href="register.php" target="content">Registreer</a></td>
    </tr> 
</table> 

<table border="1" align="center"> 
    <tr> 
		<td><iframe src="home.html" frameborder="0" name="content"></td>
    </tr> 
</table>

<?php 
if ((isset($_POST['email']) == TRUE) AND (isset($_POST['password']) == TRUE))
{
// Maak verbinding met server
mysql_connect ("localhost","***", "***") or die ('FOUT : verbinden met server mislukt'); 

// Selecteer database
mysql_select_db("bas007gsm_guestbook") or die ('FOUT : openen Database mislukt');

// Data opvragen kijken of er gebruik wordt gemaakt van slashes
  if(get_magic_quotes_gpc() == FALSE)
  {
  $email = addslashes($email);
  $password = addslashes($password);
  }
  else
  {
  $email = ($email);
  $adress = ($password);
  }

//Query opstellen en uitvoeren
$Query = mysql_query("SELECT * FROM gebruikers WHERE email = '" . $email . "' AND password = '" . $password . "'") or die ('FOUT: Kon gebruikersnaam en password niet aan elkaar koppelen');	 
    $Results = mysql_num_rows($Query); 

        if ($Results == '1') { 

            $Login = "1"; 
        $_SESSION['Login'] = '1'; 

            echo "Je bent ingelogd."; 

        } 
        else { 

        echo " Je gebruikersnaam of password klopt niet.\n"; 

        } 

} 
?>  
</body> 
</html>
 
Zet eens error_reporting(E_ALL); helemaal bovenaan je script. Die notices die je dan krijgt zijn slordigheden, waardoor je script niet 100% goed kan werken :)

Verder:
PHP:
    $Results = mysql_num_rows($Query); 
        if ($Results == '1') {
Slordig. mysql_num_rows() is een functie die een getal teruggeeft, geen string, dus hoor je 't ook niet met een string te gaan vergelijken.
PHP:
    $Results = mysql_num_rows($Query); 
        if ($Results == 1) {
Fix deze dingen eerst maar es ;)

Succes :thumb:
 
Heb ik gedaan, maar nog steeds geen resultaat,na klikken op login totaal geen actie


PHP:
<?php 	
    session_start(); 
?> 

<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Content Management System Test</title> 
</head> 

<body>
<form method="post" action="index_1.php">
<input type="hidden" name="Submit" value="1">
<table border="0" align="left"> 
    <tr> 
        <td> Username: <input type="text" name="email"></td> 
	</tr>
	<tr>
		<td> Password: <input type="password" name="password"></td>
	</tr>
	<tr>
		<td><input type="submit" value="Login"></td>
	</tr>
</table> 
</form> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 

<table width="10%"  border="1" align="left"> 
    <tr valign="top"> 
        <td>Menu</td> 
    </tr> 
    <tr valign="top"> 
        <td><a href="register.php" target="content">Registreer</a></td>
    </tr> 
</table> 

<table border="1" align="center"> 
    <tr> 
		<td><iframe src="home.html" frameborder="0" name="content"></td>
    </tr> 
</table>

<?php 

error_reporting(E_ALL); 

if ((isset($_POST['email']) == TRUE) AND (isset($_POST['password']) == TRUE))
{
// Maak verbinding met server
mysql_connect ("localhost","***", "***") or die ('FOUT : verbinden met server mislukt'); 

// Selecteer database
mysql_select_db("bas007gsm_guestbook") or die ('FOUT : openen Database mislukt');

// Data opvragen kijken of er gebruik wordt gemaakt van slashes
  if(get_magic_quotes_gpc() == FALSE)
  {
  $email = addslashes($email);
  $password = addslashes($password);
  }
  else
  {
  $email = ($email);
  $adress = ($password);
  }

//Query opstellen en uitvoeren
$Query = mysql_query("SELECT * FROM gebruikers WHERE email = '" . $email . "' AND password = '" . $password . "'") or die ('FOUT: Kon gebruikersnaam en password niet aan elkaar koppelen');	 
    $Results = mysql_num_rows($Query);

        if ($Results == 1) { 

            $Login = 1; 
        $_SESSION['Login'] = 1; 

            echo "Je bent ingelogd."; 

        } 
        else { 

        echo " Je gebruikersnaam of password klopt niet.\n"; 

        } 

} 
?>  
</body> 
</html>
:(
 
gevonden? geloof ik,

ik had het iframe niet afgesloten:

<table border="1" align="center">
<tr>
<td><iframe src="home.html" frameborder="0" name="content"></iframe></td>
</tr>
</table>

nu doet ie het wel geloof ik, uitlijning is nu niet goed, maar hij zegt iig dat ik ingelogd ben!:thumb:
 
Hm :p
PHP:
  if(get_magic_quotes_gpc() == FALSE)
  {
  $email = addslashes($email);
  $password = addslashes($password);
  }
  else
  {
  $email = ($email);
  $adress = ($password);
  }
Superglobals toepassen :)
 
OK duurde ff maar ik heb 't gevonden!!!

PHP:
<?php 	
    session_start(); 
?> 

<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Content Management System Test</title> 
</head> 

<body>
<form method="post" action="index_1.php">
<input type="hidden" name="Submit" value="1">
<table border="0" align="left"> 
    <tr> 
        <td> Username: <input type="text" name="email"></td> 
	</tr>
	<tr>
		<td> Password: <input type="password" name="password"></td>
	</tr>
	<tr>
		<td><input type="submit" value="Login"></td>
	</tr>
</table> 
</form>

<p>&nbsp;</p>
 
<?php 

error_reporting(E_ALL); 

if ((isset($_POST['email']) == TRUE) AND (isset($_POST['password']) == TRUE))
{
// Maak verbinding met server
mysql_connect ("localhost","***", "***") or die ('FOUT : verbinden met server mislukt'); 

// Selecteer database
mysql_select_db("bas007gsm_guestbook") or die ('FOUT : openen Database mislukt');

// Data opvragen kijken of er gebruik wordt gemaakt van slashes
  if(get_magic_quotes_gpc() == FALSE)
  {
  $email = addslashes($_POST['email']);
  $password = addslashes($_POST['password']);
  }
  else
  {
  $email = $_POST['email'];
  $adress = $_POST['password'];
  }
  
//Query opstellen en uitvoeren
$Query = mysql_query("SELECT * FROM gebruikers WHERE email = '" . $email . "' AND password = '" . $password . "'") or die ('FOUT: Kon gebruikersnaam en password niet aan elkaar koppelen');	 
    $Results = mysql_num_rows($Query);

        if ($Results == 1) { 

            $Login = 1; 
        $_SESSION['Login'] = 1; 

            echo "Je bent ingelogd."; 

        } 
        else { 

        echo " Je gebruikersnaam of password klopt niet.\n"; 

        } 

} 
?>  

<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 

<table width="10%"  border="1" align="left"> 
    <tr valign="top"> 
        <td>Menu</td> 
    </tr> 
    <tr valign="top"> 
        <td><a href="register.php" target="content">Registreer</a></td>
    </tr> 
</table> 

<table border="1" align="center"> 
    <tr> 
		<td><iframe src="home.html" frameborder="0" name="content"></iframe></td>
    </tr> 
</table>

</body> 
</html>

Nu nog ff bezig met een reload van de pagina na het inloggen. ipv simpele melding "u bent ingelogd" maar u wordt weer bedankt!:thumb:
 
choble choble again:

ik wilde graag na het inloggen de pagina veranderen met header(location anders heb je er niets aan dat je inlogd natuurlijk. Maar blijft dan de sessie bestaan op de pagina waar je naar verwijst, en zoals ik het nu doe gaat hij ook wanneer je niet inlogd naar de andere pagina? strange


PHP:
<?php 	
    session_start(); 
?> 

<?php 

error_reporting(E_ALL); 

if ((isset($_POST['email']) == TRUE) AND (isset($_POST['password']) == TRUE))
{
// Maak verbinding met server
mysql_connect ("localhost","***", "***") or die ('FOUT : verbinden met server mislukt'); 

// Selecteer database
mysql_select_db("bas007gsm_guestbook") or die ('FOUT : openen Database mislukt');

// Data opvragen kijken of er gebruik wordt gemaakt van slashes
  if(get_magic_quotes_gpc() == FALSE)
  {
  $email = addslashes($_POST['email']);
  $password = addslashes($_POST['password']);
  }
  else
  {
  $email = $_POST['email'];
  $adress = $_POST['password'];
  }
  
//Query opstellen en uitvoeren
$Query = mysql_query("SELECT * FROM gebruikers WHERE email = '" . $email . "' AND password = '" . $password . "'") or die ('FOUT: Kon gebruikersnaam en password niet aan elkaar koppelen');	 
    $Results = mysql_num_rows($Query);

        if ($Results == 1) { 

            $Login = 1; 
        $_SESSION['Login'] = 1; 

            echo header("Location :index_logged.php"); 

        } 
        else { 

        echo " Je gebruikersnaam of password klopt niet.\n"; 

        } 

} 
?>  

<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Content Management System Test</title> 
</head> 

<body>
<form method="post" action="index_1.php">
<input type="hidden" name="Submit" value="1">
<table border="0" align="left"> 
    <tr> 
        <td> Username: <input type="text" name="email"></td> 
	</tr>
	<tr>
		<td> Password: <input type="password" name="password"></td>
	</tr>
	<tr>
		<td><input type="submit" value="Login"></td>
	</tr>
</table> 
</form>

<p>&nbsp;</p>
 

<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 

<table width="10%"  border="1" align="left"> 
    <tr valign="top"> 
        <td>Menu</td> 
    </tr> 
    <tr valign="top"> 
        <td><a href="user_insert.php" target="content">Registreer</a></td>
    </tr> 
	<tr valign="top"> 
        <td><a href="user_change.php" target="content">Gebruiker wijzigen</a></td>
    </tr> 
	<tr valign="top"> 
        <td><a href="product_insert.php" target="content">Product toevoegen</a></td>
    </tr> 
	<tr valign="top"> 
        <td><a href="product_change.php" target="content">Product aanpassen</a></td>
    </tr> 

</table> 

<table width="475" border="1" align="center"> 
    <tr> 
		<td><iframe  frameborder="0" name="content" id="content" scrolling="auto" src="home.html"></iframe></td>
    </tr> 
</table>

</body> 
</html> 

[/php/
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan