Zo, daar was ik weer, maar omdat het aanpassen moeilijk was, besloot ik maar gewoon uit niets te beginnen, want dat gaat beter werken en dan leer ik er meer van dan alleen van copy-pasten.

Ik heb dus effe heel simpel een formulier gemaakt met naam, pass, en e-mailadres
Nu heb ik een DB gemaakt, met een table 'users' erin. Hier is ook, al een onderverdeling van
*id (met auto_increment)
*name
*pass
*email

Dus, dat zit ook wel goed.
Nu krijg ik alleen een fout,

Parse error: syntax error, unexpected T_VARIABLE in /home/***/domains/***.nl/public_html/tt/register.inc.php on line 4

En het betreft de onderstaande regel.
$sql = "INSERT INTO users (name,pass,email) VALUES ('$name','$email','$pass')";

Hier pastie van het complete 'script'
http://pastebin.com/vCTdihhD


Wat waarschijnlijk wel niet zal werken, omdat ik voor mn gevoel heel veel zal missen, maar dat kan ook wanhoop zijn :P

Mvg.
Je moet niet in je insert syntax gewoon $name of $email plaatsen?

Het moet zijn:
$_POST['name']
$_POST['password']
$_POST['email']

Natuurlijk kan je ze ook omvormen:
$name = "$_POST['name']"
$password = "$_POST['password']"
$email = "$_POST['email']"

Ook zou ik aan raden om mysql_real_escape_string te gebruiken.
Dit is tegen SQL - Injection.
Meer informatie vind je op google.

Hier een voorbeeld:
'".mysql_real_escape_string($_POST['name'])."'

Dit plaats je ook in je value!
okayokayokay :P

Nu ga je meteen met 'moeilijke' woorden gooien.
Even om het op een rijtje te zetten voor mezelf.

Insert Syntax, dat is "INSERT INTO users (name,pass,email)" dit stukje?
En dat stukje mysql_real_escape_string, daar had ik al wel is van gehoord, maar waar en hoe pas je dat toe?

Ik ben een complete newb in php, en moet de beginselen nog leren. Ken wel wat commando's, maar ik heb al moeite met het posten van informatie in een SQL database!

Kan je een voorbeeldje maken van hoe het eruit moet zien, en misschien uitleggen waarom je wat gebruik? :$

Thanks!
je sluit je require niet af op regel 4. (regel 18 @pastebin)
<?php
$sql = "INSERT INTO users // Zo heet de tabel
(name, pass, email) // Hier geef je aan welke rijen
VALUES
(
'".mysql_real_escape_string($_POST['name'])."' // In je html input veld heb je name staan, dit vul je dan in. Je gebruikt hiervoor een POST-Variable
'".mysql_real_escape_string($_POST['password'])."'
'".mysql_real_escape_string($_POST['email'])."'
)
";
?>

Iedereen is zo begonnen met php.
Ik heb een simpel voorbeeldje gemaakt.

Vragen zijn welkom.
Dem Ian, heldt met dt omdat dat meer episch staat.

Danku zeer vriendelijk, dit verduidelijkt al heel veel voor mij :D

Het scriptje werkt nu ook, alleen schrijft nog niet in de database, waarom weet ik niet, want ik krijg, nadat ik op submit druk, meteen "Er is wat fout gegaan bij de registratie, Probeer opnieuw!" te zien.

Verder heb ik gecontroleerd of de variablen bij de $_POST command overeen kwamen met die uit het html form, en die zijn correct. Ook de table/column's kloppen.

Hoe kan het komen dat ik een foutmelding krijg?
Post eens heel je script wat je nu al hebt hierheen.
Dan kunnen we ernaar kijken.
Djurre, ik wil je eerst even doorverwijzen naar dit topic:
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/

Op dit topic laten ze je simpel zien hoe je veilig! gegevens in je database kan proppen of oproepen.

Er is ook een foutafhandeling, goede query en meer!

Als ik bovenstaande link toepas op je script dan werkt het wel.
Wat ik denk waar het aan licht, is je query. Ik weet het ook niet zeker.


<?php
# We zetten dit volledig bovenaan

    # errors weergeven
    ini_set('display_errors',1); // 1 == aan , 0 == uit
    error_reporting(E_ALL | E_STRICT);

    # sql debug
    define('DEBUG_MODE',true);  // true == aan, false == uit

    # functie voor sql debug
    function showSQLError($sql,$error,$text='Error')
    {
        if (DEBUG_MODE)
        {
            return  '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
        }
        else
        {
            return $text;
        }
    }  



# zet dit waar je query moet

# de query | bij input: let op sql-injectie -> mysql_real_escape_string()
include "../config.php";
 
$sql_insert_user =    "INSERT INTO users (name, pass, email)
                       VALUES    (
                                  '".mysql_real_escape_string($_POST['name'])."',    
                                  '".mysql_real_escape_string($_POST['password'])."',
                                  '".mysql_real_escape_string($_POST['email'])."'
                                 )
                      ";

#  Check of query is gelukt    
if (($result_insert_user = mysql_query($sql_insert_user)) === false)
{
    # als de query fout is -> foutafhandeling
    echo showSQLError($sql_insert_user,mysql_error(),'Fout bij het registeren.');
}
else
{
    # De query is geluk! :)
    
    echo 'Gebruiker is succesvol toegevoegt!';
}
?>


Wat je zeker nog moet voor kijken:

- Is het emailadres juist? Zit er een @ teken in en meer...

- Je wachtwoord met md5 opslaan.
- Kijken of gebruikersnaam niet twee keer in je database bestaat.
- Kijken of je gebruikersnaam en wachtwoord en emailadres niet leeg is.
- M.a.w. kijken of alles ingevuld is.

- Gebruikersnaam moet langer dan 4 tekens zijn bijvoorbeeld
- Wachtworod moet langer dan 6 tekens zijn bijvoorbeeld

Misschien ook een activatiecode maken? Waarbij het account geactiveerd wordt als je op de link drukt in je postvak in?

Mvg
Dem
Wachtwoord met md5 opslaan? Ik zou toch eerder het volgende doen:
<?php

# Wachtwoord en salt:
$password = 'Kikker123';
$salt = 'Ac86yt5D';

# Het wachtwoord veilig maken:
$password_safe = hash('sha512', $salt.$password);

echo $password_safe;

?>

Reageren