Der Martin: Problem mit SESSIONS

Beitrag lesen

Hallo,

'forename'

autsch, das tut weh beim Lesen.

Meintest du 'Vorname'? Die richtige englische Bezeichnung ist 'first name', seltener auch 'christian name'. Als Feldbezeichner würde ich das Leerzeichen meiden und 'firstname' schreiben.
Dagegen ist 'surname' zwar im Prinzip richtig; gebräuchlicher ist aber 'last name'.

echo $_SESSION['forename']; //Gibt den richtigen Wert an
    $sql = "INSERT INTO user (type, foa, title, forename, surname, mail, street, zip, city, phone, mobile, username, password)
            VALUES
  ('".addslashes(trim($_SESSION['type']))."',
   '".addslashes(trim($_SESSION['foa']))."',
   '".addslashes(trim($_SESSION['title']))."',
   '".addslashes(trim($_SESSION['forename']))."',
   '".addslashes(trim($_SESSION['surname']))."',
   '".addslashes(trim($_SESSION['mail']))."',
   '".addslashes(trim($_SESSION['street']))."',
   '".addslashes(trim($_SESSION['zip']))."',
   '".addslashes(trim($_SESSION['city']))."',
   '".addslashes(trim($_SESSION['phone']))."',
   '".addslashes(trim($_SESSION['mobile']))."',
   '".addslashes(trim($_SESSION['username']))."',
   '".addslashes(trim($_SESSION['password']))."'
  )
           ";

Dass addslashes() hier Unsinn ist, wurde dir ja schon gesagt. Unabhängig davon kann man solche Bandwürmer eleganter mit sprintf() schreiben. Dann spart man sich -zig Anführungszeichen und Stringverkettungspunkte.

...in der Tabelle steht dann forename = 0
warum das?

Vielleicht weil $_SESSION['forename'] durch addslashes() verstümmelt wurde? Hast du dir den SQL-Query mal genau angesehen, nachdem er zusammengebaut ist?

Ciao,
 Martin

--
Ein Patriot ist jemand, der bereit ist, sein Land gegen seine Regierung zu verteidigen.