PHP script werkt nog niet

Status
Niet open voor verdere reacties.
zoals boven, een paar reacties terug, staat...
maar php.ini... is dat een apart scripje, want ik heb daar nog nooit van gehoord:o
Misschien dat er standaard bij mijn hosting de tijd heel kort staat ofzo? Want ik vind het gewoon rot dat ik iedere keer in moet loggen, dat moet niet kunnen...
 
In php.ini staan alle instellingen die met PHP te maken hebben, ook die van je sessies. Je kunt voor de zekerheid even een nieuwe pagina aanmaken, 'phpinfo.php', en daarin alleen 'phpinfo();' neerzetten. Dan kun je even kijken hoe de sessiezooi staat ingesteld.

Als je nou die code van die authenticatiepagina eens hier neerzet, maar dan wel met duidelijke tabs zodat het leesbaar is, kunnen we ernaar kijken.

Dus:

PHP:
$naam = 'piet';

if($naam != 'piet'){
     // doe dit
}else{
    // doe dat
}

Dat houdt je code overzichtelijk.
 
Als je dat script van net (met die functie controle()) in een pagina laad waar al session_start(); staat dan hoef je het niet meer in het te includen bestand te zetten.

Je zult session_start(); op elke pagina moeten zetten waarin je sessies gebruikt, behalve dus wanneer je het bestand include in een ander bestand waar je al session_start(); hebt neergezet.
 
Laatst bewerkt:
Nou, kzal proberen het authenticatiescript hier duidelijk neer te zetten:
PHP:
<?php
session_start(); 
?>
<?php
function controle($naam, $wachtwoord, $admin) {

		if ($admin == false) {

			$sql = "SELECT Klant_id, Username, Password FROM Klant WHERE Username='$naam'";

		} else { // admin nodig? Haal eerste record op

			$sql = "SELECT Klant_id, Username, Password FROM Klant WHERE Klant_id='8'";

		}

		$result = mysql_query($sql);

		if (mysql_num_rows($result) > 0) {
			$password = mysql_result($result, 0, "Password");
			$klantid = mysql_result($result, 0, "Klant_id");

			if ($wachtwoord != $password) {
				return false;
			} else {
				return $klantid;
			}
		} else {
			return false;
		}

}

	// Check naam en wachtwoord

if (isset($_POST['verzonden'])) {
	
		$username = $_POST['username'];
		$wachtwoord = ($_POST['wachtwoord']);
		$klantid = controle($username, $wachtwoord, $admin);
			
		if ($klantid != false) {
		// Correct

			$_SESSION['username'] = $username;
			$_SESSION['wachtwoord'] = $wachtwoord;
			$_SESSION['klantid'] = $klantid;

		}

}

if (controle($_SESSION['username'], $_SESSION['wachtwoord'], $admin) == false) {

	echo "<form method=\"post\" action=\"$PHP_SELF?";
	reset($_GET); // Zet de array pointer op 0, begin bij het begin
	// Stuur meegestuurd variabelen opnieuw mee.
	while($getvar = each($_GET)) {
		$varnaam = $getvar['key'];
		$varinhoud = $getvar['value'];
		echo "$varnaam=$varinhoud&";
	}
echo "\">\n";
	echo "</p>
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-width: 0\" bordercolor=\"#111111\" width=\"100%\" id=\"AutoNumber1\" height=\"14\">
  <tr>
<td width=\"28%\" style=\"border-style: none; border-width: medium\" height=\"12\">
    		<p align=\"right\"><font face=\"Arial\">Naam:</font></td>
   			<td width=\"72%\" style=\"border-style: none; border-width: medium\" height=\"12\">
			<left><input type=\"text\" name=\"username\"></td>
 			</tr>
  			<tr>
    		<td width=\"28%\" style=\"border-style: none; border-width: medium\" height=\"12\">
    		<p align=\"right\"><font face=\"Arial\">Wachtwoord:</font></td>
    		<td width=\"72%\" style=\"border-style: none; border-width: medium\" height=\"12\">
			<left><input type=\"password\" name=\"wachtwoord\"></td>

  </tr>
</table>";
	echo "<br>";
	echo "<input type=\"submit\" value=\"verzenden\" name=\"verzonden\">";
	echo "</form>";

	echo "<p>Nog niet geregistreerd? <a href=\"aanmeldformulier.php\">[Registreer hier]</a><br>";

	if ($admin == "true") {
		echo "<p>--- Admin status is vereist!";
	}

	exit;

}

?>
 
En waar roep je die functie controle() aan?
 
ehmm.... sorry, ik heb daar juist geen verstand van. Ik ben bezig met de boekjes van Arjan van Duuren met LeerJezelfGemakkelijkPHP... maar khebt uit en snapt nog niet.
Maar dat scripje werkte eerst wel, maar nu niet meer... heel vaag, ik weet het.. maar dat komt omdat ik er geen verstand van heb.
 
Nou ja, het heeft niet zoveel zin alles van voor naar achter uit te leggen.

Als ik jou was zou ik fijn overnieuw beginnen, daar leer je het meest van. Als ik iets geleerd heb in de afgelopen jaren: werk NOOIT met codes die je niet begrijpt. Ik heb net zo lang alles geprobeerd tot ik het wel begrijp, en dat bevalt best.

Open desnoods een nieuw topic, zeg duidelijk wat je wilt maken, dan kunnen wij je in stappen uitleggen hoe je dat moet doen.
 
En waar roep je die functie controle() aan?

PHP:
$klantid = controle($username, $wachtwoord, $admin);
en
PHP:
if (controle($_SESSION['username'], $_SESSION['wachtwoord'], $admin) == false) {
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan