Error in script PHP+sql

Status
Niet open voor verdere reacties.

Gebruiker1352

Gebruiker
Lid geworden
30 okt 2007
Berichten
57
Hoi hoi!

Ik heb een membersysteem script en ik heb hem gekoppeld aan mijn SQL db.

Aanmelden lukt niet: Ik kan gegevens invullen maar als ik op inschrijven klik Fatal Error

Hier is het script: hij zegt ook nog in regel 62. Ik heb dat even dik
gemaakt...
<?
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,geboortedatum,woonplaats,favodrankje,favoartiest,favofilm,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>

<?
}
}
}
?>

dat is script aanmelden.php
config.php is welgelukt....


Graag zou ik geholpen willen worden...

Alvast een gelukkig nieuwjaar...
Gebruiker1352
 
Laatst bewerkt door een moderator:
Valt me mee dat je op regel 62 pas een fout krijgt...

PHP:
<form method="POST" action="<? echo $PHP_SELF ?>">
$PHP_SELF is niets, tenzij je het zelf hebt gedefinieert. Waarschijnlijk bedoel je
PHP:
<form method="POST" action="<?= $_SERVER['PHP_SELF'] ?>">

Aangezien je als method gekozen hebt voor post zul je die aanroep ook moeten gebruiken wil je een variabele kunnen aan roepen.
PHP:
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam'");
wordt dus
PHP:
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$_POST[gebruikersnaam]'");
PHP:
if($naam AND $email AND $gebruikersnaam AND $gebruikersnaam){
(Ermm 2x $gebruikersnaam?)
wordt
PHP:
if($_POST['naam'] AND $_POST['email'] AND $_POST['gebruikersnaam']){
En de rest dus ook wat een variabele uit het formulier moet voorstellen.

Ik zou nu makkelijk via de GET-methode dit formulier in kunnen vullen zonder dat ik het hele formulier heb gezien.

Ook zou inspringen de overzichtelijkheid aardig vergroten.
 
Je hoeft geen action mee te geven aan de openingstag van een formulier.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan