Hallo allemaal ik ben nieuw in php en mysql en ik rommel wat aan.
Ik ben nu een registratie formulier aan het maken maar me query die naar de DB moet schrijven krijgt de volgende error:
"Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\Game\includes\register.php on line 141"

Dit slaat dus op mijn query en deze is:

$DB->debug("INSERT INTO `characters` (username, race, gender, age, description) VALUES ($_POST['char_usename'], $_POST['char_race'], $_POST['char_gender'], $_POST['char_age'], $_POST['char_desc'])");

$DB->debug("INSERT INTO `game_users` (username, password, mail) VALUES ($_POST[username], $_POST[pass_2], $_POST[mail_2])");

als iemand me kan helpen ben ik hier super blij mee. Wat ik ongeveer er van snap is dat hij denkt dat er nog gegevens voor de post char_name staan en die zijn niet ingevuld.

Alvast bedankt,
Frits
Zet eens bovenaan je script:

<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
	echo '<pre>';
	print_r ($_POST);
	echo '</pre>';
    }
?>

Wat zie je dan precies?
[edit]En voer je query eens zo uit:[/edit]

<?php
	$sql = "
	// hier je query
	";
	if (!mysql_query ($sql)) {
		echo '<pre>';
		echo htmlentities (str_replace ("\t", '', $sql));
		echo '</pre>';
		trigger_error (mysql_error ());
		
	}
?>

[edit]En is characters geen reserved word in MySQL? Probeer eens een andere tabelnaam.[/edit]

Array
(
    [username] => test
    [pass_1] => test
    [pass_2] => test
    [mail_1] => test
    [mail_2] => test
    [char_username] => test
    [char_gender] => radiobutton
    [char_age] => test
    [char_race] => Human
    [char_desc] => 
    [Done] => Done
)


dit is wat ik kreeg


Warning: mysql_query(): Can't connect to local MySQL server through socket '/usr/local/mysql-5.0/data/mysql.sock' (2) in /home/content/s/e/r/servyces/html/test/Game/includes/register.php on line 159

Warning: mysql_query(): A link to the server could not be established in /home/content/s/e/r/servyces/html/test/Game/includes/register.php on line 159

INSERT INTO 'characters' (
username, 
race, 
gender, 
age, 
description) 
VALUES 
(' ',
'Human',
'radiobutton',
'19',
'testtest')


Notice: Can't connect to local MySQL server through socket '/usr/local/mysql-5.0/data/mysql.sock' (2) in /home/content/s/e/r/servyces/html/test/Game/includes/register.php on line 163


dit krijg ik met het 2de. hij ken zo te zien door de normale functie niet zie hoe die kan connecte. maar dit maakt niet uit is zo op te lossen. de echte fout zit em hier:


VALUES 
(' ',
'Human',
'radiobutton',
'19',
'testtest')


hoe krijg ik dit opgelost. Ik kom er echt niet uit.
Hallo mensen ik ben al een stuk verder gekomen. Maar ik krijg nu deze error.


Executing query: INSERT INTO game_users ( username, password, mail) VALUES ('test1', 'test', 'test')
Executing query: INSERT INTO game_chars ( username, race, gender, age, description) VALUES ('', 'human', 'male', '19', 'testtest')
Query error in query: INSERT INTO game_chars ( username, race, gender, age, description) VALUES ('', 'human', 'male', '19', 'testtest') --> Duplicate entry '0' for key 1


de eerste insert zie ik wel in de database dus die gaat nu goed maar de 2de nog niet het heeft iets met die char_username te maken maar de post stuurt het wel gewoon goed dus ik snap niet wat er nu fout aan is.

Dit is de query nu

			$DB->debug("INSERT INTO game_users (
			username, 
			password, 
			mail) 
			VALUES 
			('" . $_POST['username'] . "',
			'" . $_POST['pass_2'] . "',
			'" . $_POST['mail_2'] . "')");
			
			$DB->debug("INSERT INTO game_chars (
			username, 
			race, 
			gender, 
			age, 
			description) 
			VALUES 
			('" . $_POST['char_usename'] . "',
			'" . $_POST['char_race'] . "',
			'" . $_POST['char_gender'] . "',
			'" . $_POST['char_age'] . "',
			'" . $_POST['char_desc'] . "')");	

alvast bedankt
Je hebt twee keer dezelfde username, blijkbaar heb je dit als primary key ingesteld. Weet je zeker dat $_POST['username'] een waarde heeft?
ja want die geeft geen error maar zal ik je heel erg bedanken want omdat je dit heb gezegd zie ik ineens de fout

'" . $_POST['char_usename'] . moet char_username zijn :P

sorry mensen het werkt al weer gehehe allemaal heel erg bedankt en ook voor de tip over het sql injectie daar zal ik ook nog aan werken

Reageren