Beste,
Mijn registratiepagina werkt niet.
Wanneer ik een account aanmaak, komt er "done" te staan, maar komt er niets in database.

Mijn register.php ziet er zo uit:

<?php
// maak style aan
include 'include/bgup.php';
?>
<html>
<u>Because of building of the site, All the data can be removed</u>
<table>
<form method="post" name="update" action="update.php" />
<TR><TD>Username:</TD><TD> <input type=text name=username></TD></TR>
<tr><td>Password:</TD><TD> <input type=password name=password></TD></TR><p>
<TR><TD>email:</TD><TD> <input type=text name=email></TD></TR>
<TR><TD><input type="checkbox" name="checkbox" value="Yes" />&nbsp;&nbsp;Yes, I agree with the <a href="toc.html">Terms Of Conditions</a></TD</TR>
<TR><TD></TD><TD><input type=submit name=submit value=submit></TD></TR></TABLE>
</form></html>
<?php
include 'include/bgdown.php';
?>


De update.php ziet er als volgt uit:

<?php
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan

mysql_connect("**hostknip**", "**userknip**", "**passwordknip**") or die(mysql_error());
mysql_select_db("**dbknip**")or die("Connection Failed"); echo "<br />";
// SQL Query
$query = "SELECT email FROM leden WHERE email = '" . mysql_real_escape_string($_POST['email']) . "'"; 
$get = mysql_query($query);
$aantal = mysql_num_rows($get);
if($aantal !== 0) die ('Email does already excist <a href="register.php">Back</a>!'); 
$username=mysql_real_escape_string($_POST['username']);
$pass=mysql_real_escape_string($_POST['password']);
if (isset($_POST['checkbox'])) {
$query = "INSERT INTO leden (`username`, `password`, `email`, `level`) VALUES  ('".mysql_real_escape_string($_POST['username'])."',".mysql_real_escape_string(md5($_POST['password']))."', '".mysql_real_escape_string($_POST['email'])."','1')" or die (mysql_error()); 
if(mysql_query($query)); 
echo 'Done';
}
else {
echo 'You have to accept the terms of condition.';
}
//Onderkant layout ;)
include 'include/bgdown.php';
?>


Ik kom er zelf niet uit.
Voor de genen die het willen weten: Een print-screen van de database op http://www.teacherdutch.webatu.com/phphulp.png

Alvast bedankt.
Tim

Zet aub je script tussen [code]-tags voor een beter overzicht in het forum.
Bouw nette foutafhandeling in voor de query's.
Or die() is niet netjes en bij jou staat het ook nog op de verkeerde plaats.

Je query is namelijk mislukt en jij ziet geen error.

[size=xsmall]Toevoeging op 29/12/2013 12:07:09:[/size]

Slordigheid is de grootste progammeerfout.
Registartie werkt niet.
Er hoort sowieso op lijn 18 geen puntkomms maar een accolade.
Ik zou het zo doen:


<?php
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
mysql_connect("**hostknip**", "**userknip**", "**passwordknip**") or die(mysql_error());
mysql_select_db("**dbknip**")or die(mysql_error());

if(!mysql_connect){
	echo 'kan geen verbinding maken';
        exit;
}elseif(!mysql_select_db){
	echo 'Kan niet bij de database';
        exit;
}else{

function StripDanger($value) {
    $magic_quotes_active = get_magic_quotes_gpc();
    $new_enough_php = function_exists('mysql_real_escape_string'); // i.e. PHP >= v4.3.0

    if ($new_enough_php) { // PHP v4.3.0 or higher
        // undo any magic quote effects so mysql_real_escape_string can do the work
        if($magic_quotes_active) {
            $value = stripslashes($value);
        }
        $value = mysql_real_escape_string($value);
    }
    else { // before PHP v4.3.0
        // if magic quotes aren't already on then add slashes manually
        if(!$magic_quotes_active) {
            $value = addslashes($value);
        }
        // if magic quotes are active, then the slashes already exist
    }
    return $value;
}


if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['verzonden'] == 1 )  {
		
		$username = StripDanger($_POST['username']);
		$email = StripDanger($_POST['email']);
		$password = StripDanger($_POST['password']);
		$password1 = StripDanger($_POST['password1']);
		$checkbox = StripDanger($_POST['checkbox']);
		
		//alle fouten in een array zetten
		$aFout = array();
		
		if (empty($username)){ //kijken of gebruikersnaam leeg is
			$form = true;
			$aFout[] = 'U moet een gebruikersnaam opgeven';
			}
		//kijken of email al bestaat
		$resultaat_email = mysql_query("SELECT email FROM leden WHERE email='".$email."'");
		if($resultaat_email == false){
    		echo mysql_error();
	
		}else{
		
			if(mysql_num_rows($resultaat_email)>0){
				$form = true;
				$aFout[] = 'Email bestaat al';
			
			}elseif(isset($email) && strlen($email)>5)	{ //controleren of de ingevoerde e-mail adres valide is
				// andere variant test 01/03/2010
				if(!preg_match('#^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$#i', $email)) {
					$form = true;
					$aFout[] = 'Dit is geen email adres';
				}else{
				// alles in orde; geen foutsituatie
				}
			}
			else{
				$form = true;
				$aFout[] = 'Geen valide email adres';
			}
		}
		//kijken of wachtwoord 1 leeg is
		if (empty($password)){ 
			$form = true;
			$aFout[] = 'Wachtwoord invoeren';
		//kijken of de wachtwoorden gelijk zijn
		}elseif($password != $password1){
			$form = true;
			$aFout[] = 'Wachtwoord zijn niet gelijk';
		}else{
			//versleutelen
			$passworddb = md5($password);
			}
		//kijken of checkbox leeg is
		if (empty($checkbox)){ 
			$form = true;
			$aFout[] = 'Je moet akkoord gaan met de algemenevoorwaarde';
			}
			
			//als er fouten zijn tijdens het verwerken van het formulier, dan stoppen we alles in een box
			if(!empty($aFout))
				{
					$errors = '
					<table><tr><td>
					<ul>';
					foreach($aFout as $sFout)
						
					{
						$errors .= "    <li>".$sFout."</li>\n";
					}
					$errors .= "</ul>
					</td></tr></table>";
					
					}else{//hier gaan we de leden toevoegen
				$form = false;
		

			//geen fouten alles in de db toevogen
			$query = mysql_query("INSERT INTO leden (`username`, `password`, `email`, `level`) VALUES  ('$username','$passworddb', '$email', '1')") or die (mysql_error()); 
			if($query){
				$form = false;
				echo 'Registratie voltooid';
			}else{
				$form = true;
				echo 'Er is iets fout gegaan';
				
			}
		}
	}

if($form){ 

if(isset($errors)){ echo $errors; } ?>


<u>Because of building of the site, All the data can be removed</u>
<table>
<form method="post" name="registratie" action="registratie.php" />
<TR><TD>Username:</TD><TD> <input type="text" name="username"></TD></TR>
<tr><td>Password:</TD><TD> <input type="password" name="password"></TD></TR><p>
<tr><td>Password repeat:</TD><TD> <input type="password" name="password1"></TD></TR><p>
<TR><TD>email:</TD><TD> <input type="text" name="email"></TD></TR>
<TR><TD><input type="checkbox" name="checkbox" value="Yes" />&nbsp;&nbsp;Yes, I agree with the <a href="toc.html">Terms Of Conditions</a></TD</TR>
<input type="hidden" name="verzonden" value="1">
<TR><TD></TD><TD><input type="submit" name="submit" value="verzenden"></TD></TR></TABLE>
</form>

<?php	
	}
}
//Onderkant layout ;)
include 'include/bgdown.php';

?>


Groet Mausie.
Krijg een foutmelding.

Waar zit de fout nu?


PHP Error Message

Notice: Use of undefined constant mysql_connect - assumed 'mysql_connect' in /home/a4138720/public_html/register2.php on line 9

Free Web Hosting

PHP Error Message

Notice: Use of undefined constant mysql_select_db - assumed 'mysql_select_db' in /home/a4138720/public_html/register2.php on line 12

Free Web Hosting

PHP Error Message

Notice: Undefined variable: form in /home/a4138720/public_html/register2.php on line 128

Free Web Hosting
mysql_connect en mysql_select_db op lijn 9 en 12 zijn functies, maar blijkbaar mist er nog het één en ander:


<?php
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
if(!mysql_connect("**hostknip**", "**userknip**", "**passwordknip**")) {
	echo "Error: ".mysql_error();
	exit;
}
elseif(!mysql_select_db("**dbknip**")) {
	echo "Error: ".mysql_error();
	exit;
} else {
	//etc
}
?>


Oeps mijn fout, iets te snel gekopieerd en geplakt.

of zoals Aar het aangeeft, alleen moet er volgens mij voor de functie een uitroepteken (!) staan, omdat hij de error pas moet weergeven als de if statment false is.

Als de verbinding nu true is, zal hij de error weergeven.

Correct me if I'm wrong!

Dit moet het zijn:


<?php
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
$link = mysql_connect("**hostknip**", "**userknip**", "**passwordknip**");
$db   = mysql_select_db("**dbknip**");

//als het false is fout afhandeling
if(!$link){
    echo "kan geen verbinding maken, ERROR: ".mysql_error();
        exit;
//als het false is fout afhandeling
}elseif(!$db){
    echo "Kan niet bij de database, ERROR: ".mysql_error();
        exit;
}else{
 //vanaf hier geen fouten met de verbinding, de rest verwerken
 
}
?>


Groet Mausie.
Staan er echte gegevens m.b.t. de databaseverbinding in de bovenstaande codes?!
Ik betwijfel het, maar als voordeel van de twijfel heb ik de database-gegevens maar even weggeknipt.

Reageren