vreemde error

Status
Niet open voor verdere reacties.

yveshessels

Gebruiker
Lid geworden
9 jun 2007
Berichten
51
Code:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

telkens ik wil werken met sessions, krijg ik deze foutmelding

Hieronder vind je mijn code: (een login systeem dat ik volledig zelf gemaakt heb, ik ben nog maar net bezig met php dus het is zeker nog niet af :p )

index.php:


PHP:
<html>
	<head>
		<title>Log in</title>
	</head>
	<body>
		<h3>Log in aub</h3>
		<form method="POST" action="verwerk.php">
			naam: <input type="text" name="naam" />
			wachtwoord: <input type="password" name="pw" />
			<input type="submit" value="login" />
			<input type="reset" value="opnieuw" /><br />			
		</form>
		<a href="registreer.php">registreer</a>
	</body>
</html>

verwerk.php

PHP:
<?php session_start() ?>
<?php include_once('config.php'); ?>
<html>
	<head><title>verwerk</title></head>
	<?php
		$naam = $_POST['naam'];
		$pw = $_POST['pw'];
		mysql_select_db("oefening", $db)
							or die("Kon database oefening niet openen" . mysql_error());
		$query = mysql_query("select * from gebruiker where naam = \"$naam\"");
		$query2 = mysql_query("select pw from gebruiker where naam = \"$naam\"");
		
		if (mysql_num_rows($query)==0) {
				print ("<h3>Het inloggen is mislukt</h3>");
		} else {
			$row = mysql_fetch_assoc($query);
			if(!strcmp($pw, $row['pw'])) {
			session_register("naam");
	?>
	<body>
	<h3>Welkom <?= $_SESSION["naam"] ?></h3>
	<a href="bewerk.php">bewerk</a>
	<a href="loguit.php">loguit</a>
	<br /><br />
	<a href="test.php">test</a>
	</body>
	<?php
			}
			else {
				print ("verkeerd wachtwoord");
			}
		}
		?>
</html>

loguit.php

PHP:
<?php 
session_start();
session_unregister("naam");
print ("U bent nu uitgelogd");
print ("<a href=\"index.php\">inloggen</a>");
?>
test.php

PHP:
<?php session_start() ?>
<?php
if (!isset($_SESSION['naam'])) {
	print ("FOUT: je moet inloggen om deze pagina te bekijken");
	print ("<br /><a href=\"index.php\">login</a>");
} else {
?>
<html>
<head>
	<title>beveiligd</title>
</head>
<body>
<h2>de beveiligde pagina</h2>
<h4>Welkom <?= $_SESSION['naam'] ?></h4>
<a href="loguit.php">uitloggen</a>
</body>
</html>
<?php
}
?>
 
probeer eens je register globals te enablen.

Je hosting maatschappij weet wel waarover dit gaat als je hun deze vraag stelt
 
Ik draai het op mijn pc ( localhost ) met xampp

Ik ben al naar mijn php.ini geweest en ik heb die waardes al verandert, maar dat helpt niet...

In de bijlage zit mijn php.ini (in textformaat) is er anders nog iets wat ik moet veranderen?

**edit:

Ik heb ook nog dit verandert:

session.bug_compat_42 = 1
session.bug_compat_warn = 0

maar nog steeds zonder resultaat....

Ik kan natuurlijk mijn error-reporting() op 0 zetten, maar daarmee blijft het probleem bestaan
 

Bijlagen

Laatst bewerkt:
PHP:
$query = mysql_query("select * from gebruiker where naam = \"$naam\"");
        $query2 = mysql_query("select pw from gebruiker where naam = \"$naam\"");

Daar zou ik van maken:

PHP:
$query = mysql_query("SELECT naam, pw FROM gebruiker WHERE naam = '$naam' AND pw = '$pw'");

//nu selecteer je slechts de records waar de gebruikersnaam én het wachtwoord overeenkomen met de opgegeven gebruikersnaam en wachtwoord. Vervolgens kun je kijken of er 1 (of meerdere gevonden zijn).

//Dan gebruik je in plaats van session_register('naam') (is inmiddels verouderd) eenvoudigweg:

$_SESSION['naam'] = $naam;

//het statement:

if(!strcmp($pw, $row['pw'])) { 

// is dan overbodig.

//Bij loguit.php gebruik je niet

session_unregister()

//maar:

session_destroy();

Ik hoop dat je hier wat aan hebt. Voor een eerster inlogscript zit het verder prima in elkaar! Succes ermee!
 
Bedankt, ik heb direct mijn verouderde stukken eruitgehaald, voorlopig heb ik zelfs die error niet meer :)

bedankt :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan