de volgende code heeft gewerkt maar om een of andere reden werktze niet meer nadat mijn host zijn php en dergerlijke heeft geupdated

kunne jullie helpen? want er wordt niks naar de databese geschreven hier.


<?php
if ($action=="register"){
	$naam = $_POST["naam"];
	$voornaam = $_POST["voornaam"];
	$adres = $_POST["adres"];
	$postcode = $_POST["postcode"];
	$gemeente = $_POST["gemeente"];
	$telefoon = $_POST["telefoon"];
	$email = $_POST["email"];
	$nick = $_POST["nick"];
	$bike = $_POST["bike"];
		
		
	$error=0;
	if ($naam=="") {
		$message="geen familienaam ingegeven";
		$error=1;
	}
	if ($voornaam=="") {
		$message=$message ." <br> geen voornaam ingegeven";
		$error=1;
	}
	if ($adres=="") {
		$message=$message . " <br>geen adres ingegeven";
		$error=1;
	}
	if ($postcode=="") {
		$message=$message . " <br>geen postcode ingegeven";
		$error=1;
	}
	if ($gemeente=="") {
		$message=$message ." <br>geen gemeente ingegeven";
		$error=1;
	}
	if ($telefoon=="") {
		$message=$message . " <br>geen telefoon ingegeven";
		$error=1;
	}
	if ($email=="") {
		$message=$message." <br>geen email ingegeven";
		$error=1;
	}
	if ($nick=="") {
		$message=$message. " <br>geen nickname (login) ingegeven";
		$error=1;
	}
	if ($error==0){
		$sql="select * from users where nick ='".$nick."'";
		$query=mysql_query($sql);
		$rows=mysql_num_rows($query);
		if ($rows>0){
			$error=2;
			$message="nickname bestaat al, kies een andere";
		}
	}
	switch ($error){
		case 0 :
		srand((float) microtime() * 10000000);
		$input = 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", "1", "2", "3", "4","5", "6", "7", "8", "9","0");
		$rand_keys = array_rand($input,6);
		$paswoord=$input[$rand_keys[0]].$input[$rand_keys[1]].$input[$rand_keys[2]].$input[$rand_keys[3]].$input[$rand_keys[4]].$input[$rand_keys[5]];
			
			$query= "insert into users (naam, voornaam, adres, postcode, gemeente, telefoon, email, paswoord,nick,bike,avatar) VALUES ('".$naam."','".$voornaam."','".$adres."','".$postcode."','".$gemeente."','".$telefoon."','".$email."','".$paswoord."','".$nick."','".$bike."',0)";
		echo $query;
		mysql_query($query);?>
wederom superglobals....

wijzig
if ($action=="register"){

in
if ($_GET['action']=="register"){

om je script weer aan de praat te krijgen
waar controleer je of je query gelukt is? ik zie dat namelijk nergens..

hint: mysql_query("bla bla) or die(mysql_error());

edit:
- probeer ook eens een spatie als naam te doen ([php]trim[/php])
- belangrijk: mysql injection ([php]mysql_real_escape_string[/php])
- netheid: $string = $string . 'hoi'; kan je beter zo doen: $string .= 'hoi';
- Houd je query's netjes:

<?php
    mysql_query("
    INSERT INTO
        tabel
        (
            naam,
            straat,
            postcode
        )
    VALUES
        (
            '".mysql_real_escape_string($_POST['naam'])."',
            '".mysql_real_escape_string($_POST['straat'])."',
            '".mysql_real_escape_string($_POST['postcode'])."'
        )
        
    ") or die("Er ging iets fout: ".mysql_error());
?>
thanx problem solved,
die error message heeft het opgelost
vraagje wat doet die mysql_real_escape_string?
mysql_real_escape_string zorgt ervoor dat gevaarlijke tekens uit een string woorden gefilterd en woorden vervangen.
Kijk hier eens [php]mysql_real_escape_string[/php].

Zoek ook eens op SQL Injection

Reageren