Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  8 742
Sitter her med et lite problem nå. Driver på med et simpelt system for å registrere timelistene mine på nett, da jeg ikke alltid er tilgjengelig på kontor der timelistene på papir må signeres.

Men tilbake til problemet, hver eneste gang jeg poster data i databasen, så går det ut som enten ingenting, 00.00, eller 00:00.


Slik ser det da ut i PHPmyadmin

http://bildr.no/thumb/1036470.jpeg

Slik ser det ut på selve nettsiden

http://bildr.no/thumb/1036472.jpeg


phpkoden:

Kode

$sql="INSERT INTO Timelister (Fornavn, Etternavn, Mandag1, Mandag2, Tirsdag1, Tirsdag2, Onsdag1, Onsdag2, Torsdag1, Torsdag2, Fredag1, Fredag2,  Lørdag1, Lørdag2, Søndag1, Søndag2)
VALUES
('$_POST[fornavn]','$_POST[etternavn]','$_POST[Mandag1]','$_POST[Mandag2]','$_POST[Tirsdag1]','$_POST[Tirsdag2]','$_POST[Onsdag1]','$_POST[Onsdag2]','$_POST[Torsdag1]','$_POST[Torsdag2]','$_POST[Fredag1]','$_POST[Fredag2]','$_POST[Lørdag1]','$_POST[Lørdag2]','$_POST[Søndag1]','$_POST[Søndag2]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "Timelister registerert";

mysql_close($con)
?>
(over der er det selvfølgelig kode for å koble til databasen, men den funker, så det er irrelevant..

Noen som kan hjelpe meg?
skriv ut spørringen på skjermen, er den slik du tror den skal være?
altså skriv ut stringen som ligger lagret i "$sql", hva er den? Er den akkurat det du forventer den skal være?
Jente (12)
sh0rtie's Avatar
Trådstarter
Sitat av etse Vis innlegg
skriv ut spørringen på skjermen, er den slik du tror den skal være?
altså skriv ut stringen som ligger lagret i "$sql", hva er den? Er den akkurat det du forventer den skal være?
Vis hele sitatet...

Da fikk jeg

Kode

INSERT INTO Timelister (Fornavn, Etternavn, Mandag1, Mandag2, Tirsdag1, Tirsdag2, Onsdag1, Onsdag2, Torsdag1, Torsdag2, Fredag1, Fredag2, Lørdag1, Lørdag2, Søndag1, Søndag2) VALUES ('Simen','','','','','','','','','','','','','','','')
Men, jeg forstår liksom ikke hvorfor. Laster også opp koden til formen i forkant av koden i førstepost.

Kode

<html>
<body>

<form action="register_timelist.php" method="post">
Fornavn: <input type="text" name="fornavn" />       Etternavn: <input type="text" name="etternavn" />
<br>
<br>

Uke: <input type="text" name="ukenr" />

<br>
<br>
Mandag - Fra: <input type="text" name="mandag1" /> til <input
type="text" name="mandag2" />
<br>
Tirsdag - Fra: <input type="text" name="tirsdag1" /> til <input
type="text" name="tirsdag2" />
<br>
Onsdag - Fra: <input type="text" name="onsdag1" /> til <input
type="text" name="onsdag2" />
<br>
Torsdag - Fra: <input type="text" name="torsdag1" /> til <input
type="text" name="torsdag2" />
<br>
Fredag - Fra: <input type="text" name="fredag1" /> til <input
type="text" name="fredag2" />
<br>
Lørdag - Fra: <input type="text" name="lørdag1" /> til <input
type="text" name="lørdag2" />
<br>
Søndag - Fra: <input type="text" name="søndag1" /> til <input
type="text" name="søndag2" />
<br>



<input type="submit" />
</form>

</body>
</html>
sto forbakstav i variabelnavnene i den ene delen av koden, og liten bokstav den andre plassen.

prøv print_f $_POST
Sist endret av etse; 27. november 2011 kl. 01:55.
Jente (12)
sh0rtie's Avatar
Trådstarter
Sitat av etse Vis innlegg
sto forbakstav i variabelnavnene i den ene delen av koden, og liten bokstav den andre plassen.
Vis hele sitatet...
De er case sensitive, ja.. Vellvell, takk til deg. kp +!
Har du vurdert hva som skjer om jeg på mandag jobbet fra klokken 09:00:00 til '); DELETE FROM Timelister; --?

Kan være greit å validere input før du putter det i databasen. Selvom dette kanskje er et lukket system for deg er det greit å gjøre det til en vane å alltid tette sikkerhetshull.
Jente (12)
sh0rtie's Avatar
Trådstarter
Sitat av ma10as Vis innlegg
Har du vurdert hva som skjer om jeg på mandag jobbet fra klokken 09:00:00 til '); DELETE FROM Timelister; --?

Kan være greit å validere input før du putter det i databasen. Selvom dette kanskje er et lukket system for deg er det greit å gjøre det til en vane å alltid tette sikkerhetshull.
Vis hele sitatet...
Tetter selvfølgelig det som standard, men foreløpig er dette noe jeg bare slang opp for meg selv, men da jeg vurderer å gjøre dette tilgjengelig for hele firmaet, så er det lurt ja
z0p
uʍop ǝpısdn
z0p's Avatar
PHP parseren blir vel litt forvirret av hvordan du du legger en array verdi i en dobbel-quote streng.
Du må bruke klammer om du vil gjøre det på den måten.

eks:

Kode

$sql = "INSERT INTO Table (one) VALUES ('{$_POST['bla']}')";
en annen løsning er f.eks:

Kode

$sql = sprintf("INSERT INTO Table (one) VALUES ('%s')", 
               mysql_real_escape_string($_POST['bla']));
Litt vanskelig å ikke kommentere ditt valg av databasedesign.
Det er ikke nødvendigvis enklere å velge en tilsynelatende enkel løsning.
Det kan også legge en del begrensninger for videreutvikling av applikasjonen.

Kode

 Timeliste
--------------
 ansatt_id      INTEGER -- ansatt kan kun ha en oppføring per dato
 dato           DATE    -- ergo vil dato+ansatt være en unik nøkkel
 start          TIME -- default til 00:00, så start-slutt diff. er 00:00 dersom ikke satt
 slutt          TIME -- sjekk at alltid større eller lik start
 kommentar      TEXT -- kommentar til evt. fravær
 timefratrekk   INTEGER -- kan ikke være større enn diff. start-slutt

 Ansatt
--------------
 ansatt_id      INTEGER -- auto incremented pk
 fornavn        TEXT -- required
 etternavn      TEXT -- required
Designet ovenfor tilater større muligheter for videreutvikling,
men du kan fortsatt presentere på samme måte som tidligere med dager og ukenummer.

ISO Week date
ISO 8601 Week dates
PHP Eksempel - ukens startdato fra ukenummer og år

Når det gjelder markup kan du også med fordel bruke HTML arrays for form elementer.

Kode

<input name="day[1][start]" />
<input name="day[1][end]" />
]

Dette gir deg muligheten til å iterere over en range av dager i PHP og sette inn
i skjema per dag.

See også time input HTML5
Jente (12)
sh0rtie's Avatar
Trådstarter
Sitat av z0p Vis innlegg
PHP parseren blir vel litt forvirret av hvordan du du legger en array verdi i en dobbel-quote streng.
Du må bruke klammer om du vil gjøre det på den måten.

eks:

Kode

$sql = "INSERT INTO Table (one) VALUES ('{$_POST['bla']}')";
en annen løsning er f.eks:

Kode

$sql = sprintf("INSERT INTO Table (one) VALUES ('%s')", 
               mysql_real_escape_string($_POST['bla']));
Litt vanskelig å ikke kommentere ditt valg av databasedesign.
Det er ikke nødvendigvis enklere å velge en tilsynelatende enkel løsning.
Det kan også legge en del begrensninger for videreutvikling av applikasjonen.

Kode

 Timeliste
--------------
 ansatt_id      INTEGER -- ansatt kan kun ha en oppføring per dato
 dato           DATE    -- ergo vil dato+ansatt være en unik nøkkel
 start          TIME -- default til 00:00, så start-slutt diff. er 00:00 dersom ikke satt
 slutt          TIME -- sjekk at alltid større eller lik start
 kommentar      TEXT -- kommentar til evt. fravær
 timefratrekk   INTEGER -- kan ikke være større enn diff. start-slutt

 Ansatt
--------------
 ansatt_id      INTEGER -- auto incremented pk
 fornavn        TEXT -- required
 etternavn      TEXT -- required
Designet ovenfor tilater større muligheter for videreutvikling,
men du kan fortsatt presentere på samme måte som tidligere med dager og ukenummer.

ISO Week date
ISO 8601 Week dates
PHP Eksempel - ukens startdato fra ukenummer og år

Når det gjelder markup kan du også med fordel bruke HTML arrays for form elementer.

Kode

<input name="day[1][start]" />
<input name="day[1][end]" />
]

Dette gir deg muligheten til å iterere over en range av dager i PHP og sette inn
i skjema per dag.

See også time input HTML5
Vis hele sitatet...
Takk for hjelpen, spesielt avsnittet om databasedesign, da dette er ting jeg plagdes med i går. Du skal ikke se bort ifra at jeg går for noe likt dette kp!