Volledige versie bekijken : membersysteem probleem!
nielsmus
%Europe/Berlin %660 %2007, 15:50
hey,
Ik ben bezig aan een membersysteem maar ik loop vast!
als ik op aanmelden klik onderaan dit document dan moet ik naar het bestand activeer.php gaan! alleen dat doet hij niet hij gaat opnieuw naar aanmelden.php! ziet iemand de fout??
je kunt het testen op http://www.teamtunafish.be/members/aanmelden.php
thanx
<?
require("config.php");
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if(!$submit){
?>
Velden met een * zijn verplicht...
<form method="POST" action="<? echo $PHP_SELF ?>">
<input type="hidden" name="submit" value="1">
Naam:<br>
<input type="text" name="naam" size="30"> *<br>
Email adres:<br>
<input type="text" name="email" size="30"> *<br>
Homepage:<br>
<input type="text" name="homepage" size="30" value="http://"><br>
Woonplaats:<br>
<input type="text" name="woonplaats" size="30"><br>
Geboortedatum ( dd-mm-jjjj ):<br>
<input type="text" name="geb1" size="2" maxlength="2"> -
<input type="text" name="geb2" size="2" maxlength="2"> -
<input type="text" name="geb3" size="4" maxlength="4"><br>
Hobby's:<br>
<textarea name="hobbys" rows="3"></textarea><br>
Favo drankje(s):<br>
<input type="text" name="drank"><br>
Favo artiest(en):<br>
<input type="text" name="artiest"><br>
Favo film:<br>
<input type="text" name="film"><br>
Geslacht:<br>
<select size="1" name="geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
<option value="Weet ik niet">Weet ik niet</option>
</select><br>
Relatie:<br>
<select size="1" name="relatie">
<option value="1">Ja</option>
<option value="0">Nee</option>
<option value="2">Binnenkort</option>
</select><br>
Privé- berichten:<br>
<select size="1" name="pm">
<option value="1">Aan</option>
<option value="0">Uit</option>
</select><br>
<br>
Gewenste gebruikersnaam:<br>
<input type="text" name="gebruikersnaam" size="25"> *<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
<?
}
else{
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam'");
$result = mysql_num_rows($query);
if($result){
?>
Deze gebruikersnaam is al in gebruik<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
else{
if($naam AND $email AND $gebruikersnaam AND $gebruikersnaam){
if($wachtwoord!=$wachtwoord2){
echo "De wachtwoorden zijn niet gelijkt aan elkaar";
}
else{
$geboortedatum = "$geb1-$geb2-$geb3";
$tekens=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$activeringscode;
for($c = 0; $c < 12; $c++){
srand((double)microtime() * 100000000000000);
$pass = $tekens[rand(0, 62)];
$activeringscode=$activeringscode.$pass;
}
if($actmail=="1"){
$activeringscode = 0;
}
elseif($actmail=="2"){
$activeringscode = 1;
}
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geb oortedatum,woonplaats,favodrankje,favoartiest,favo film,hobbys,geslacht,relatie,geactiveerd,pm) VALUES ('$gebruikersnaam','$wachtwoord','$naam','$email', '$homepage','$geboortedatum','$woonplaats', '$drank', '$artiest','$film','$hobbys','$geslacht','$relatie ','$activeringscode','$pm')") or die(mysql_error());
$bericht = "Via onze website heb jij (als het goed is) een aanmeldingsformulier ingevuld waarmee je een lid van onze
website wordt, als dit niet het geval is kun je dit mailtje het beste verwijderen.\n\nAls je je wel wilt aanmelden voor een
account op onze website moet je op de onderstaande url klikken om je account te activeren:\n\n
<a href=\"$script_url/activeer.php?activate=$activeringscode\">$script_url/activeer.php?activate=$activeringscode</a>\n\nMet vriendelijke groet
Webmaster $webmaster_url";
if($actmail=="1"){
mail("$webmaster_email","Activeer nu je account $naam !","$bericht");
echo "De aanmelding is succesvol gelukt, er word nu een mailtje verstuurd aan <b>$email</b> waarin de activerings url staat...";
}
elseif($actmail=="2"){
echo "Je account is geactiveerd, je kunt nu inloggen...";
}
else{
echo "De aanmelding is gelukt, het is nu aan de webmaster om te beslissen of hij/zij je accepteerd als member van deze website...";
}
}
}
else{
?>
Je hebt niet alle verplichte velden ingevuld...<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
}
}
?>
TheZwier
%Europe/Berlin %689 %2007, 16:33
<form method="POST" action="<? echo $PHP_SELF ?>">
Misschien ligt het daaraan? Je stuurt ze zo naar de pagina waar ze al op zijn. Maar ze moeten juist naar activeer.php gaan..
nielsmus
%Europe/Berlin %831 %2007, 19:57
ik heb het probleem opgelost!
in plaats van if(!$submit){ heb ik nu if (!$_POST['submit']){ gedaan! dat lukt al, alleen heb ik nu nog een volgend probleem!
als ik nu aanmelden klik zegt hij dat niet alle verplichte velden ingevuld zijn terwijl dat wel het geval is!!
weet iemand hoe dit komt?
jelmerdewilde
%Europe/Berlin %035 %2007, 00:51
Als je je code naloopt, merk je dat ie struikelt over de regel
if($naam AND $email AND $gebruikersnaam AND $gebruikersnaam){
Ik weet niet alle mogelijke manieren, maar ik doe het meestal zo:
if(!empty($naam) && !empty($email) && !empty($gebruikersnaam)){
Maar je kunt denk ik ook in jou regel, elke AND vervangen door && (dubbel &-teken betekent AND).
En je checkt in jou code.. 2 keer de var '$gebruikersnaam'.. ook een beetje dubbelop ;)
josko
%Europe/Berlin %051 %2007, 01:13
meerdere dingen. In de eerste plaats:
$PHP_SELF is $_SERVER['PHP_SELF'];
Zo is
$naam eigenlijk $_POST['naam'];
Ze zijn leeg, omdat je hetzelfde hebt als met die $submit:
Je gebruikt wel register globals, terwijl dat niet moet.
---
jelmer: if($naam AND $email AND $gebruikersnaam AND $gebruikersnaam)
1. Je mag gewoon AND typen, al is dat niet netjes.
Deze regel zou controleren of ze bestaan, al moet je eigenlijk isset() gebruiken.
TheDutch
%Europe/Berlin %258 %2007, 06:12
Je gebruikt geen register globals, terwijl dat wel moet.
Je bedoelde vast dat hij wel register globals gebruikt, terwijl dit niet moet ;).
nielsmus
%Europe/Berlin %426 %2007, 10:14
Hieronder men tot nu toe aangepaste code!
Alleen blijft het niet werken! ik vul alle velden in en toch zegt hij dat niet alle verplichte velden zijn ingevuld! ik heb de code ook aangepast online check het hier http://www.teamtunafish.be/members/aanmelden.php
ziet er iemand nog meer fouten?
thanx voor de replys!!
<?
require("config.php");
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if (!$_POST['submit']){
?>
Velden met een * zijn verplicht...
<form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="submit" value="1">
Naam:<br>
<input type="text" name="naam" size="30"> *<br>
Email adres:<br>
<input type="text" name="email" size="30"> *<br>
Homepage:<br>
<input type="text" name="homepage" size="30" value="http://"><br>
Woonplaats:<br>
<input type="text" name="woonplaats" size="30"><br>
Geboortedatum ( dd-mm-jjjj ):<br>
<input type="text" name="geb1" size="2" maxlength="2"> -
<input type="text" name="geb2" size="2" maxlength="2"> -
<input type="text" name="geb3" size="4" maxlength="4"><br>
Hobby's:<br>
<textarea name="hobbys" rows="3"></textarea><br>
Favo drankje(s):<br>
<input type="text" name="drank"><br>
Favo artiest(en):<br>
<input type="text" name="artiest"><br>
Favo film:<br>
<input type="text" name="film"><br>
Geslacht:<br>
<select size="1" name="geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
<option value="Weet ik niet">Weet ik niet</option>
</select><br>
Relatie:<br>
<select size="1" name="relatie">
<option value="1">Ja</option>
<option value="0">Nee</option>
<option value="2">Binnenkort</option>
</select><br>
Privé- berichten:<br>
<select size="1" name="pm">
<option value="1">Aan</option>
<option value="0">Uit</option>
</select><br>
<br>
Gewenste gebruikersnaam:<br>
<input type="text" name="gebruikersnaam" size="25"> *<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
<?
}
else{
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam'");
$result = mysql_num_rows($query);
if($result){
?>
Deze gebruikersnaam is al in gebruik<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
else{
if(!empty($naam) && !empty($email) && !empty($gebruikersnaam)){
if($wachtwoord!=$wachtwoord2){
echo "De wachtwoorden zijn niet gelijkt aan elkaar";
}
else{
$geboortedatum = "$geb1-$geb2-$geb3";
$tekens=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$activeringscode;
for($c = 0; $c < 12; $c++){
srand((double)microtime() * 100000000000000);
$pass = $tekens[rand(0, 62)];
$activeringscode=$activeringscode.$pass;
}
if($actmail=="1"){
$activeringscode = 0;
}
elseif($actmail=="2"){
$activeringscode = 1;
}
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geb oortedatum,woonplaats,favodrankje,favoartiest,favo film,hobbys,geslacht,relatie,geactiveerd,pm) VALUES ('$gebruikersnaam','$wachtwoord','$naam','$email', '$homepage','$geboortedatum','$woonplaats', '$drank', '$artiest','$film','$hobbys','$geslacht','$relatie ','$activeringscode','$pm')") or die(mysql_error());
$bericht = "Via onze website heb jij (als het goed is) een aanmeldingsformulier ingevuld waarmee je een lid van onze
website wordt, als dit niet het geval is kun je dit mailtje het beste verwijderen.\n\nAls je je wel wilt aanmelden voor een
account op onze website moet je op de onderstaande url klikken om je account te activeren:\n\n
<a href=\"$script_url/activeer.php?activate=$activeringscode\">$script_url/activeer.php?activate=$activeringscode</a>\n\nMet vriendelijke groet
Webmaster $webmaster_url";
if($actmail=="1"){
mail("$webmaster_email","Activeer nu je account $naam !","$bericht");
echo "De aanmelding is succesvol gelukt, er word nu een mailtje verstuurd aan <b>$email</b> waarin de activerings url staat...";
}
elseif($actmail=="2"){
echo "Je account is geactiveerd, je kunt nu inloggen...";
}
else{
echo "De aanmelding is gelukt, het is nu aan de webmaster om te beslissen of hij/zij je accepteerd als member van deze website...";
}
}
}
else{
?>
Je hebt niet alle verplichte velden ingevuld...<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
}
}
?>
josko
%Europe/Berlin %452 %2007, 10:51
if(!empty($naam) && !empty($email) && !empty($gebruikersnaam)){
moet zijn
if( !empty( $_POST['naam'] ) AND [..] )
want je mag geen register globals gebruiken
@dutch: zo goed |)
nielsmus
%Europe/Berlin %499 %2007, 11:59
Thanx nu lukte het om te registreren!
Alleen als ik met een andere naam probeerde te registreren zegt hij nu telkens gebruikersnaam is al in gebruik!! terwijl er nog maar 1 gebruikersnaam is aangemaakt? test het http://www.teamtunafish.be/members/aanmelden.php
daarna heb ik nog een probleem met men inlog.php waarschijnlijk weer de zelfde fouten als bij de vorige alleen zie ik het niet!
thanx voor de hulp!
<?
session_start();
require("config.php");
if (!$_POST['submit']){
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if (!$_POST['result']){
$a = "Gebruikersnaam en/of Wachtwoord is/zijn incorrect. Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
}
$login = 1;
session_register("login");
session_register("memberid");
header("Location: index.php");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if (!$_POST['login']){
$a = "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
jelmerdewilde
%Europe/Berlin %528 %2007, 12:41
jelmer: if($naam AND $email AND $gebruikersnaam AND $gebruikersnaam)
1. Je mag gewoon AND typen, al is dat niet netjes.
Deze regel zou controleren of ze bestaan, al moet je eigenlijk isset() gebruiken.
oke, nice, dat van AND wist ik inet ;) Maar het is niet netjes :P En aangezien hij wil dat de var's gevuld zijn.. zou ik kiezen voor mijn manier. Maar isset kan waarschijnlijk ook wel :)
====
Nielsmus:
In je script staat ergens
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam'");
$result = mysql_num_rows($query);
if($result){
Bij de regel $result = mysql_num_rows($query);, telt ie het aantal gebruikersnamen die in de tabel zijn die precies hetzelfde zijn als de ingevoerde gebruikersnaam. Als dit dus 1 of groter is (kan alleen maar 1 zijn, maar toch). Bestaat de gebruikersnaam al. Je moet dus controleren of $result groter is dan 0.
In het script controleert ie nu of $result bestaat.. En die bestaat altijd ;) Van
if($result){
moet je dus maken:
if($result > 0){
De andere vraag kan ik niet beantwoorden nu, ik ga eten! :D
//edit:
Ben ik nog even:
if (!$_POST['result']){
$a = "Gebruikersnaam en/of Wachtwoord is/zijn incorrect. Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}
moet zijn:
if ($result == 0){
$a = "Gebruikersnaam en/of Wachtwoord is/zijn incorrect. Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}
Ik heb ook zo m'n twijfels bij deze regel:
if (!$_POST['login']){
Maar, probeer eerst eerst maar eens wat ik hierboven heb gezet.
======
Ow ja, je zegt: 'ik heb ook nog een probleem met ..' Maar je zegt niet wat voor probleem.. dat maakt het voor ons ook lastiger. Misschien iets duidelijk zijn (.. de volgende keer). :)
sux6
nielsmus
%Europe/Berlin %560 %2007, 13:27
ik heb if($result > 0){ toegevoegd maar dat lukt nog steeds niet hij zegt nog steeds dat de gebruikersnaam al bestaat!
aanmelden.php:
<?
require("config.php");
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if (!$_POST['submit']){
?>
Velden met een * zijn verplicht...
<form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="submit" value="1">
Naam:<br>
<input type="text" name="naam" size="30"> *<br>
Email adres:<br>
<input type="text" name="email" size="30"> *<br>
Homepage:<br>
<input type="text" name="homepage" size="30" value="http://"><br>
Woonplaats:<br>
<input type="text" name="woonplaats" size="30"><br>
Geboortedatum ( dd-mm-jjjj ):<br>
<input type="text" name="geb1" size="2" maxlength="2"> -
<input type="text" name="geb2" size="2" maxlength="2"> -
<input type="text" name="geb3" size="4" maxlength="4"><br>
Hobby's:<br>
<textarea name="hobbys" rows="3"></textarea><br>
Favo drankje(s):<br>
<input type="text" name="drank"><br>
Favo artiest(en):<br>
<input type="text" name="artiest"><br>
Favo film:<br>
<input type="text" name="film"><br>
Geslacht:<br>
<select size="1" name="geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
<option value="Weet ik niet">Weet ik niet</option>
</select><br>
Relatie:<br>
<select size="1" name="relatie">
<option value="1">Ja</option>
<option value="0">Nee</option>
<option value="2">Binnenkort</option>
</select><br>
Privé- berichten:<br>
<select size="1" name="pm">
<option value="1">Aan</option>
<option value="0">Uit</option>
</select><br>
<br>
Gewenste gebruikersnaam:<br>
<input type="text" name="gebruikersnaam" size="25"> *<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
<?
}
else{
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam'");
$result = mysql_num_rows($query);
if($result > 0){
?>
Deze gebruikersnaam is al in gebruik<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
else{
if(!empty($_POST['naam']) && !empty($_POST['email']) && !empty($_POST['gebruikersnaam'])){
if($wachtwoord!=$wachtwoord2){
echo "De wachtwoorden zijn niet gelijkt aan elkaar";
}
else{
$geboortedatum = "$geb1-$geb2-$geb3";
$tekens=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$activeringscode;
for($c = 0; $c < 12; $c++){
srand((double)microtime() * 100000000000000);
$pass = $tekens[rand(0, 62)];
$activeringscode=$activeringscode.$pass;
}
if($actmail=="1"){
$activeringscode = 0;
}
elseif($actmail=="2"){
$activeringscode = 1;
}
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geb oortedatum,woonplaats,favodrankje,favoartiest,favo film,hobbys,geslacht,relatie,geactiveerd,pm) VALUES ('$gebruikersnaam','$wachtwoord','$naam','$email', '$homepage','$geboortedatum','$woonplaats', '$drank', '$artiest','$film','$hobbys','$geslacht','$relatie ','$activeringscode','$pm')") or die(mysql_error());
$bericht = "Via onze website heb jij (als het goed is) een aanmeldingsformulier ingevuld waarmee je een lid van onze
website wordt, als dit niet het geval is kun je dit mailtje het beste verwijderen.\n\nAls je je wel wilt aanmelden voor een
account op onze website moet je op de onderstaande url klikken om je account te activeren:\n\n
<a href=\"$script_url/activeer.php?activate=$activeringscode\">$script_url/activeer.php?activate=$activeringscode</a>\n\nMet vriendelijke groet
Webmaster $webmaster_url";
if($actmail=="1"){
mail("$webmaster_email","Activeer nu je account $naam !","$bericht");
echo "De aanmelding is succesvol gelukt, er word nu een mailtje verstuurd aan <b>$email</b> waarin de activerings url staat...";
}
elseif($actmail=="2"){
echo "Je account is geactiveerd, je kunt nu inloggen...";
}
else{
echo "De aanmelding is gelukt, het is nu aan de webmaster om te beslissen of hij/zij je accepteerd als member van deze website...";
}
}
}
else{
?>
Je hebt niet alle verplichte velden ingevuld...<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
}
}
?>
En wat men andere vraag betreft over login.php als ik naar http://www.teamtunafish.be/members/login.php ga gaat hij automatish naar index.php waar hij zegt dat ik niet ingelogd ben!
login.php:
<?
session_start();
require("config.php");
if (!$_POST['submit']){
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if ($result == 0){
$a = "Gebruikersnaam en/of Wachtwoord is/zijn incorrect. Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
}
$login = 1;
session_register("login");
session_register("memberid");
header("Location: index.php");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if (!$_POST['login']){
$a = "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
jelmerdewilde
%Europe/Berlin %580 %2007, 13:55
eerst die eerste vraag nog eens:
zet na 'if($result > 0){ ' eens
echo $query.'<BR>';
echo $result.'<BR>';
echo $gebruikersnaam.'<BR>';
wat krijg je nu te zien als je je probeert te registreren?
nielsmus
%Europe/Berlin %589 %2007, 14:08
dan komt er dit!:
Resource id #3
1
Deze gebruikersnaam is al in gebruik
Ga terug
probeer zelf gerust maar eens http://www.teamtunafish.be/members/aanmelden.php
josko
%Europe/Berlin %601 %2007, 14:26
Zucht. Je gebruikt nog steeds register globals!
if (!isset($_POST['submit']){
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
moet zijn:
if (isset($_POST['submit']) ){ //als _POST submit bestaat
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."' AND wachtwoord = '".$_POST['wachtwoord']."' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
jelmerdewilde
%Europe/Berlin %602 %2007, 14:27
Hij geeft dus 1 rij in je tabel die voldoet aan de eisen. Nu keek ik even verder, en zie ik dat $gebruikersnaam helemaal niet gemaakt wordt.
Je stuurt met je formulier een waarde. Deze kun je opvragen door $_POST['gebruikersnaam'] te gebruiken.
In je query moet je dus $gebruikersnaam, vervangen door $_POST['gebruikersnaam'] (paar regels boven if($result > 0)).
//edit: Wat josko zegt dus ;) (maar dat gaat over dat andere bestand) En Josko heeft die var ook meteen buiten de query gezet, das netjes-er
//edit2: nu kun je dus dat echo $gebruikersnaam enzo weer weghalen ;) Dat was voor het debuggen
nielsmus
%Europe/Berlin %609 %2007, 14:38
Met de verbeteringen van Joko in het script inlog.php ben ik nu al een stap verder! hij doet het!
Alleen denk ik dus dat er in het aanmelden idd iets misloopt zoals Jelmer zegt!
ik heb aanmelden.php nu weer veranderd als volgt:
aanmelden.php:
<?
require("config.php");
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if (!$_POST['submit']){
?>
Velden met een * zijn verplicht...
<form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="submit" value="1">
Naam:<br>
<input type="text" name="naam" size="30"> *<br>
Email adres:<br>
<input type="text" name="email" size="30"> *<br>
Homepage:<br>
<input type="text" name="homepage" size="30" value="http://"><br>
Woonplaats:<br>
<input type="text" name="woonplaats" size="30"><br>
Geboortedatum ( dd-mm-jjjj ):<br>
<input type="text" name="geb1" size="2" maxlength="2"> -
<input type="text" name="geb2" size="2" maxlength="2"> -
<input type="text" name="geb3" size="4" maxlength="4"><br>
Hobby's:<br>
<textarea name="hobbys" rows="3"></textarea><br>
Favo drankje(s):<br>
<input type="text" name="drank"><br>
Favo artiest(en):<br>
<input type="text" name="artiest"><br>
Favo film:<br>
<input type="text" name="film"><br>
Geslacht:<br>
<select size="1" name="geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
<option value="Weet ik niet">Weet ik niet</option>
</select><br>
Relatie:<br>
<select size="1" name="relatie">
<option value="1">Ja</option>
<option value="0">Nee</option>
<option value="2">Binnenkort</option>
</select><br>
Privé- berichten:<br>
<select size="1" name="pm">
<option value="1">Aan</option>
<option value="0">Uit</option>
</select><br>
<br>
Gewenste gebruikersnaam:<br>
<input type="text" name="gebruikersnaam" size="25"> *<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
<?
}
else{
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '".$_POST['gebruikersnaam'].");
$result = mysql_num_rows($query);
if($result > 0){
?>
Deze gebruikersnaam is al in gebruik<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
else{
if(!empty($_POST['naam']) && !empty($_POST['email']) && !empty($_POST['gebruikersnaam'])){
if($wachtwoord!=$wachtwoord2){
echo "De wachtwoorden zijn niet gelijkt aan elkaar";
}
else{
$geboortedatum = "$geb1-$geb2-$geb3";
$tekens=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$activeringscode;
for($c = 0; $c < 12; $c++){
srand((double)microtime() * 100000000000000);
$pass = $tekens[rand(0, 62)];
$activeringscode=$activeringscode.$pass;
}
if($actmail=="1"){
$activeringscode = 0;
}
elseif($actmail=="2"){
$activeringscode = 1;
}
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geb oortedatum,woonplaats,favodrankje,favoartiest,favo film,hobbys,geslacht,relatie,geactiveerd,pm) VALUES ('$gebruikersnaam','$wachtwoord','$naam','$email', '$homepage','$geboortedatum','$woonplaats', '$drank', '$artiest','$film','$hobbys','$geslacht','$relatie ','$activeringscode','$pm')") or die(mysql_error());
$bericht = "Via onze website heb jij (als het goed is) een aanmeldingsformulier ingevuld waarmee je een lid van onze
website wordt, als dit niet het geval is kun je dit mailtje het beste verwijderen.\n\nAls je je wel wilt aanmelden voor een
account op onze website moet je op de onderstaande url klikken om je account te activeren:\n\n
<a href=\"$script_url/activeer.php?activate=$activeringscode\">$script_url/activeer.php?activate=$activeringscode</a>\n\nMet vriendelijke groet
Webmaster $webmaster_url";
if($actmail=="1"){
mail("$webmaster_email","Activeer nu je account $naam !","$bericht");
echo "De aanmelding is succesvol gelukt, er word nu een mailtje verstuurd aan <b>$email</b> waarin de activerings url staat...";
}
elseif($actmail=="2"){
echo "Je account is geactiveerd, je kunt nu inloggen...";
}
else{
echo "De aanmelding is gelukt, het is nu aan de webmaster om te beslissen of hij/zij je accepteerd als member van deze website...";
}
}
}
else{
?>
Je hebt niet alle verplichte velden ingevuld...<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
}
}
?>
alleen nu zie ik niets meer als ik de pagina open! gewoon een leeg blad!
alvast nog eens super veel dank voor de hulp!!
jelmerdewilde
%Europe/Berlin %614 %2007, 14:44
je mist nu het hele begin van je script ;)
//edit:
nu niet meer :P even kijken hoor
//edit2:
Je echo't helemaal aan het begin die regel van je stylesheet.. er zou dus sowieso IETS in je bron moeten staan. MAar dat is er niet. Staat je error reporting wel aan van php? Hij voert nu namelijk je hele script niet uit ..
//edit3:
Ik heb het script hier thuis even gedraaid.. en krijg dan een error bij":
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '".$_POST['gebruikersnaam'].");
dat moet namelijk:
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '".$_POST['gebruikersnaam']);
zijn.
nielsmus
%Europe/Berlin %622 %2007, 14:56
Yes!! nu kan ik weer registreren!! het werkt!
maar als ik nu registreer hij zegt succes vol geregistreerd! maar als ik dan naar login.php ga en ik vul naam en paswoord in zegt hij verkeerd naam of paswoord!
daar zit blijkbaar nog iets mis?
login.php:
<?
session_start();
require("config.php");
if (isset($_POST['submit']) ){ //als _POST submit bestaat
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."' AND wachtwoord = '".$_POST['wachtwoord']."' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if ($result == 0){
$a = "Gebruikersnaam en/of Wachtwoord is/zijn incorrect. Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
}
$login = 1;
session_register("login");
session_register("memberid");
header("Location: index.php");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if (!$_POST['login']){
$a = "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
josko
%Europe/Berlin %630 %2007, 15:08
Nee, je insert gewoon een lege row. Na de vorige 5 keer kan je nu zelf uitzoeken wat de fout is :)
jelmerdewilde
%Europe/Berlin %632 %2007, 15:10
oftewel, in deze regel zitten de fouten:
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geb oortedatum,woonplaats,favodrankje,favoartiest,favo film,hobbys,geslacht,relatie,geactiveerd,pm) VALUES ('$gebruikersnaam','$wachtwoord','$naam','$email', '$homepage','$geboortedatum','$woonplaats', '$drank', '$artiest','$film','$hobbys','$geslacht','$relatie ','$activeringscode','$pm')") or die(mysql_error());
check al die dingen eens.. $gebruikersnaam bestaat niet, $_POST['gebruikersnaam'] bestaat wel.. en ga zo maar door ;)
+ soms heb je spaties die er niet horen (geb oortedatum)
nielsmus
%Europe/Berlin %681 %2007, 16:20
thanx!
heb hier een poging gedaan maar nu krijg ik een eror melding! als volgt :
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ';(test)(Niels Musschoot);(info@teamtunafish.be);(http://);();()
dit is wat ik gedaan heb:
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geb oortedatum,woonplaats,favodrankje,favoartiest,favo film,hobbys,geslacht,relatie,geactiveerd,pm) VALUES (".$_POST['gebruikersnaam'].");(".$_POST['wachtwoord'].")(".$_POST['naam'].");(".$_POST['email'].");(".$_POST['homepage'].");(".$_POST['geboortedatum'].");(".$_POST['woonplaats'].");(".$_POST['drank'].");(".$_POST['artiest']."); (".$_POST['film'].");(".$_POST['hobbys'].");(".$_POST['geslacht'].");(".$_POST['relatie'].");(".$_POST['activeringscode'].");(".$_POST['pm'].");)") or die(mysql_error());
die spatie bij geboorte zit er niet bij!! die komt uit zichzelf als ik dit hier post!
jelmerdewilde
%Europe/Berlin %711 %2007, 17:04
ow.. dat van die spaties is vaag.. Misschien ga ik het wel even melden bij de admins :)
Dan je query:
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geb oortedatum,woonplaats,favodrankje,favoartiest,favo film,hobbys,geslacht,relatie,geactiveerd,pm) VALUES (".$_POST['gebruikersnaam'].",".$_POST['wachtwoord'].",".$_POST['naam'].",".$_POST['email'].",".$_POST['homepage'].",".$_POST['geboortedatum'].",".$_POST['woonplaats'].",".$_POST['drank'].",".$_POST['artiest'].",".$_POST['film'].",".$_POST['hobbys'].",".$_POST['geslacht'].",".$_POST['relatie'].",".$_POST['activeringscode'].",".$_POST['pm'].") or die(mysql_error());
misschien moet je eens het volgende proberen in een leeg document:
$wie = "Jelmer";
echo "Met deze " . "zin leer(t) " . $wie . ", hoe" . $wie . " 'dingen' aan elkaar rijgt";
echo "de ; geeft aan dat er een nieuwe regel in het script komt, dit betekent echter geen volgende regel in de output. De output is alles wat je te zien krijgt als je het bestand opent in de browser. Voor een volgende regel gebruik je dan gewoon <BR> zoals in gewoon html ook";
Dit even, om je te laten zien, dat je query die jij gaf onjuist was.. er stonden regelmatig ;'s.
Verder moet je er altijd om denken dat je bij een INSERT query, altijd evenveel velden als waarden hebt.
als je de query zou outputten moet het er (voorbeeldje) zo uitzien:
INSERT INTO members (`naam`,`email`,`wachtwoord`) VALUES ('Jelmer','jelmer@hasnomail.nl','jelmerhasnopass') ;
Als de values dan variabelen zijn, krijg je:
[php]INSERT INTO members(`naam`,`email`,`wachtwoord`) VALUES ('".$naam."','".$email."','".$wachtwoord."');
Jou voriabelen zitten alleen in de POST[], dus worden het $_POST['naam'] enz.
Zou heb je even een beetje een beter beeld van de syntax, en kun je er zelf misschien ook beter uitkomen ;)
nielsmus
%Europe/Berlin %731 %2007, 17:33
zoiets?
het werkt wel nog niet maar ik denk dat ik nu toch in de buurt moe zitten?
alleen nog altijd die sql syntax error
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geb oortedatum,woonplaats,favodrankje,favoartiest,favo film,hobbys,geslacht,relatie,geactiveerd,pm) VALUES (".$_POST['gebruikersnaam']."),(".$_POST['wachtwoord']."),(".$_POST['naam']."),(".$_POST['email']."),(".$_POST['homepage']."),(".$_POST['geboortedatum']."),(".$_POST['woonplaats']."),(".$_POST['drank']."),(".$_POST['artiest']."),(".$_POST['film']."),(".$_POST['hobbys']."),(".$_POST['geslacht']."),(".$_POST['relatie']."),(".$_POST['activeringscode']."),(".$_POST['pm'].");)") or die(mysql_error());
jelmerdewilde
%Europe/Berlin %732 %2007, 17:35
nee ook niet, als het goed is werkt de bovenste query in m'n vorige post. Maar misschien gaat ie nog moeilijk doen over aanhalingstekens ergens, maar dat betwijfel ik.
nielsmus
%Europe/Berlin %737 %2007, 17:41
ja bedankt ik begin het beter te begrijpen nu!!
maar als ik je bovenste post gebruik
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geb oortedatum,woonplaats,favodrankje,favoartiest,favo film,hobbys,geslacht,relatie,geactiveerd,pm) VALUES (".$_POST['gebruikersnaam'].",".$_POST['wachtwoord'].",".$_POST['naam'].",".$_POST['email'].",".$_POST['homepage'].",".$_POST['geboortedatum'].",".$_POST['woonplaats'].",".$_POST['drank'].",".$_POST['artiest'].",".$_POST['film'].",".$_POST['hobbys'].",".$_POST['geslacht'].",".$_POST['relatie'].",".$_POST['activeringscode'].",".$_POST['pm'].") or die(mysql_error());
dan krijg ik weer een wit blad hij leest blijkbaar weer iets niet!
josko
%Europe/Berlin %745 %2007, 17:53
Kijk even naar het einde van je eigen post, dan kan je het al zien :)
//iets
$_POST['relatie'].",".$_POST['activeringscode'].",".$_POST['pm'].") or die(mysql_error());
nielsmus
%Europe/Berlin %761 %2007, 18:16
ik zie niet direct verschil?
//iets
$_POST['relatie'].",".$_POST['activeringscode'].",".$_POST['pm'].") or die(mysql_error());
$_POST['relatie'].",".$_POST['activeringscode'].",".$_POST['pm'].") or die(mysql_error());
josko
%Europe/Berlin %763 %2007, 18:19
Dat word er niet bedoelt :)
Een string, ofwel text, word in het rood weergegeven met de code viewer van flashfocus.
mysql_error() stuk is rood:
je hebt je string niet afgesloten :)
dus het moet zijn
$_POST['relatie'].",".$_POST['activeringscode'].",".$_POST['pm']."'") or die(mysql_error());
ik gaf overigens het bedoelde stuk weer ;)
nielsmus
%Europe/Berlin %775 %2007, 18:36
thanx,
maar zou je nog juist eens naar de rest van men code kunnen kijken? want ik blijf een blanco pagina krijgen!!
<?
require("config.php");
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if (!$_POST['submit']){
?>
Velden met een * zijn verplicht...
<form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="submit" value="1">
Naam:<br>
<input type="text" name="naam" size="30"> *<br>
Email adres:<br>
<input type="text" name="email" size="30"> *<br>
Homepage:<br>
<input type="text" name="homepage" size="30" value="http://"><br>
Woonplaats:<br>
<input type="text" name="woonplaats" size="30"><br>
Geboortedatum ( dd-mm-jjjj ):<br>
<input type="text" name="geb1" size="2" maxlength="2"> -
<input type="text" name="geb2" size="2" maxlength="2"> -
<input type="text" name="geb3" size="4" maxlength="4"><br>
Hobby's:<br>
<textarea name="hobbys" rows="3"></textarea><br>
Favo drankje(s):<br>
<input type="text" name="drank"><br>
Favo artiest(en):<br>
<input type="text" name="artiest"><br>
Favo film:<br>
<input type="text" name="film"><br>
Geslacht:<br>
<select size="1" name="geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
<option value="Weet ik niet">Weet ik niet</option>
</select><br>
Relatie:<br>
<select size="1" name="relatie">
<option value="1">Ja</option>
<option value="0">Nee</option>
<option value="2">Binnenkort</option>
</select><br>
Privé- berichten:<br>
<select size="1" name="pm">
<option value="1">Aan</option>
<option value="0">Uit</option>
</select><br>
<br>
Gewenste gebruikersnaam:<br>
<input type="text" name="gebruikersnaam" size="25"> *<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
<?
}
else{
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '".$_POST['gebruikersnaam']);
$result = mysql_num_rows($query);
if($result > 0){
?>
Deze gebruikersnaam is al in gebruik<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
else{
if(!empty($_POST['naam']) && !empty($_POST['email']) && !empty($_POST['gebruikersnaam'])){
if($wachtwoord!=$wachtwoord2){
echo "De wachtwoorden zijn niet gelijkt aan elkaar";
}
else{
$geboortedatum = "$geb1-$geb2-$geb3";
$tekens=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$activeringscode;
for($c = 0; $c < 12; $c++){
srand((double)microtime() * 100000000000000);
$pass = $tekens[rand(0, 62)];
$activeringscode=$activeringscode.$pass;
}
if($actmail=="1"){
$activeringscode = 0;
}
elseif($actmail=="2"){
$activeringscode = 1;
}
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geb oortedatum,woonplaats,favodrankje,favoartiest,favo film,hobbys,geslacht,relatie,geactiveerd,pm) VALUES (".$_POST['gebruikersnaam'].",".$_POST['wachtwoord'].",".$_POST['naam'].",".$_POST['email'].",".$_POST['homepage'].",".$_POST['geboortedatum'].",".$_POST['woonplaats'].",".$_POST['drank'].",".$_POST['artiest'].",".$_POST['film'].",".$_POST['hobbys'].",".$_POST['geslacht'].",".$_POST['relatie'].",".$_POST['activeringscode'].",".$_POST['pm']."'") or die(mysql_error());
());
$bericht = "Via onze website heb jij (als het goed is) een aanmeldingsformulier ingevuld waarmee je een lid van onze
website wordt, als dit niet het geval is kun je dit mailtje het beste verwijderen.\n\nAls je je wel wilt aanmelden voor een
account op onze website moet je op de onderstaande url klikken om je account te activeren:\n\n
<a href=\"$script_url/activeer.php?activate=$activeringscode\">$script_url/activeer.php?activate=$activeringscode</a>\n\nMet vriendelijke groet
Webmaster $webmaster_url";
if($actmail=="1"){
mail("$webmaster_email","Activeer nu je account $naam !","$bericht");
echo "De aanmelding is succesvol gelukt, er word nu een mailtje verstuurd aan <b>$email</b> waarin de activerings url staat...";
}
elseif($actmail=="2"){
echo "Je account is geactiveerd, je kunt nu inloggen...";
}
else{
echo "De aanmelding is gelukt, het is nu aan de webmaster om te beslissen of hij/zij je accepteerd als member van deze website...";
}
}
}
else{
?>
Je hebt niet alle verplichte velden ingevuld...<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
}
}
?>
jelmerdewilde
%Europe/Berlin %854 %2007, 20:30
op 1 of andere manier krijg jij toch geen errors (probably instelling van je host of zoiets). Want als ik je script draai (lokaal), krijg ik:
Parse error: syntax error, unexpected ')' in F:\ff\index.php on line 98
op die aangegeven regels staat iets totaal onzinnigs (wat je per ongeluk hebt laten staan of zo tijdens het copieren), namelijk:
());
josko
%Europe/Berlin %855 %2007, 20:31
jelmer, dat ligt aan zijn server,
sommige servers krijg je geen errors
( en op nog andere server is dat zo en werkt error_reporting( E_ALL|E_STRICT) niet eens )
jelmerdewilde
%Europe/Berlin %876 %2007, 21:02
@Josko: maar het valt toch hopelijk wel in te stellen? Bij mijn host/server wel iig :)
josko
%Europe/Berlin %903 %2007, 21:40
Ja, in php.ini :)
Maar daar mag je niet altijd bij.
in een flink aantal gevallen kan je error_reporting() en ini_set() nog gebruiken,
maar bij bijvoorbeeld mijn leerbedrijf's server niet. (heeft G. Rademaker ingesteld ^_^)
voor de gein:
eentje die het dus niet doet (www.zchosting.nl/Ontwikkeling/ini_get.php)
nielsmus
%Europe/Berlin %941 %2007, 22:36
klopt!
ik heb die regel weggelaten en nu leest hij het weer wel!!
alleen krijg ik nog steeds een foutmelding als ik me probeer te registreren! namelijk:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '@hotmail.com,http://www.teamtunafish.be,,Oostende,bier,you,saw,
nielsmus
%Europe/Berlin %952 %2007, 22:50
Kijk ik heb het werkende!! ik heb van iemand onderstaand script gekregen en nu doet hij het ik kan registreren!!
Alleen men login.php doet het nog niet! hij zegt foutief naam of wachtwoord! terwijl het wel klopt! maar ik ben wel correct aangemeld want ik kan men naam geregistreerd zien staan in de member lijst!
mysql_query("INSERT INTO
members
(gebruikersnaam,
wachtwoord,
naam,
email,
homepage,
geboortedatum,
woonplaats,
favodrankje,
favoartiest,
favofilm,
hobbys,
geslacht,
relatie,
geactiveerd,
pm)
VALUES
('".addslashes($_POST['gebruikersnaam'])."',
'".addslashes($_POST['wachtwoord'])."',
'".addslashes($_POST['naam'])."',
'".addslashes($_POST['email'])."',
'".addslashes($_POST['homepage'])."',
'".addslashes($_POST['geboortedatum'])."',
'".addslashes($_POST['woonplaats'])."',
'".addslashes($_POST['drank'])."',
'".addslashes($_POST['artiest'])."',
'".addslashes($_POST['film'])."',
'".addslashes($_POST['hobbys'])."',
'".addslashes($_POST['geslacht'])."',
'".addslashes($_POST['relatie'])."',
'".addslashes($_POST['activeringscode'])."',
'".addslashes($_POST['pm'])."')") or die(mysql_error());
hieronder men script login.php:
<?
session_start();
require("config.php");
if (isset($_POST['submit']) ){ //als _POST submit bestaat
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."' AND wachtwoord = '".$_POST['wachtwoord']."' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if ($result == 0){
$a = "Gebruikersnaam en/of Wachtwoord is/zijn incorrect. Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
}
$login = 1;
session_register("login");
session_register("memberid");
header("Location: index.php");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if (!$_POST['login']){
$a = "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
Zien jullie misschien waaraan het kan ligen hij zegt dus foutief naam of password/ of mss heb je je account vergeten te registreren.
maar dat 2de doet hij normaal automatisch
jelmerdewilde
%Europe/Berlin %961 %2007, 23:04
staan de juiste gegevens in de database? Dus voegt hij een goeie rij toe, met de juiste waarden in de juiste velden enzovoort?
Zo ja, is het veld 'geactiveerd' in diezelfde rij 1?
Zo ja, vul je überhaupt de goeie gegevens in? :D
Zo ja, dan struikelt ie over je script ..
//ow en:
WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'
Zet steeds bij het woord voor de =, even zulke : ` , aanhalingstekens eromheen (naast de 1 op het toetsenbord). dus WHERE `gebruikersnaam` = enz enz.
// over die vage spaties: http://www.flashfocus.nl/forum/showthread.php?t=25357 ;)
nielsmus
%Europe/Berlin %429 %2007, 10:17
ik heb het eens gecheckt en alle gegevens kloppen in de database! het enige probleem is dat de accounts niet geactiveerd zijn!
zou het aan het activeer script kunnen liggen?
activeer.php:
<?
require("config.php");
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
$query = mysql_query("SELECT * FROM members WHERE `geactiveerd` = '".$_POST['activate']);
$result = mysql_num_rows($query);
if($result || !$activate=="1" AND $activate){
mysql_query("UPDATE members SET geactiveerd = '1' WHERE `geactiveerd` = '".$_POST['activate']);
?>
Je account is succesvol geactiveerd, je kun nu inloggen<br><br>
<a href="http://www.teamtunafish.be/login/login.php">Login</a>
<?
}
elseif(!$result || !$activate=="1"){
echo "OF de code is fout OF je hebt je account al geactiveerd, voor dat eerste moet je contact opnemen
met de webmaster van deze webiste";
}
?>
jelmerdewilde
%Europe/Berlin %464 %2007, 11:09
wanneer zou wordt dit bestand aangeroepen? Er moet namelijk een waarde meegegeven worden (activate), die bepaald, welke rij in de tabel geactiveerd moet worden.
nielsmus
%Europe/Berlin %483 %2007, 11:35
Klopt ik vin activate nergens terug? het zou normaal toch uit aanmelden.php moeten komen he?
edit// toch!! ik zie hier iets : <a href=\"$script_url/activeer.php?activate=$activeringscode\">$script_url/activeer.php?activate=$activeringscode</a>
josko
%Europe/Berlin %485 %2007, 11:38
mysql_query("UPDATE members SET geactiveerd = '1' WHERE `geactiveerd` = '".$_POST['activate']);
die klopt niet.
bijv _POSt activate = cf34dsld
UPDATE members SET geactiveerd='1' WHERE geactiveerd='cf34dsld
hij word niet afgesloten.
Er zijn twee manieren die ik aanraad om te proberen of je query het doet.
de eerste:
mysql_query( $SQL ) or die( mysql_error());
//als hij false terug geeft, komt het or die stuk. die( laatste mysql foutmelding.)
de tweede:
$result = mysql_query( $SQL );
if( $result === false ) //als result gelijk is aan en van hetzelfde type als
{
//foutmelding
}
nielsmus
%Europe/Berlin %489 %2007, 11:44
waar in het script moet ik die codes dan plaatsen?
josko
%Europe/Berlin %865 %2007, 20:46
Even kijken. Er word de fout bij het activeren aangegeven, en hoe je ze zelf snel ontdekt.
Ik zou zeggen, even goed lezen :)
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.