Opdaterer MySQL med PHP og SESSION

Tags:    mysql php session forms

Hej,

Jeg er ved at lave en side hvor brugeren logger ind med et bruger navn og password på en login side. Derefter bliver brugernavnet gemt og brugt i en "session" til at hente de rette informationer ud fra databasen. Når man er logget ind er der en side hvor man kan ændre sine oplysninger, men jeg kan ikke for formen til at opdaterer databasen. PHP koden forbinder fint til databasen og henter de rigtige informationer ud, men jeg kan bare ikke lige få formen til at gemme de ændrede informationer.

Her er koden jeg har lavet:
Fold kodeboks ind/udPHP kode 




6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
har du 2 connections i connect.php ?? (mysql og mysqli)
filen check.php anvender du mysqli (det forbedret API)
filen du visser i spm er i mysql (det gamle API)
har du slået error_reporting og display error til og for du nogle fejl meldinger.


jeg har her kort oversat dit program til mysqli, rettet lidt syntax i din sql, og indsat debugheader.php, og nogle test, som du bedes svare på, hvis det ikke virker

(utested)
Fold kodeboks ind/udKode 


debugheader.php
Fold kodeboks ind/udKode 


ref http://www.computerworld.dk/eksperten/spm/1012488?k=8231155
kan du via dette tool convaterer fra mysql til mysqli procedural style, nutiden og fremtiden er OOP style, men det er en start.
https://github.com/philip/MySQLConverterTool
jeg har prøvet det kort, coden bliver ikke helt køn, men det virker.




prøv at sætte or die(mysqli_error($db)); på dine query'es
mysqli_query($db, $sql) or die(mysqli_error($db));


se fejl besked fra mysqli_error($db)


denne
Fold kodeboks ind/udKode 

skal være dette
Fold kodeboks ind/udKode 

den skal jo vide hvilke tabel den skal updatere :)


generalt er det svært at hjælpe uden fejl beskeder


samlet ser den nu sådan ud
Fold kodeboks ind/udKode 





hvor har du session_start ??
har du prøvet at udskrive $_SESSION


er du sikkker på at dette retunerer noget
// select loggedin users detail
$res=mysql_query("SELECT * FROM websites WHERE username='$_SESSION[username]'");
$userRow=mysql_fetch_array($res);
$id=$userRow['username'];


prøv at udskrive arrayet $userRow

ville gerne teste din code, men jeg anvender PHP7 og der er det gamle mysql API fjernet.
brug mysqli eller PDO.




Hej,

Jeps session_start start ligger i filen check.php:
Fold kodeboks ind/udPHP kode 

Så den skulle være på plads. Filen check.php ser så ledes ud:
Fold kodeboks ind/udPHP kode 


Det henter alt info ud fra databasen som jeg beder om (username, password, name, age, country), det eneste er bare at jeg kan ikke få scriptet til opdaterer databasen med de nye info fx hvis jeg ændre password eller andet. Så scriptet inter de korrekte info ud men jeg kan ikke få den til at gemme det når jeg opdaterer noget.

Kan du have noget at gøre med sessionen ikke har informationerne i sig, eller de ikke bliver behandlet rigtig i scriptet?



Tak for svar :)

Jeg har leget lidt med det de sidste timer, men uden held :/

Når jeg bruger dine koder for jeg følgende besked når jeg loader update siden (her er der ingen fejl vel???):
Fold kodeboks ind/udPHP kode 




Når jeg så ønsker at tilføje teksten "TEST" i feltet name og klikker submit får jeg beskeden:
Fold kodeboks ind/udPHP kode 


Det mærkelige er at siden der loades viser name som: "Kira Sorensen TEST", men det er ikke gemt i databasen. Hvad dælen er det der går galt???




Perfekt - det virker - 1000 TAK for hjælpen ;)



t