Timestamp & create row in mysql
wat ervoor zorgt dat als hij langer dan 10 minuten niet nog een keer heeft ingelogd. een melding verschijnt van dat die niet heeft inglogd in het ziekkenhuis.
want de bedoeling is om een in te loggen in een parkeergarage en daarna van parkeergarage naar de ziekenhuis als er tussen garage en ziekenhuis langer duurt dan 10 min verschijnt dus die melding.
ik denk dat dit zou kunnen met sessions, time(), timestamp en mqsql query
maar ik kom er niet uit
naast de member database met gebruikersnaam en wachtwoord
heb ik dus ook een aparte database aangemaakt met tabel en velden zoals
id- naam- tijd-binnenkomst
nu moet er gezorgt worden als de gebruiker automatisch een nieuwe regels creeert word in het tabel
als die inlogd word de tijd ook opgeslagen van de garage en ziekenhuis en als die niet ingelogd heeft wil ik dat in veld aangegeven hebben
wat ik nu voor me heb
inlog systeem gekoppeld aan de database
ik kan succesvol inloggen met de gebruiker
ik ben dus al in de garage
nu nog een timer. en er voor zorgen dat mijn gegevens word opgeslagen in mijn phpmyadmin database
ik ben een beginner. ik hoop dat jullie concrete en goede voorbeelden kunnen geven
Alvast bedankt!
En bekijk dan eens de datum en tijd functies van je database die je ter beschikking staan. Uiteraard kan je ook het forum afzoeken op INTERVAL.
Oh phpmyadmin is geen database!! Je moet het hebben over MySQL. Tip gebruik de InnoDB engine ipv MyIsam.
hoe maak ik een script waar nieuwe regels aan mijn tijd tabel worden toegevoegd als mijn gebruiker inlogd en waar zet ik dat dan neer of moet ik een aparte bestand aanmaken.
ik heb 3 PHP bestanden.
main_login.php
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="password" id="mypassword"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
checklogin.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
ob_start();
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="slagboom"; // Database name
$tbl_name="medewerkers"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
$tijd = time(); // overnemen tijd
insert into `tijden` where id='$myusername'
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
ob_end_flush();
?>
ob_start();
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="slagboom"; // Database name
$tbl_name="medewerkers"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
$tijd = time(); // overnemen tijd
insert into `tijden` where id='$myusername'
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
ob_end_flush();
?>
login_succes.php
// Check if session is not registered , redirect back to main page.
// Put this code in first line of web page.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>
<html>
<body>
Login Successful
</body>
</html>
zomaar een paar onderwerpen:
- controles en validaties
- foutafhandeling
- sql injectie
- weg met addslashes / stripslashes
- weg met ob_ functies
- na een header volgt altijd een exit
- $_SESSION ipv de session functies
- geen overbodige variabelen aanmaken
- geen variabelen gebruiken voor: database, tabel en veldnamen
- php variabelen buiten quotes
- geen wachtwoorden opslaan in $_SESSION / $_COOKIES
Komt er eigenlijk op neer dat je beter opnieuw kunt beginnen.
oh dat is lastig want ik moet deze donderdag opleveren
Bawo Sambo op 21/01/2012 21:45:30:
oh dat is lastig want ik moet deze donderdag opleveren
Opleveren? Is het een schoolopdracht of aan een klant?
Hoe dan ook --> neem de adviezen van Noppes serieus. Het script wat er nu staat, zou ik direct gaan herschrijven. Daar zitten veel te veel fouten in. Denk dat een klant / docent daar ook niet op zit te wachten.
Om rijen in te voegen in een database zou je kunnen kijken naar 'insert'.
En je zult dus nog een query moeten maken om te controleren of de tijd verstreken is.
Gewijzigd op 21/01/2012 21:55:30 door Obelix Idefix
Obelix en Idefix op 21/01/2012 21:52:04:
Opleveren? Is het een schoolopdracht of aan een klant?
Bawo Sambo op 21/01/2012 21:45:30:
oh dat is lastig want ik moet deze donderdag opleveren
Opleveren? Is het een schoolopdracht of aan een klant?
ja het is een schoolopdracht maar ja ik heb dus heel wat werk te doen. ik ben ook een beginner dus ik snap nog niet alles. ik heb 2 lessen gekregen over php basics en dat was het.
k hoop niet dat je het op deze manier aangeleerd krijgt op school, anders wordt het misschien tijd dat je docent(e) een opfriscursus gaat volgen.... ;-)
2 lessen en dan al zon opdracht? Na mijn tweede les begonnen wij met if-then procedures...
hoe ik dit ga oplossen voor donderdag.
hebben jullie nog tips voor mij, wat ik zou kunnen doen?
- de verschillende variabelensoorten
- vergelijkingen
- iteraties
Ga dan pas verder met de basis van mysql
Toevoeging op 21/01/2012 23:58:00:
En natuurlijk html, maar ik ga ervan uit dat je dat voldoende beheerst