Formular til opdatering af database

Tags:    php mysql

<< < 12 > >>
Hvordan kan jeg omskrive denne til php?

Fold kodeboks ind/udPHP kode 




13 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 27 karma
Sorter efter stemmer Sorter efter dato
i asp
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

svare ca til
i PHP
if(isset($_POST)){

}

i asp
rs.update
rs("password") = Request.form("password")
rs("stutteri") = Request.form("stutteri")

i php
$sql ="UPDATE mintabel SET password=$_POST['password'], stutteri=$_POST['stutteri'] WHERE id=$id";

i din form skal du rette alle dine
value="<%=RS("brugernavn")%>"
til
value="<php echo $brugernavn; ?>"




Prøv at ændre din kode til dette:

Fold kodeboks ind/udPHP kode 


Og hvis du vil se fejl, kan det være du skal slå error reporting til som f.eks.:

Fold kodeboks ind/udPHP kode 


Og hvis dine fejl ikke vises derefter, kan det være at visning af fejl er slået fra, hvilket du kan slå til således:

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 11.07.2013 14:09 af Bruger #15668
Du kan også smide en error bagpå din query.

Fold kodeboks ind/udKode 


Ud over det vil jeg kraftigt anbefale dig at køre diverse tjek på din POST, med mindre du stoler rigtig meget på dine brugere og de stoler på dig - siden deres kodeord er tekstbaseret.

$_POST som f.eks tlf kan du køre igennem is_numeric() - et telefon nummer består jo typisk kun af tal, ligeledes med alder og postnummer.

Alder kan du sætte max og min på, der er jo ikke nogle som er over 100 år.

Du bør lave en masse sikkerhed.



Indlæg senest redigeret d. 12.07.2013 08:44 af Bruger #17610
har du tænkt over dette navn ??
<input type="text" value="<?php echo $brugernavn; ?>" name="text" class="bottom" disabled>

jeg vil omdøbe name="text" til feks username da text også er en type
og jeg vil tilføje en collonne der hedder id, da et brugernavn på sigt kan ændres
hvis brugernavn er en email addresse kan den ændres over år
hvis det er initialer (fornavn efternavn), folk skifter ægteskabelig status, og ændre efternavn, går til numerolog og staver navne anderledes

og denne tabel relaterer vel til andrer tabeller, og der er id oplagt

hvordan danner du dit resultat set ?? (som Dan også spurgte om)
det må jo være ud fra noget "select * FROM tabel where username=$brugernavn" , dette output er jo grunddata til dine input felter, som du så retter og sender til update

er det kun danske stutterier du har ??
hvis det er skal city ud i en seperat tabel

kan et telefon nummer indeholde lande kode feks (+45) 12345678 ??


mysql_real_escape_string($_SESSION['brugernavn'])

her der det vist ikke nødvendigt at bruge mysql_real_escape_string, da session sættes ud fra data der hentes i databasen
et alternativ er i mysqli og PDO kan du anvende Prepared Statements her er en lille guide i MySQLI - kom igang


siden deres kodeord er tekstbaseret.

disse bør selvføgelig være hash'et


Du bør lave en masse sikkerhed.

hent enig, men i første omgang KISS, når det er sagt, alle input felter du anvender skal valideres, stol aldrig på dine brugere


Der må være en eller anden fejl heri?

står der det i din sql som du forvendter, og bliver den udført ??

NB: du bør omskrive hele din HTML, tabeller er til tabulære data ikke design
NBB: kom du væk fra det gamle mysql API, ellers skal du lave hele coden om om ca 2½ år, da mysql api'et bliver fjernet i kommende vertioner af PHP, du får nu i php ver 5.5 en advarsel når du bruge det





Er det meningen at denne kode skal virke som den er lavet?

ja.
dog skal denne linje
Fold kodeboks ind/udKode 

være
Fold kodeboks ind/udKode 

include_once eller slettes helt, da det ikke er afgørende at filen findes

hvilke fejl får du ??


require: smider en fejl og stopper indlæsningen, hvis filen mangler
include: smider bare en advarsel og forsætter indlæsningen, og du vil først får en fejl når du anvender noget af det der står i include filen
_once: tester om filen er includeren 1 gang, og er den includeret, bliver den ikke includeret igen

http://php.net/manual/en/function.require.php
http://php.net/manual/en/function.include.php
http://php.net/manual/en/function.require-once.php
http://php.net/manual/en/function.include-once.php

$brugernavn=$_SESSION['brugernavn'];
// $brugernavn="ronols";



hvor bruger du dit recordset henne ?



Det gør jeg jo på en side hvor jeg har en formular
Fold kodeboks ind/udPHP kode 






i asp
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

svare ca til
i PHP
if(isset($_POST)){

}

i asp
rs.update
rs("password") = Request.form("password")
rs("stutteri") = Request.form("stutteri")

i php
$sql ="UPDATE mintabel SET password=$_POST['password'], stutteri=$_POST['stutteri'] WHERE id=$id";

i din form skal du rette alle dine
value="<%=RS("brugernavn")%>"
til
value="<php echo $brugernavn; ?>"


Jeg kan ikke få den til at fungere. Får bare en blank side, og kan heller ikke få den ti at skrive fejl ud.

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 11.07.2013 10:07 af Bruger #17644
Jeg får stadig bare en blank side.

Fold kodeboks ind/udPHP kode 


Der må være en eller anden fejl heri?



har du tænkt over dette navn ??
<input type="text" value="<?php echo $brugernavn; ?>" name="text" class="bottom" disabled>

Ja det var en lille fejl, der skal selvf. stå brugernavn

jeg vil omdøbe name="text" til feks username da text også er en type
og jeg vil tilføje en collonne der hedder id, da et brugernavn på sigt kan ændres
hvis brugernavn er en email addresse kan den ændres over år
hvis det er initialer (fornavn efternavn), folk skifter ægteskabelig status, og ændre efternavn, går til numerolog og staver navne anderledes

og denne tabel relaterer vel til andrer tabeller, og der er id oplagt

Der er også et id. Her har jeg bare ikke lige brugt det

hvordan danner du dit resultat set ?? (som Dan også spurgte om)
det må jo være ud fra noget "select * FROM tabel where username=$brugernavn" , dette output er jo grunddata til dine input felter, som du så retter og sender til update

Ja jeg henter brugernavn fra en session og det fungere helt fint


er det kun danske stutterier du har ??
hvis det er skal city ud i en seperat tabel

nej der er også udenlandske

kan et telefon nummer indeholde lande kode feks (+45) 12345678 ??

det kan det vel godt


mysql_real_escape_string($_SESSION['brugernavn'])

her der det vist ikke nødvendigt at bruge mysql_real_escape_string, da session sættes ud fra data der hentes i databasen
et alternativ er i mysqli og PDO kan du anvende Prepared Statements her er en lille guide i MySQLI - kom igang



siden deres kodeord er tekstbaseret.

disse bør selvføgelig være hash'et


Du bør lave en masse sikkerhed.

hent enig, men i første omgang KISS, når det er sagt, alle input felter du anvender skal valideres, stol aldrig på dine brugere

Det må jeg have læst op på


Der må være en eller anden fejl heri?

står der det i din sql som du forvendter, og bliver den udført ??

Altså før jeg indsætter min update del, så fungere siden helt som den skal.
Når jeg indsætter:
Fold kodeboks ind/udPHP kode 

Så får jeg en blank side og jeg kan ikke få den til at skrive fejl ud uanset hvad jeg forsøger at bruge af metoder hertil.

NB: du bør omskrive hele din HTML, tabeller er til tabulære data ikke design

Det fungere nu fint nok med tabeller synes jeg

NBB: kom du væk fra det gamle mysql API, ellers skal du lave hele coden om om ca 2½ år, da mysql api'et bliver fjernet i kommende vertioner af PHP, du får nu i php ver 5.5 en advarsel når du bruge det

jeg har ikke fået læst mig frem til hvad forskellene er og hvad det betyder. Er det "bare" typen af kode der bruges i forbindelse med åbning af databaser og udtræk herfra??

Hvis jeg laver min Connect.php som:
Fold kodeboks ind/udPHP kode 

Så får jeg fejl.










Indlæg senest redigeret d. 12.07.2013 12:22 af Bruger #17644
<< < 12 > >>
t