Inlogscript

Status
Niet open voor verdere reacties.

JohnnyGroningen

Gebruiker
Lid geworden
16 mrt 2009
Berichten
50
Beste lezer,

Ik moet een inlog scriptje maken voor school, hij doet het alleen niet. En ik vroeg me af jullie mij kunnen helpen:o

PHP:
<?php
    $gebruikersnaam = $_POST[gebruikersnaam];
	$wachtwoord = $_POST[wachtwoord];
	
	$mysql = mysql_connect("localhost","Johnny T","") or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!");
	mysql_select_db("blabla",$mysql) or die("Fout: Het openen van de database is mislukt!");
	$wachtwoord2 = mysql_query("SELECT DISTINCT wachtwoord FROM beheer WHERE gebruikersnaam = $gebruikersnaam",$mysql) or die("De query op de database is mislukt!");
	mysql_close($mysql) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!");
	
	while($info = mysql_fetch_array( $wachtwoord2 )) 	
 		{
 		if ($pass != $info['wachtwoord']) 
 		{
 			 print("U heeft een foute gebruikersnaam of wachtwoord ingevoerd!");		
		}
 		else
 		{
 			print("Welkom $gebruikersnaam, klik <a href='www.hiermoeteenlink.nl'>hier</a> om verder tegaan.");
 		}
 		}
?>

Als ik probeer in te loggen, dan krijg ik "De query op de database is mislukt!" . Dus het gaat iets fout bij regel 7.

Mijn database:
2ztleg9.jpg


Wat doe ik fout? Ik weet ook nog niet zeker of de wachtwoordcontrole het doet dus als je daar een fout ziet:thumb:

Alvast bedankt:love:
 
from the top of my head, even snel:

PHP:
<?php
    $gebruikersnaam = $_POST[gebruikersnaam];
    $wachtwoord = $_POST[wachtwoord];
    
    $mysql = mysql_connect("localhost","Johnny T","") or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!");
    mysql_select_db("blabla",$mysql) or die("Fout: Het openen van de database is mislukt!");
    $wachtwoord2 = mysql_query("SELECT DISTINCT wachtwoord FROM beheer WHERE gebruikersnaam = '".$gebruikersnaam."' ") or die("De query op de database is mislukt!");
    mysql_close($mysql) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!");
    
    while($info = mysql_fetch_array( $wachtwoord2 ))    
        {
        if ($pass != $info['wachtwoord']) 
        {
             print("U heeft een foute gebruikersnaam of wachtwoord ingevoerd!");        
        }
        else
        {
            print("Welkom $gebruikersnaam, klik <a href='www.hiermoeteenlink.nl'>hier</a> om verder tegaan.");
        }
        }
?>
 
De query op de database is mislukt!

Helaas het werkt niet :(

Toch bedankt(y)
 
Laatst bewerkt:
Verander regel 7 eens in
PHP:
$query = "SELECT DISTINCT wachtwoord FROM beheer WHERE gebruikersnaam = '".$gebruikersnaam."' ";
$wachtwoord2 = mysql_query($query) or die("De query op de database is mislukt! [" . $query . "]: " . mysql_error());
Dan krijg je zowel de query als de foutmelding te zien bij een fout.

Overigens is jouw code kwetsbaar voor SQL-injectie.
 
Hij doet het nu half, ik moet ook mijn excuses aanbieden aan thapriest want zijn script deed het ook, alleen mijn FTP cliënt flipte

Igg nu zeikt hij dat wachtwoord niet klopt, terwijl ik toch 100% zeker weet da tik de goede gegevens heb ingevuld.

Dat hij gevoelig is voor SQL-injecties maakt niet uit, tis voor school en daar wordt niet op dat soort dingen gelet:o Toch bedankt voor het waarschuwen
 
Doe eens je wachtwoord op je scherm printen, dan weet je wat je wegstuurt en of hij klopt..

dus bijv:
PHP:
echo $wachtwoord;
 
en admin is ook het goede wachtwoord?(verander het overigens even als je live gaat hiermee;))
 
Maar wacht even waar verwerk je $wachtwoord, en hoe en waar zet je $info['wachtwoord']?
 
$wachtwoord komt van de $_POST van de bijbehorende html site (dus wat diegene invoerd).

$info['wachtwoord'], ik heb geen registratie site, want het gaat puur om het inloggen. De gegevens heb ik handmatig in de database ingevoerd en zitten dus gewoon in de database (plaatje eerste post).

Deze site komt nooit online, puur een schoolopdracht;)
 
maar ik begrijp niet helemaal hoe je denkt de invoer te verwerken?

waar haal je de data voor $info['wachtwoord '] op?

Als je die echo'd wat komt er dan uit?
En wil je niet $wachtwoord toetsen aan je DB?

is dit overigens je hele code? zo niet, zet dan alles even hier neer.
 
2aajb0n.jpg


PHP:
<html>
	<head>
		<title>Openingspagina</title>
		<link href="opmaak_sunshine.css" rel="stylesheet" type="text/css" />
	</head>
	<body>
		Log in om toegang te krijgen tot beheerder status </br>
		
		<form action="inloggenbeheerder.php" method="post">
			Gebruikersnaam: <br />
				<input type="text" name="gebruikersnaam" /><br />
			Wachtwoord:<br />
				<input type="password" name="wachtwoord" /><br />
			<input type="submit" value="Verzend" />
		</form>
	</body>
</html>

PHP:
<?php
    $gebruikersnaam = $_POST[gebruikersnaam];
    $wachtwoord = $_POST[wachtwoord];
    
    $mysql = mysql_connect("localhost","Johnny T","") or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!");
    mysql_select_db("blabla",$mysql) or die("Fout: Het openen van de database is mislukt!");
    $wachtwoord2 = mysql_query("SELECT DISTINCT wachtwoord FROM beheer WHERE gebruikersnaam = '".$gebruikersnaam."' ") or die("De query op de database is mislukt!");
	mysql_close($mysql) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!");
    
    while($info = mysql_fetch_array( $wachtwoord2 ))    
        {
        if ($pass != $info['wachtwoord']) 
        {
             print("U heeft een foute gebruikersnaam of wachtwoord ingevoerd!");        
        }
        else
        {
            print("Welkom $gebruikersnaam, klik <a href='www.hiermoeteenlink.nl'>hier</a> om verder tegaan.");
        }
        }
	echo $wachtwoord, $wachtwoord2;
?>

maar ik begrijp niet helemaal hoe je denkt de invoer te verwerken? Het enige wa tik wil is dat hij kan zien of je de goeie wachtwoord hebt ingevuld:(

waar haal je de data voor $info['wachtwoord '] op? Van de database?

Als je die echo'd wat komt er dan uit?
Resource id #3
En wil je niet $wachtwoord toetsen aan je DB? Ik wil hem toetsen aan de wachtwoord die staat in de DB
 
Moet
PHP:
if ($pass != $info['wachtwoord'])
niet
PHP:
if ($wachtwoord != $info['wachtwoord'])
zijn?

[edit]Hoewel het wel werkt moeten bij
PHP:
$gebruikersnaam = $_POST[gebruikersnaam];
$wachtwoord = $_POST[wachtwoord];
eigenlijk nog aanhalingstekens rond "gebruikersnaam" en "wachtwoord". Zoals het er nu staat zijn het constanten. Omdat die niet bestaan neemt PHP aan dat je "gebruikersnaam" en "wachtwoord" (met aanhalingstekens) bedoelt.[/edit]
 
Laatst bewerkt:
OMFG, dat ik die zelf niet heb gezien. Hij doet het nu:d:d:d

Thx beide, ik ben jullie heel erg dankbaar:love::love:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan