Ik gebruik onderstaand script om een registratie op te slaan in een sqlitedatabase. Werkt perfect. Echter, register_globals moet dan wel op ON staan. Mijn provider staat dat niet toe.
Heeft iemand een idee hoe ik het script kan wijzigen waardoor het ook met register_globals Off werkt?

<?php
include("inc_connect_sqlite.php");
if (!empty($_POST)){
	// Eerst controleren of inlognaam (= e-mailadres) al bestaat in database
	$email = $_POST["email"];
	$wachtwoord = $_POST["wachtwoord"];
	$query = "SELECT * from users WHERE email='$email';";
	$result = sqlite_query($db, $query) or die ("FOUT: " . sqlite_last_error());
	if (sqlite_num_rows($result) > 0) {
		// e-mailadres al aanwezig in de database, foutmelding tonen
		$tekst = "Dit e-mailadres (<b>$email</b>) bestaat al\n. 
			<a href=\"" . $_SERVER["PHP_SELF"] ."\">Opnieuw registreren</a>\n";
		die($tekst);	
	}else{
		// OK, Query opbouwen
		$query="INSERT INTO users (email, wachtwoord) ";
		$query .= "VALUES ('$email', '$wachtwoord');"; 
		$result = sqlite_query($db, $query) or die ("FOUT: " . sqlite_last_error());
		$tekst = "Bedankt voor uw aanmelding.<br> 
			U kunt nu <a href=\"loginww.php\">inloggen</a>";
		die ($tekst);
	}
}
?>

Bij voorbaat is mijn dank nu al groot.
@Bram

Ik snap niet wat er nou nog steeds niet wil, gooi in eerste instantie eens je register globals stukje uit je script.

En met die regels error_reporting (zet deze ook ONDER je session_start) krijg je als het goed is warnings of errors. Plak die fouten eens hier op 't forum. We willen je wel helpen, maar het lijkt er nu op alsof je niets doet met de tips die van ons aan jou worden gegeven.

Beste Robert,

Ik waardeer alle reacties. Het is pure frustratie van mijn kant. Dat komt omdat alles perfect werkte op één klein onderdeel na en ik dacht dat ik dat wel even kon oplossen. Misschien wil ik gewoon te veel als beginnend PHP-er.
Het probleem is eigenlijk heel simpel.
Alles werkt perfect als in de php.ini het register_globals op On staat.
Afijn, gepasseerd station: dat doen we niet meer.
Maar nu het alternatief.
Jij zegt: gooi het register globals stukje uit je script.
Heel stom, maar waar staat dat?

<?php
include("inc_connect_sqlite.php");
if (!empty($_POST)){
	// Eerst controleren of inlognaam (= e-mailadres) al bestaat in database
	$email = $_POST["email"];
	$wachtwoord = $_POST["wachtwoord"];
	$query = "SELECT * from users WHERE email='$email';";
	$result = sqlite_query($db, $query) or die ("FOUT: " . sqlite_last_error());
	if (sqlite_num_rows($result) > 0) {
		// e-mailadres al aanwezig in de database, foutmelding tonen
		$tekst = "Dit e-mailadres (<b>$email</b>) bestaat al\n. 
			<a href=\"" . $_SERVER["PHP_SELF"] ."\">Opnieuw registreren</a>\n";
		die($tekst);	
	}else{
		// OK, Query opbouwen
		$query="INSERT INTO users (email, wachtwoord) ";
		$query .= "VALUES ('$email', '$wachtwoord');"; 
		$result = sqlite_query($db, $query) or die ("FOUT: " . sqlite_last_error());
		$tekst = "Bedankt voor uw aanmelding.<br> 
			U kunt nu <a href=\"loginww.php\">inloggen</a>";
		die ($tekst);
	}
}
?>


De regels error_reporting heb ik ook in het script gezet.

<?php
session_start();
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
?>


Deze hebben voor mij geen enkel zichtbaar effect.
Nogmaals: ik waardeer jullie ondersteuning en ik verlang ook geen pasklare oplossing, maar soms word ik hier zo moe van. (Ligt enkel aan mijzelf ;)).
Beste mensen,
Mede dankzij jullie reacties is mijn probleem opgelost.
Omdat wellicht andere bezoekers met hetzelfde probleem zitten, laat ik even zien wat ik veranderd heb.

In het bestand Login2.php had ik o.a. de volgende code:
<code>
$username = $_POST["email"];
$wachtwoord = $_POST["wachtwoord"];
session_register("username");
session_register("wachtwoord");
</code>
De laatste twee regels heb ik verwijderd.
De eerste twee regels heb ik veranderd in:
<code>
S_SESSION['username']=$_POST['email'];
$_SESSION['wachtwoord']=$_POST['wachtwoord'];
</code>

In het bestand register.php stond o.a. de code:
<code>
$email=$_POST["email"];
$wachtwoord=$_POST["wachtwoord"];
</code>
Deze code heb ik als volgt aangepast:
<code>
$_SESSION['username']=$_POST["email"];
$_SESSION['wachtwoord']=$_POST["wachtwoord"];
$email=$_SESSION['username'];
$wachtwoord=$_SESSION['wachtwoord']:
</code>
En tot mijn grote verbazing: het werkt!
Misschien kan het allemaal veel netter, maar een script dat werkt, is voor mij goed genoeg.
Nogmaals: allemaal heel erg bedankt!

Reageren