/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
$php_self vil ikke virke....
Fra : Daniel Grau


Dato : 12-05-04 21:11

Hejsa alle mennesker...

Er nu begyndt på php-kapitlet her de sidste par måneder...

Har følgende form (til at oprette / opdatere bruger info i)...

Men når man klikker på submit knappen, så finder browseren en
anden side (blank side) som jo selvfølgelig ikke eksisterer...
Nogen der kan hjælpe med hvorfor den gør det, og ikke bliver på
samme side, og behandler bruger info'ene i php-koden neden
under...

Min form og php-kode til at smide info'erne i db'en:
---------------------------------------------------------
<form action=<?php $php_self ?> method="post">
<table>
<tr><td>Brugernavn:</td><td><?php print "
".$_SESSION["brugernavn"]." "; ?></td></tr>
<tr><td>Password:</td><td><input type="text" name="password"
id="t1" /></td></tr>
<tr><td>Navn:</td><td><input type="text" name="navn" id="t1"
/></td></tr>
<tr><td>By:</td><td><input type="text" name="by" id="t1"
/></td></tr>
<tr><td>Hjemmeside:</td><td><input type="text"
value="http://www." name="hjemmeside" id="t1" /></td></tr>
<tr><td>Mail:</td><td><input type="text" name="mail" id="t1"
/></td></tr>
<tr><td>Msn:</td><td><input type="text" name="msn" id="t1"
/></td></tr>
<tr><td valign="top">Fritekst:</td><td><textarea
name="beskrivelse" rows="12" cols="30"></textarea></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" name="opret"
value="Opdater"></td></tr>
</table>
</form>

//php koden der indsætter input felterne i db'en

<?php
} else {
require("config.php");

mysql_query("INSERT INTO users WHERE brugernavn =
'$_SESSION[brugernavn]' (password, navn, by, alder, hjemmeside,
mail, msn, beskrivelse)
values ('$password', '$navn', '$by', '$alder', '$hjemmeside',
'$mail', '$msn', '$beskrivelse')");
}
?>
---------------------------------------------------------


Håber nogen kunne hjælpe med dette problem

mvh
Daniel Grau

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Daniel Overby Hansen (12-05-2004)
Kommentar
Fra : Daniel Overby Hansen


Dato : 12-05-04 21:16

> <form action=<?php $php_self ?> method="post">

Brug $_SERVER["PHP_SELF"] i stedet.

- Daniel

Daniel Grau (12-05-2004)
Kommentar
Fra : Daniel Grau


Dato : 12-05-04 21:20

Daniel Overby Hansen wrote:
> Brug $_SERVER["PHP_SELF"] i stedet.

altså:

<form action=<?php $_SERVER["PHP_SELF"] ?> method="post"> ???

For den kan jeg heller ikke få til at virke :S

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Daniel Grau (12-05-2004)
Kommentar
Fra : Daniel Grau


Dato : 12-05-04 21:24

Aaaah... Fik det til at virke... :) Skulle jo bare beholde echo
:)

Tænkte på... Gider du (eller en anden) kigge på input felterne og
den tilhørende php kode der skal sende det hele til db'en...

Når man nu submitter, så indsætter den ikke noget i db'en... Og
der kommer ingen fejlmelding...

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kim Emax (12-05-2004)
Kommentar
Fra : Kim Emax


Dato : 12-05-04 22:43

In the news:40a287f5$0$3050$14726298@news.sunsite.dk,

> Tænkte på... Gider du (eller en anden) kigge på input felterne og
> den tilhørende php kode der skal sende det hele til db'en...
>
> Når man nu submitter, så indsætter den ikke noget i db'en... Og
> der kommer ingen fejlmelding...

du skal bruge $_REQUEST[password] i stedet for $password

f.eks $password = $_REQUEST[password]; osv.

--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
http://www.masterminds.dk - http://www.emax.dk



Daniel Grau (12-05-2004)
Kommentar
Fra : Daniel Grau


Dato : 12-05-04 23:04

Kim Emax wrote:
> du skal bruge $_REQUEST[password] i stedet for $password
>
> f.eks $password = $_REQUEST[password]; osv.
Hvor skal dette stå?

Har prøvet at gemme alle data'ene først ved:

$password = $_REQUEST[password];
$navn = $_REQUEST[navn];
$by = $_REQUEST[by];
$hjemmeside = $_REQUEST[hjemmeside];
$mail = $_REQUEST[mail];
$msn = $_REQUEST[msn];
$beskrivelse = $_REQUEST[beskrivelse];

Og dernæst:

mysql_query("UPDATE users WHERE brugernavn = '$_SESSION[brugernavn]'
(password, navn, by, alder, hjemmeside, mail, msn, beskrivelse)
values ('$password', '$navn', '$by', osv osv osv....)");
print "Dine bruger info er nu opdateret!";

Og det kunne jeg ikke få til at virke... har oss prøvet:

mysql_query("UPDATE users WHERE brugernavn = '$_SESSION[brugernavn]'
(password, navn, by, alder, hjemmeside, mail, msn, beskrivelse)
values ('$_REQUEST[password]', '$_REQUEST[navn]', '$_REQUEST[by]',
'$_REQUEST[alder]', '$_REQUEST[hjemmeside]', '$_REQUEST[mail]',
'$_REQUEST[msn]', '$_REQUEST[beskrivelse]')");
print "Dine bruger info er nu opdateret!";

Men det kan jeg heller ikke få til at virke... Er HELT på bar bund :S

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Ruben Hesselbæk (13-05-2004)
Kommentar
Fra : Ruben Hesselbæk


Dato : 13-05-04 09:13

Vil mene at den korrekte syntax må være

$query = "UPDATE users set password='$_REQUEST[password]',
navn='$_REQUEST[navn]', by='$_REQUEST[by]', alder='$_REQUEST[alder]',
hjemmeside='$_REQUEST[hjemmeside]', mail=$_REQUEST[mail]',
msn='$_REQUEST[msn]', beskrivelse='$_REQUEST[beskrivelse]' where
brugernavn='$_SESSION[brugernavn]')");


if(mysql_query($query)) {
print "Dine bruger info er nu opdateret!";
}
else {
print "Kunne ikke opdatere dine bruger info!<br>";
print "<b>Fejl : " . mysql_error().':'.mysql_errno();
}

/Ruben Hesselbæk


"Daniel Grau" <grau@graus.dk> wrote in message
news:40a29f66$0$3056$14726298@news.sunsite.dk...

> Kim Emax wrote:
> > du skal bruge $_REQUEST[password] i stedet for $password
> >
> > f.eks $password = $_REQUEST[password]; osv.
> Hvor skal dette stå?
>
> Har prøvet at gemme alle data'ene først ved:
>
> $password = $_REQUEST[password];
> $navn = $_REQUEST[navn];
> $by = $_REQUEST[by];
> $hjemmeside = $_REQUEST[hjemmeside];
> $mail = $_REQUEST[mail];
> $msn = $_REQUEST[msn];
> $beskrivelse = $_REQUEST[beskrivelse];
>
> Og dernæst:
>
> mysql_query("UPDATE users WHERE brugernavn = '$_SESSION[brugernavn]'
> (password, navn, by, alder, hjemmeside, mail, msn, beskrivelse)
> values ('$password', '$navn', '$by', osv osv osv....)");
> print "Dine bruger info er nu opdateret!";
>
> Og det kunne jeg ikke få til at virke... har oss prøvet:
>
> mysql_query("UPDATE users WHERE brugernavn = '$_SESSION[brugernavn]'
> (password, navn, by, alder, hjemmeside, mail, msn, beskrivelse)
> values ('$_REQUEST[password]', '$_REQUEST[navn]', '$_REQUEST[by]',
> '$_REQUEST[alder]', '$_REQUEST[hjemmeside]', '$_REQUEST[mail]',
> '$_REQUEST[msn]', '$_REQUEST[beskrivelse]')");
> print "Dine bruger info er nu opdateret!";
>
> Men det kan jeg heller ikke få til at virke... Er HELT på bar bund :S
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials



Daniel Grau (13-05-2004)
Kommentar
Fra : Daniel Grau


Dato : 13-05-04 16:31

Ruben Hesselbæk wrote:
> Vil mene at den korrekte syntax må være
>
> $query = "UPDATE users set password='$_REQUEST[password]',
> navn='$_REQUEST[navn]', by='$_REQUEST[by]', alder='$_REQUEST[alder]',
> hjemmeside='$_REQUEST[hjemmeside]', mail=$_REQUEST[mail]',
> msn='$_REQUEST[msn]', beskrivelse='$_REQUEST[beskrivelse]' where
> brugernavn='$_SESSION[brugernavn]')");

Hmm.. mangler der ikke et par paranteser et sted i starten??? Du slutter
af med to paranteser, men kan ikke lige se hvor de starter... Får nemlig
en fejl i den linie ".....brugernavn='$_SESSION[brugernavn]')");...."

> if(mysql_query($query)) {
> print "Dine bruger info er nu opdateret!";
> }
> else {
> print "Kunne ikke opdatere dine bruger info!<br>";
> print "<b>Fejl : " . mysql_error().':'.mysql_errno();
> }


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Daniel Grau (13-05-2004)
Kommentar
Fra : Daniel Grau


Dato : 13-05-04 16:45

Daniel Grau wrote:
> Ruben Hesselbæk wrote:
> > $query = "UPDATE users set password='$_REQUEST[password]',
> > navn='$_REQUEST[navn]', by='$_REQUEST[by]', alder='$_REQUEST[alder]',
> > hjemmeside='$_REQUEST[hjemmeside]', mail=$_REQUEST[mail]',
> > msn='$_REQUEST[msn]', beskrivelse='$_REQUEST[beskrivelse]' where
> > brugernavn='$_SESSION[brugernavn]')");

> Hmm.. mangler der ikke et par paranteser et sted i starten??? Du slutter
> af med to paranteser, men kan ikke lige se hvor de starter... Får nemlig
> en fejl i den linie ".....brugernavn='$_SESSION[brugernavn]')");...."

Fandt selv ud af det meste :P

Manglede en '}', og indsatte en parantes i starten... Så nu burde koden
virke... NÆSTEN DA...

Når jeg har indtastet et par brugerdata, og submitter, får jeg følgende
fejlmelding:

"Fejl : You have an error in your SQL syntax. Check the manual that
corresponds to your MySQL server version for the right syntax to use near
'by='', hjemmeside='http://www.', mail=', msn='', beskrivelse='':1064 "

Kan det være fordi at nogle felter er tomme??

Og i så fald, hvordan retter man så det, så den godt kan sende tomme data
til db'en??

Mvh
Daniel Grau

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Ruben Hesselbæk (14-05-2004)
Kommentar
Fra : Ruben Hesselbæk


Dato : 14-05-04 09:15

Der mangler vist et par plinger rundt omkring

$query = "UPDATE users set password='$_REQUEST[password]',
navn='$_REQUEST[navn]', by='$_REQUEST[by]', alder='$_REQUEST[alder]',
hjemmeside='$_REQUEST[hjemmeside]', mail='$_REQUEST[mail]',
msn='$_REQUEST[msn]', beskrivelse='$_REQUEST[beskrivelse]' where
brugernavn='$_SESSION[brugernavn]';

Det kan være fordi du bruger 'by' som kolonne, mener at by ikke må bruges da
man bruger det ord til at bestemmer hvordan den skal sortere et resultsæt.

/Ruben


"Daniel Grau" <grau@graus.dk> wrote in message
news:40a397f2$0$3046$14726298@news.sunsite.dk...
> Daniel Grau wrote:
> > Ruben Hesselbæk wrote:
> > > $query = "UPDATE users set password='$_REQUEST[password]',
> > > navn='$_REQUEST[navn]', by='$_REQUEST[by]', alder='$_REQUEST[alder]',
> > > hjemmeside='$_REQUEST[hjemmeside]', mail=$_REQUEST[mail]',
> > > msn='$_REQUEST[msn]', beskrivelse='$_REQUEST[beskrivelse]' where
> > > brugernavn='$_SESSION[brugernavn]')");
>
> > Hmm.. mangler der ikke et par paranteser et sted i starten??? Du slutter
> > af med to paranteser, men kan ikke lige se hvor de starter... Får nemlig
> > en fejl i den linie ".....brugernavn='$_SESSION[brugernavn]')");...."
>
> Fandt selv ud af det meste :P
>
> Manglede en '}', og indsatte en parantes i starten... Så nu burde koden
> virke... NÆSTEN DA...
>
> Når jeg har indtastet et par brugerdata, og submitter, får jeg følgende
> fejlmelding:
>
> "Fejl : You have an error in your SQL syntax. Check the manual that
> corresponds to your MySQL server version for the right syntax to use near
> 'by='', hjemmeside='http://www.', mail=', msn='', beskrivelse='':1064 "
>
> Kan det være fordi at nogle felter er tomme??
>
> Og i så fald, hvordan retter man så det, så den godt kan sende tomme data
> til db'en??
>
> Mvh
> Daniel Grau
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials



Jeppe Uhd (14-05-2004)
Kommentar
Fra : Jeppe Uhd


Dato : 14-05-04 09:32

Ruben Hesselbæk wrote:
> Der mangler vist et par plinger rundt omkring
>
> $query = "UPDATE users set password='$_REQUEST[password]',
> navn='$_REQUEST[navn]', by='$_REQUEST[by]', alder='$_REQUEST[alder]',
> hjemmeside='$_REQUEST[hjemmeside]', mail='$_REQUEST[mail]',
> msn='$_REQUEST[msn]', beskrivelse='$_REQUEST[beskrivelse]' where
> brugernavn='$_SESSION[brugernavn]';
>
> Det kan være fordi du bruger 'by' som kolonne, mener at by ikke må
> bruges da man bruger det ord til at bestemmer hvordan den skal
> sortere et resultsæt.

Jo, man må godt bruge reserverede ord, sålænge man placerer ` omkring dem:
`by`

--
MVH Jeppe Uhd - NX http://nx.dk
Webhosting for nørder og andet godtfolk



Daniel Grau (14-05-2004)
Kommentar
Fra : Daniel Grau


Dato : 14-05-04 16:51

> > Det kan være fordi du bruger 'by' som kolonne, mener at by ikke må
> > bruges da man bruger det ord til at bestemmer hvordan den skal
> > sortere et resultsæt.

Yeah.. Var LIGE netop det der var galt... :) Havde jeg slet slet ikke tænkt
over...

> Jo, man må godt bruge reserverede ord, sålænge man placerer ` omkring dem:
> `by`

Tak skal du ha, er så hermed ændret, og nu virker det :)

Tusind tak for hjælpen begge to!!!!!


Mvh
Daniel Grau

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste