![]() |
|
|
|||||||
| PHP Här diskuteras allt som har med scriptspråket PHP att göra. |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 2006-03-11
Ort: Sundsvall
Inlägg: 125
Lösningar: 0 |
Jag kan inte uppdatera databasen
Hej,
jag försöker skapa ett script som uppdaterar antal timmar man arbetat på ett projekt. Tyvärr så funkar inte det jag har skrivit. Kan någon tala om vad jag gjort för fel? Javascript-koden: Kod:
function redigeraTimmar()
{
a = xmlhttp.responseXML.documentElement.getElementsByTagName("projekt");
for (i=0;i<a.length;i++)
{
namnet = a[i].getElementsByTagName("namn");
kalle = namnet[0].firstChild.nodeValue;
if(kalle == info)
{
tiden = a[i].getElementsByTagName("antaltimmar");
hej = "<form name='form2' method='post' action='sparatimmar.php'>";
hej += "<label>Lägg till timmar:</label><br>";
hej += "<input id='namn' type='text' value='" + info + "' size='30'/>";
hej += "<input id='timmar' type='text' value='" + tiden[0].firstChild.nodeValue + "' size='30'/>";
hej += "<input id='send' type='submit' value='Lägg till timmar' /></form>";
document.getElementById('rightcontainer').innerHTML=hej;
}
}
}
PHP-kod:
__________________
Hindu philosophy: Life sucks, and then you die. And then life sucks again... |
|
|
|
|
|
#2 |
|
Medlem
Registrerad: 2003-06-25
Inlägg: 1 914
Lösningar: 71 |
du har inget name-attribut i dina input-taggar.
t.ex HTML-kod:
<input id='namn' name='namn' type='text' value='" + info + "' size='30'/>";
|
|
|
|
|
|
#3 |
|
Moderator
Marsvin Registrerad: 2000-06-30
Ort: Nyköping
Inlägg: 26 816
Lösningar: 3130 |
Och:
1) Du ska inte ha apostrofer runt fältnamnen i SQL-frågan. 2) Du får inte in värdena i SQL-frågan som du har det nu. Jag hade gjort så här: PHP-kod:
mvh |
|
|
|
|
|
#4 |
|
Medlem
Registrerad: 2006-03-11
Ort: Sundsvall
Inlägg: 125
Lösningar: 0 |
Tack, änglar! Nu funkar det!
__________________
Hindu philosophy: Life sucks, and then you die. And then life sucks again... Senast redigerad av PollyJuice, 2012-05-10 klockan 13:53 |
|
|
|
|
|
#5 |
|
Moderator
Marsvin Registrerad: 2000-06-30
Ort: Nyköping
Inlägg: 26 816
Lösningar: 3130 |
Skriv ut SQL-frågan så du kan se om det är något knas med värdena. Senast redigerad av @nders, 2012-05-10 klockan 14:01 |
|
|
|
|
|
#6 |
|
Medlem
Registrerad: 2007-03-12
Ort: Kokkola, Finland
Inlägg: 696
Lösningar: 34 |
Jag hade skrivit SQL-frågan så här.
PHP-kod:
Om du använder enkla citationstecken ('), apostrofer, så tolkas strängen inte utan strängen skickas som den är, med variabelnamnen istället för innehållet.
__________________
http://tumba25.net |
|
|
|
|
|
#7 |
|
Moderator
Marsvin Registrerad: 2000-06-30
Ort: Nyköping
Inlägg: 26 816
Lösningar: 3130 |
Bra där, drew. Jag kan inte php egentligen - jag bara fuskar.
|
|
|
|
|
|
#8 |
|
Forumvärd
Registrerad: 2003-08-26
Inlägg: 7 469
Lösningar: 645 |
PHP-kod:
Kontrollera utöver det att $timmarna är ett nummer, och be användaren fylla i ett annat värde annars.
__________________
Gameboy Genius - Foto: Gatukonst och elektronikporr Internklippning: 1) Snaggning av fångar. 2) Klippning frisörer emellan. |
|
|
|
|
|
#9 |
|
Medlem
Registrerad: 2006-03-11
Ort: Sundsvall
Inlägg: 125
Lösningar: 0 |
Kan man skriva
$namnet= mysql_real_escape_string($_POST['namn']); ? Jag har inte tänkt på säkerhetsfrågorna överhuvudtaget, men det skulle definitivt kunna knuffa upp mitt betyg.
__________________
Hindu philosophy: Life sucks, and then you die. And then life sucks again... |
|
|
|
|
|
#10 |
|
Medlem
Registrerad: 2007-03-12
Ort: Kokkola, Finland
Inlägg: 696
Lösningar: 34 |
Man ska inte köra mysql_real_escape_string() på fält som ska innehålla nummer. Man ska använda intval() om det är ett heltal eller floatval() om den har decimaler.
Enkelfnuttar runt tal kan ge felmess från databasen eller hela frågan kan ignoreras. Sätt inte fnuttar runt tal, försäkra dig om att det verkigen är siffror istället. Säkerheten är mycket viktig, frågan är inte om någon försöker hacka sig in utan när det händer.
__________________
http://tumba25.net |
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|