gegevens

Status
Niet open voor verdere reacties.

assassinscreed3

Gebruiker
Lid geworden
30 okt 2012
Berichten
68
beste,

ik heb een script gemaakt wat gegevens van klanten moet verandere,
nu heb ik dit:
PHP:
<?php
	//Start sessie
	session_start();
	
	//include gegevens
	require_once('config.php');
	
	//erors
	$errmsg_arr = array();
	
	//zijn er erors?
	$errflag = false;
	
	//verbinden
	$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
	if(!$link) {
		die('kan niet met server verbinden: ' . mysql_error());
	}
	
	//verbinding database
	$db = mysql_select_db(DB_DATABASE);
	if(!$db) {
		die("database bestaat niet");
	}
	
	//pak gegevens
	function clean($str) {
		$str = @trim($str);
		if(get_magic_quotes_gpc()) {
			$str = stripslashes($str);
		}
		return mysql_real_escape_string($str);
	}
	//naak varibles aan
	$voornaam = clean($_POST['voornaam']);
	$achternaam = clean($_POST['achternaam']);
	$geslacht = clean($_POST['geslacht']);
	$email = clean($_POST['email']);
	$telefoon = clean($_POST['telefoon']);
	$mobiel = clean($_POST['mobiel']);
	$straat = clean($_POST['straat']);	
	$huisnummer = clean($_POST['huisnummer']);
	$postcode = clean($_POST['postcode']);
	//niks ingevuld
	if($voornaam == '') {
		$errmsg_arr[] = 'voornaam wordt gemist';
		$errflag = true;
	}
	if($achternaam == '') {
		$errmsg_arr[] = 'achternaam wordt gemist';
		$errflag = true;
	}
	if($geslacht == '') {
		$errmsg_arr[] = 'geslacht wordt gemist';
		$errflag = true;
	}
	if($email == '') {
		$errmsg_arr[] = 'email wordt gemist';
		$errflag = true;
	}
	if($telefoon == '') {
		$errmsg_arr[] = 'telefoon wordt gemist';
		$errflag = true;
	}
	if($mobiel == ''){
		$errmsg_arr[] = 'mobiel wordt gemist';
		$errflag = true;
	}
	if($straat == ''){
		$errmsg_arr[] = 'straat wordt gemist';
		$errflag = true;
	}
	if($huisnummer == ''){
		$errmsg_arr[] = 'huisnummer wordt gemist';
		$errflag = true;
	}
	if($postcode == ''){
		$errmsg_arr[] = 'postcode wordt gemist';
		$errflag = true;
	}
	
	//error stuur terug naar gegevens.exec.php
	if($errflag) {
		$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
		session_write_close();
		header("location: gegevens-exec.php");
		exit();
	}

	//query
	$qry = "INSERT INTO gegevens(voornaam, achternaam, geslacht, email, telefoon, mobiel, straat, huisnummer, postcode, gebruikersnaam) VALUES('$voornaam','$achternaam','$geslacht','$email','$telefoon','$mobiel','$traat','$huisnummer','$postcode','$gebruikersnaam') WHERE gebruikersnaam='$gebruikersnaam'";
	$result = @mysql_query($qry);
	
	//query controleren
	if($result) {
		header("location: verander-success.php");
		exit();
	}else {
		die("Query  mislukt");
	}
?>
maar altijd zegt hij query mislukt.
weet iemand wat ik fout doe?

mvg martijn
 
Ik denk dat het dit moet zijn:

Code:
 //query
    $qry = "INSERT INTO gegevens(voornaam, achternaam, geslacht, email, telefoon, mobiel, straat, huisnummer, postcode, gebruikersnaam) VALUES('$voornaam','$achternaam','$geslacht','$email','$telefoon','$mobiel','$traat','$huisnummer','$postcode','$gebruikersnaam') WHERE gebruikersnaam='$gebruikersnaam'";
    $result = mysql_query($qry);

Dus zonder @ logo. Tenminste dat denk ik. Ik ben niet zo ervaren erin, dus dit is een gok.
 
Sessie start, is dat niet om de uitvoer te onderdrukken ?
 
Sessie start, is dat niet om de uitvoer te onderdrukken ?
Dat is ob_start() ;)

Ik kom nog een typfoutje in de query tegen: $traat i.p.v. $straat

Daarnaast zijn eigen foutmeldingen leuk en aardig maar zorg er wel voor dat ze bruikbaar zijn:
PHP:
if($result) {
    header("location: verander-success.php");
    exit();
}else {
    die("Query mislukt! MySQL zegt: ". mysql_error());
}

En inderdaad, als je zaken wilt aanpassen moet je UPDATE in plaats van INSERT gebruiken :)
 
ik heb het aangepast,
nu heb ik dit op me registratie script want daar lag het denk ook aan :$
PHP:
<?php
	//Start session
	session_start();
	
	//Include database connection details
	require_once('config.php');
	
	//Array to store validation errors
	$errmsg_arr = array();
	
	//Validation error flag
	$errflag = false;
	
	//Connect to mysql server
	$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
	if(!$link) {
		die('kan niet met server verbinden: ' . mysql_error());
	}
	
	//Select database
	$db = mysql_select_db(DB_DATABASE);
	if(!$db) {
		die("database bestaat niet");
	}
	
	//Function to sanitize values received from the form. Prevents SQL injection
	function clean($str) {
		$str = @trim($str);
		if(get_magic_quotes_gpc()) {
			$str = stripslashes($str);
		}
		return mysql_real_escape_string($str);
	}
	
	//Sanitize the POST values
	$fname = clean($_POST['fname']);
	$lname = clean($_POST['lname']);
	$login = clean($_POST['login']);
	$password = clean($_POST['password']);
	$cpassword = clean($_POST['cpassword']);
	$email = clean($_POST['email']);
	
	//Input Validations
	if($fname == '') {
		$errmsg_arr[] = 'voornaam wordt gemist';
		$errflag = true;
	}
	if($lname == '') {
		$errmsg_arr[] = 'achternaam wordt gemist';
		$errflag = true;
	}
	if($login == '') {
		$errmsg_arr[] = 'gebruikersnaaam wordt gemist';
		$errflag = true;
	}
	if($password == '') {
		$errmsg_arr[] = 'wachtword wordt gemist';
		$errflag = true;
	}
	if($cpassword == '') {
		$errmsg_arr[] = 'bevestig wachtword wordt gemist';
		$errflag = true;
	}
	if( strcmp($password, $cpassword) != 0 ) {
		$errmsg_arr[] = 'wachtworde zijn niet gelijk';
		$errflag = true;
	}
	if($email == ''){
		$errmsg_arr[] = 'email wordt gemist';
		$errflag = true;
	}
	//Check for duplicate login ID
	if($login != '') {
		$qry = "SELECT * FROM members WHERE login='$login'";
		$result = mysql_query($qry);
		if($result) {
			if(mysql_num_rows($result) > 0) {
				$errmsg_arr[] = 'Login naam is al in gebruik';
				$errflag = true;
			}
			@mysql_free_result($result);
		}
		else {
			die("Query mislukt");
		}
	}
	// check for duplicate email
	if($email != ''){
		$sky = "SELECT * FROM members WHERE email='$email'";
		$result = mysql_query($sky);
		if($result){
			if(mysql_num_rows($result) > 0) {
				$errmsg_arr[] = "email is al in gebruik";
				$errflag = true;
			}
			@mysql_free_result($result);
		}else{
			die("email querry mislukt");
		}
	}
	
	//If there are input validations, redirect back to the registration form
	if($errflag) {
		$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
		session_write_close();
		header("location: register-form.php");
		exit();
	}

	//Create INSERT query
	$qry = "INSERT INTO members(firstname, lastname, login, passwd, email) VALUES('$fname','$lname','$login','".md5($_POST['password'])."','$email')";
	$result = @mysql_query($qry);
    $ry = "INSERT gegevens(voornaam, achternaam, geslacht, email, telefoon, mobiel, straat, huisnummer, postcode, gebruikersnaam) VALUES('','','','','','','','','','$gebruikersnaam')";
	$result2 = @mysql_query($ry);
	
	
	//Check whether the query was successful or not
	if($result){
		if($result2){
			header("location: register-success.php");
		}else{
			echo "error";
		exit();
		}
	}else {
		die("Query 2 mislukt");
	}
?>
maar hij zegt registreren gelukt maar hij schrijft niet in database bij gegevens alleen achterin je naam want alleen je inlognaam moet daar komen want dat andere was dat je de rest kon verandere hoe doe ik dat?
 
Code:
INSERT gegevens

Je bent de into vergeten er voor te zetten.

dus het wordt.
Code:
INSERT INTO gegevens
 
Code:
<?php
    //Start sessie
    session_start();
    
    //include gegevens
    require_once('config.php');
    
    //erors
    $errmsg_arr = array();
    
    //zijn er erors?
    $errflag = false;
    
    //verbinden
    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
    if(!$link) {
        die('kan niet met server verbinden: ' . mysql_error());
    }
    
    //verbinding database
    $db = mysql_select_db(DB_DATABASE);
    if(!$db) {
        die("database bestaat niet");
    }
    
    //pak gegevens
    function clean($str) {
        $str = @trim($str);
        if(get_magic_quotes_gpc()) {
            $str = stripslashes($str);
        }
        return mysql_real_escape_string($str);
    }
    //naak varibles aan
    $voornaam = clean($_POST['voornaam']);
    $achternaam = clean($_POST['achternaam']);
    $geslacht = clean($_POST['geslacht']);
    $email = clean($_POST['email']);
    $telefoon = clean($_POST['telefoon']);
    $mobiel = clean($_POST['mobiel']);
    $straat = clean($_POST['straat']);  
    $huisnummer = clean($_POST['huisnummer']);
    $postcode = clean($_POST['postcode']);
    //niks ingevuld
    if($voornaam == '') {
        $errmsg_arr[] = 'voornaam wordt gemist';
        $errflag = true;
    }
    if($achternaam == '') {
        $errmsg_arr[] = 'achternaam wordt gemist';
        $errflag = true;
    }
    if($geslacht == '') {
        $errmsg_arr[] = 'geslacht wordt gemist';
        $errflag = true;
    }
    if($email == '') {
        $errmsg_arr[] = 'email wordt gemist';
        $errflag = true;
    }
    if($telefoon == '') {
        $errmsg_arr[] = 'telefoon wordt gemist';
        $errflag = true;
    }
    if($mobiel == ''){
        $errmsg_arr[] = 'mobiel wordt gemist';
        $errflag = true;
    }
    if($straat == ''){
        $errmsg_arr[] = 'straat wordt gemist';
        $errflag = true;
    }
    if($huisnummer == ''){
        $errmsg_arr[] = 'huisnummer wordt gemist';
        $errflag = true;
    }
    if($postcode == ''){
        $errmsg_arr[] = 'postcode wordt gemist';
        $errflag = true;
    }
    
    //error stuur terug naar gegevens.exec.php
    if($errflag) {
        $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
        session_write_close();
        header("location: gegevens-exec.php");
        exit();
    }
 
    //query
    $qry = "UPDATE gegevens
	SET voornaam='" . $voornaam . "',
	achternaam='" . $achternaam . "',
	geslacht='" . $geslacht . "',
	email='" . $email . "',
	telefoon='" . $telefoon . "',
	mobiel='" . $mobiel . "',
	straat='" . $straat . "',
	huisnummer='" . $huisnummer . "',
	postcode='" . $postcode . "' WHERE gebruikersnaam='" . $gebruikersnaam . "')";
    $result = @mysql_query($qry);
    
    //query controleren
    if($result) {
        header("location: verander-success.php");
        exit();
    }else {
        die("Query  mislukt");
    }
?>
 
ow ik had haakje ergens te veel :$

maar als ik heb geklikt op verandere dan staat er sucses vol veranderd maar in de database is niks veranderd :S
Knipsel.PNG
dit staat er alleen

martijn
 
Nergens in de code zie ik dat er een waarde wordt toegekend aan "$gebruikersnaam". Dus de query vind logischerwijs
ook helemaal geen match.
 
Alsnog dan neem ik aan dat $gebruikersnaam in de sessie is opgeslagen ? Dus moet je $_SESSION["gebruiksnaam"] aanroepen. Want als de
variabele niet op dezelfde pagina staat zal hij deze niet herkennen.
 
Ervan uitgaan dat je de gebruikersnaam m bij het inloggen hebt toegekend aan $_SESSION["gebruikersnaam"].
Dan voeg je het volgende aan je code toe.

Code:
$gebruikersnaam = $_SESSION["gebruikersnaam"]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan