Wie kan mij helpen met mijn script van registreren en database?

Status
Niet open voor verdere reacties.

yasminlove1

Gebruiker
Lid geworden
18 jul 2013
Berichten
164
Hallo,

ik heb een registratie script gemaakt, alleen werken de meldingen niet en het registreren en verbinden met database niet..
Ik kan echt de fout niet vinden en vraag daarom jullie om hulp, ik hoop dat het opgelost kan worden anders kan ik weer opnieuw beginnen voor de 5e keer..

hier is mijn registratie script:

PHP:
<?php

include('verbinden.php');

ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    // Hier komt alle behandeling van het formulier 
     
    // Mocht er een fout optreden, is het leuk dat de gebruiker niet alles opnieuw hoeft 
    // in te vullen. Daarom vullen we de array $post met de velden, 
    // uiteraard door htmlentities() gehaald (veiligheidsmaatregel). 
    // Wachtwoord moeten wel opnieuw ingevuld worden, nogmaals veiligheidsmaatsregel 
    $POST = array( 
                'Gebruikersnaam'    => htmlentities($_POST['Gebruikersnaam']), 
                'Stalnaam'          => htmlentities($_POST['Stalnaam']),
                'Email'                => htmlentities($_POST['Email'])); 
     

 

    // Verwerking 
     
    // Eerst enkele functies schrijven die de controle vergemakkelijken 
    function Registratie($horselife, $spelers) { 
        // Ik plaats de query op meerdere lijnen voor de leesbaarheid 
        $horselife = mysql_query(" 
            SELECT COUNT(".$Gebruikersnaam.") 
                      FROM spelers
                   WHERE ".$Gebruikersnaam." = '".mysql_real_escape_string($horselife)."'"); 
                    
        // Als de gebruikersnaam nog niet bestaat, geeft dit false, anders true 
        return (mysql_result($horselife,0) == 0 ? false : true); 
    } 
     
    // De reguliere expressies voor de controle op e-mailadressen is door FangorN samengesteld :] 
    function is_email($in) { 
        list($local, $host) = explode('@', $in); 
        $pattern_local = '^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.' 
                       . '([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$';  
        $pattern_host = '^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)' 
                      . '[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$';  
        $match_local   = eregi($pattern_local, $local); 
        $match_host    = eregi($pattern_host, $host); 
         
        return ($match_local && $match_host ? true : false); 
    } 
     
    // Hier zullen we de fouten in opslaan

function fouten($fout){
if (!empty($fout))
   {  
    $i = 0;
     while ($i < count($fout)){
		  echo "<p><span class='fout'>".$fout[$i]."</span></p>";
		  $i++;}
} 
} 


if ($_SERVER['REQUEST_METHOD']=="POST") 
{
    
$Gebruikersnaam = trim($_POST['Gebruikersnaam']);    
    
if (strlen($Gebruikersnaam) < 3) {
 $fout[] = 'Gebruikersnaam moet minimaal 3 karakters bevatten.';
}

if (strlen($Gebruikersnaam) >30) {
	$fout[] = 'Gebruikersnaam moet maximaal 30 karakters bevatten.';
}     

if (!get_magic_quotes_gpc()) {
	$_POST[] = addslashes($_POST['Gebruikersnaam']);
}

$ControleerGebruiker = $_POST['Gebruikersnaam'];
$Controleer = mysql_query("SELECT Gebruikersnaam FROM spelers WHERE horselife='$ControleerGebruiker'")or die (mysql_error());
$Controleer2 = mysql_num_rows($Controleer);

if ($Controleer2 != 0) {
	$fout[] = "Sorry, de gebruikersnaam <strong>'.$_POST['Gebruikersnaam'].'</strong> is al in gebruik.";
}

if (!$fout ) {
	
$Gebruikersnaam = mysql_real_escape_string($Gebruikersnaam);
$Gebruikersnaam = strip_tags($Gebruikersnaam);
}



$Stalnaam = trim($_POST['Stalnaam']);

if (strlen($Stalnaam) <3) {
    $fout[] = 'Stalnaam moet minimaal 3 karakters bevatten.';
}

if(strlen($Stalnaam) >40) {
	$fout[] = 'Stalnaam moet maximaal 40 karakters bevatten.';
}

if(!get_magic_quotes_gpc()) {
	$_POST[] addslashes($_POST['Stalnaam']);
}

$ControleerStalnaam = $_POST['Stalnaam'];
$Controleer = mysql_query("SELECT Stalnaam FROM spelers WHERE horselife='$ControleerStalnaam'")or die (mysql_error());
$Controleer2 = mysql_num_rows($Controleer);

if ($Controleer2 != 0) {
	$fout[] = "Sorry, de stalnaam <strong>'.$_POST['Stalnaam'].'</strong> is al in gebruik.";
}

if (!$fout ) {
 
$Stalnaam = mysql_real_escape_string($Stalnaam);
$Stalnaam = strip_tags($Stalnaam); 	
}



$Naampaard = trim($_POST['Naampaard']);

if (strlen($Naampaard) <1) {
	$fout[] = 'Naam paard moet minimaal 1 karakter bevatten.';
}

if(strlen($Naampaard) >35) {
	$fout[] = 'Naam paard moet maximaal 35 karakters bevatten.';
}

if(!get_magic_quotes_gpc()) {
	$_POST[] addslashes($_POST['Naampaard']);
}

$ControleerNaampaard = $_POST['Naampaard'];
$Controleer = mysql_query("SELECT Naampaard FROM spelers WHERE horselife='$ControleerNaampaard'")or die (mysql_error());

if (!$fout ) {
	
$Naampaard = mysql_real_escape_string($Naampaard);
$Naampaard = strip_tags($Naampaard);
}




$Ras = trim($_POST['Ras']);

if (strlen($Ras) <2) {
	$fout[] = 'Ras moet minimaal 2 karakters bevatten.';
} 

if(strlen($Ras) >40) {
	$fout[] = 'Ras moet maximaal 40 karakters bevatten.';
}

if(!get_magic_quotes_gpc()) {
	$_POST[] addslashes($_POST['Ras']);
}

$ControleerRas = $_POST['Ras'];
$Controleer = mysql_query("SELECT Ras FROM spelers WHERE horselife='$ControleerRas'")or die (mysql_error());

if (!$fout ) {
	
$Ras = mysql_real_escape_string($Ras);
$Ras = strip_tags($Ras);
}





$Geslacht = trim($_POST['Geslacht']);

if (strlen($Geslacht) <3) {
	$fout[] = 'Geslacht moet minimaal 3 karakters bevatten.';
} 

if(strlen($Geslacht) >7) {
	$fout[] = 'Geslacht moet maximaal 7 karakters bevatten.';
}

if(!get_magic_quotes_gpc()) {
	$_POST[] addslashes($_POST['Geslacht']);
}

$ControleerGeslacht = $_POST['Geslacht'];
$Controleer = mysql_query("SELECT Geslacht FROM spelers WHERE horselife='$ControleerGeslacht'")or die (mysql_error());

if (!$fout ) {
	
$Geslacht = mysql_real_escape_string($Geslacht);
$Geslacht = strip_tags($Geslacht);
}


$Wachtwoord = trim($_POST['Wachtwoord']);

if (strlen($Wachtwoord) <3) {
	$fout [] = 'Wachtwoord moet minimaal 3 karakters bevatten.';
}

if (strlen($Wachtwoord) >35) {
	$fout [] = 'Wachtwoord moet maximaal 35 karakters bevatten.';
}


$Wachtwoord herhalen = trim($_POST['Wachtwoord herhalen']);

if (strlen($Wachtwoord herhalen) <3) {
	$fout [] = 'Wachtwoord moet minimaal 3 karakters bevatten.';
}

if (strlen($Wachtwoord herhalen) >35) {
	$fout [] = 'Wachtwoord moet maximaal 35 karakters bevatten.';
}

if ($_POST['Wachtwoord'] != $_POST['Wachtwoord herhalen']) {
	$fout[] = 'Wachtwoorden komen niet overeen.';
}

if(!get_magic_quotes_gpc()) {
	$_POST[] addslashes($_POST['Wachtwoord']);
}

$ControleerWachtwoord = $_POST['Wachtwoord'];
$Controleer = mysql_query("SELECT Wachtwoord FROM spelers WHERE horselife='$ControleerWachtwoord'")or die (mysql_error());


if (!$fout ) {

$Wachtwoord = mysql_real_escape_string($Wachtwoord);
$Wachtwoord = strip_tags($Wachtwoord);
}


$Email = trim($_POST['Email']);

if(preg_match('/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/', $emailadres)){
	$fout [] = 'Emailadres is niet geldig, probeer het opnieuw.';
}


if (!get_magic_quotes_gpc()) {
	$_POST[] = addslashes($_POST['Email']);
}

$ControleerEmail = $_POST['Email'];
$Controleer = mysql_query("SELECT Email FROM spelers WHERE horselife='$ControleerEmail'")or die (mysql_error());
$Controleer2 = mysql_num_rows($Controleer);

if ($Controleer2 != 0) {
	$fout[] = "Sorry, de email <strong>'.$_POST['Email'].'</strong> is al in gebruik.";
}

if (!$fout ) {
	
$Email = mysql_real_escape_string($Email);
$Email = strip_tags($Email);
}




$Uitvoeren = "INSERT INTO spelers (Gebruikersnaam, Stalnaam, Naampaard, Ras, Geslacht, Wachtwoord, Email) VALUES ('$Gebruikersnaam', '$Stalnaam', '$Naampaard', '$Ras', '$Geslacht', '$Wachtwoord', '$Email')";
$Resultaat1 = mysql_query($Uitvoeren) or die('Er is een fout opgetreden: ' . mysql_error());

$Naar = "$Email";
$Onderwerp = "Je hebt met succes op Horselife.net84.net geregistreerd!";
$Emailveld = "Hallo $Gebruikersnaam, Welkom bij Horselife.net84.net en heel veel plezier met het spel! Hier zijn je gegevens: gebruikersnaam: $Gebruikersnaam, Stalnaam: $Stalnaam en wachtwoord: $Wachtwoord";
$ExtraHeaders = "Van: <Horselifegame@hotmail.com>";
$ExtraHeaders .= "Antwoorden: Horselifegame@hotmail.com";
if(mail($Naar, $Onderwerp, $Emailveld, $ExtraHeaders)){}



fouten($fout);


	
	 
 
   
    // Het formulier is gecontroleerd, nu kijken we of er fouten opgetreden zijn 
    if(count($fouten) > 0) { 
        ?> 
        <span style="color: #FF0000; ">De volgende fouten zijn opgetreden:</span> 
        <ul> 
            <?php foreach($fouten as $fout) { ?> 
                <li><?=$fout?></li> 
            <?php } ?> 
        </ul> 
        <?php 
    } else { 
        // Er zijn geen fouten, voer registratie uit! 
         
        mysql_query("INSERT INTO spelers 
                                 (Gebruikersnaam, Stalnaam, Naampaard, Ras, Geslacht, Wachtwoord, Email) 
                                 VALUES 
                                 ('".mysql_real_escape_string($_POST['Gebruikersnaam'])."',
								  '".mysql_real_escape_string($_post['Stalnaam'])."',
								  '".mysql_real_escape_string($_post['Naampaard'])."',
								  '".mysql_real_escape_string($_POST['Ras'])."',
								  '".mysql_real_escape_string($_post['Geslacht'])."', 
                                  '".sha1($_POST['Wachtwoord'])."', 
                                  '".mysql_real_escape_string($_POST['Email'])."', 
                                  NOW() 
                                 )"); 
                                  
        $gebruikers_id = mysql_insert_id(); 
         
        // Een volledig willekeurige code van 40 tekens 
        $activatiecode = sha1(md5(microtime()*rand(1,10))); 
        mysql_query("INSERT INTO gebruikers_activaties 
                                 (gebruikers_id, sleutel) 
                                 VALUES 
                                 (".$gebruikers_id.", '".$activatiecode."'"); 
                                  
        // Voor de regeleinden 
        define('EOL', "\n"); 
        // Je kan deze mail uit uitbreiden, evt HTML mail,... 
        $mail   = 'Bedankt voor je registratie, activeer hier je acount:'.EOL; 
        $mail  .= 'http://www.horselife.net84.net/activeer.php?gebruiker='.$gebruikers_id.'&sleutel='.$activatiecode.EOL; 
        $mail  .= 'Bedankt voor het registreren.'; 
         
        $header = '"Horselife.net84.net Account" <Horselifegame@hotmail.com>'; 
         
        if(mail($_POST['Email'], 'Je account activeren', $Email, $header)); 
        ?> {
        echo 'Er is een e-mail gestuurd met activatiedetails.'<?=$Email?>
        <?php 
        // Formulier verbergen 
        $verberg_form = true;} 
    } 
    
    
} else { 
    // Dit stuk wordt uitgevoerd als het formulier nog niet is verzonden. 
     
    // Het formulier is nog niet verzonden, dus is er ook geen $post array. 
    // we maken deze dus zelf aan met initiele waardes, om warnings te voorkomen. 
    $POST = array(     
                'Gebruikersnaam'     => '', 
                'Stalnaam'            => '',
                'Email'                => ''); 
} 

    
if(!isset($verberg_form)) {
   ?>
 
<form action="<?=htmlentities($_SERVER['REQUEST_URI'])?>" method="POST"> 
    Gebruikersnaam:<br /> 
    <input type="text" name="Gebruikersnaam" value="<?=$post['Gebruikersnaam']?>" /><br /> 
    Stalnaam:<br />
    <input type="text" name="Stalnaam" value="<?=$post['Stalnaam']?>" /><br />
    Naam paard:<br />
    <input type="text" neme="Naampaard" value="<?=$post['Naampaard']?>" /><br />
    Ras:<br />
    <input type="text" neme="Ras" value="<?=$post['Ras']?>" /><br />
    Geslacht:<br />
    <input type="text" neme="Geslacht" value="<?=$post['Geslacht']?>" /><br />
    Wachtwoord:<br /> 
    <input type="password" name="Wachtwoord" /><br /> 
    Wachtwoord herhalen:<br /> 
    <input type="password" name="Wachtwoord herhalen" /><br /> 
    E-mailadres:<br /> 
    <input type="text" name="Email"  value="<?=$POST['Email']?>" /><br /> 
    <br /> 
    <input type="submit" value="Registreer" /> 
</form>
<?php
}
?>



hier is Verbinden.php

PHP:
 <?php
// het is belangrijk dat het script met de database
// kan verbinden als dit nodig is.. dat doen we door
// middel van dit stukje script:

$host="localhost"; // meestal 'localhost' maar kan ook anders uiteraard
$gebruiker="XXXXX"; // Mysql gebruikersnaam
$w8woord="XXXX"; // Mysql w8woord
$databasenaam="horselife"; // Databasenaam

mysql_connect($host, $gebruiker, $w8woord)or die("er is een foutje met de verbinding");
// verbinding maken
mysql_select_db($databasenaam)or die("de database kan niet gevonden worden");
// de juiste database selecteren
?>


<?php
// bij elke pagina die de verbinding nodig heeft
// krijg je een speciale regel. als je iets wilt toevoegen,
// wilt veranderen of wilt opvragen uit de database heb
// je de verbinding nodig.. in deze omstandigheden moet
// bovenaan het script deze regel staan:  
//
//     include('verbinden.php');
//
// deze betekent gewoon.. ik wil de pagina verbinden.php
// gebruiken in dit stuk script..
 ?>




en hier mijn database..:


[sql]

CREATE TABLE 'spelers' (
'id' bigint(8) NOT NULL auto_increment,
'Gebruikersnaam' varchar(30) NOT NULL,
'Stalnaam' varchar(40) NOT NULL,
'Naampaard' varchar(35)
'Ras' varchar(40) NOT NULL,
'Geslacht' varchar(7) NOT NULL,
'Wachtwoord' varchar(35) NOT NULL,
'Email' varchar(100) NOT NULL,
PRIMARY KEY ('id')
) TYPE=MyISAM AUTO_INCREMENT=1 ;


CREATE TABLE 'functies' (
'spelers_id' int(4) NOT NULL auto_increment,
'functies_Gebruikersnaam' varchar(30) NOT NULL,
'functies_Stalnaam' varchar(40) NOT NULL,
'functies_Naampaard' varchar(35)
'functies_Ras' varchar(40) NOT NULL,
'functies_Geslacht' varchar(7) NOT NULL,
'functies_Wachtwoord' varchar(35) NOT NULL,
'functies_Email' varchar(100) NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;

[/sql]

ik hoop echt dat jullie mij kunnen helpen..
Alvast heel erg bedankt!!
 
Laatst bewerkt door een moderator:
Goede avond

Wat wil je voor inkog regeister hebben waar dient het voor
Ik wil je best helpen om een werkend inlog registratie met activatsie
Mail in elkaar te flansen zit zelfs een profiel pagina bij waar mensen hun foto op kwijt kunnen
Waar wil het gaan hosten en zo morgen avond rond de klok van 1900 uur ben ik meestal te vinden
Op de chat van helpmij
 
Ik heb even je script in netbeans gezet.
Het staat vol met allerlij fout,
$_post is heel wat anders als $_POST.
Een variable mag een space hebben ($Wachtwoord herhalen = een nono)
Wat dit moet zijn ?? $_POST[] addslashes($_POST['Wachtwoord']);
Dit zijn een paar van de fouten die ik ze ff snel zag.

Loop je hele script eens na en kijk dan eens opnieuw.

Daarna kan ik je aan raden om de foutmeldingen van php te leren lezen, kunnen we je hier natuurlijk ook mee helpen.
 
Heb je al gedebugged en weet je al waar de fout zit?
Verder barst dit script van de veiligheidfouten en raad ik aan om de boel grondig te herschrijven of opnieuw te beginnen.
Ken je eigenlijk wel PHP? Waar heb je dit script vandaan?
Als je PHP niet kent dan wil ik je wel leren :-)
 
Laatst bewerkt:
ik ben een beginner met php, ik ken al heel veel dingen maar niet alles want veel wat ik wil weten is niet te vinden op internet.
Ciske de rat, dat zou heel fijn zijn als je mij kon helpen :)
 
dat het systeem niet wilt werken en ik de fouten niet kan herkennen en niet goed weet hoe ik het moet verbeteren..
dit is het enigste op mijn hele website waar ik nu vastloop..
Hier ben ik al heel lang mee bezig.
 
Wat werkt er niet? Wat gebeurt er?
Voorbeeldlink misschien?
Dan kan ik beter kijken wat er loos is.
 
Laatst bewerkt:
nou, ik weet niet of alles werkt, maar het eerste probleem waar ik tegenaanloop is dat er geen melding is zodra er iets niet of niet goed is ingevuld, dan word de pagina gewoon herladen, maar het is de bedoeling dat er een echo moet komen.
 
Debug het eens. Per if else een echo plaatsen. En wat doet print_r($_POST) ?
Waar kunnen we je script in werking zien? Of draai je dit locaal?
 
Laatst bewerkt:
Het gaat nu om php. Dat is om je html te valideren. Dus kijk eens met print_r naar wat er in je $_POST staat.
 
Het gaat nu om php. Dat is om je html te valideren. Dus kijk eens met print_r naar wat er in je $_POST staat.

het spijt me heel erg, maar het vorig forum heeft me dat niet geleerd..
Enigste wat ik geleerd heb is wat scripten met php en sql toen ik hiermee begon.. heel erg sorry!
 
ik heb dit:

Code:
ini_set('display_errors', 'On');
error_reporting(E_ALL);

bovenaan bij registreren.php neergezet, dit heb ik hier gelezen: http://phptuts.nl/view/39/12/
toen geuploaded, maar geen error, ook nog geen meldingen of iets.
ik denk dat ik het niet goed doe want ik weet niet of ik nou wel of niet met dat htacces iets moet doen..?
 
Php.net is ook wel een duidelijke site. Succes en laat maar weten.
En wat meldr je print_r?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan