SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Entwicklung und Softwaredesign

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 30.05.2006, 21:59:29
Benutzerbild von djmoscito
djmoscito djmoscito ist offline
Anfänger
 
Registriert seit: May 2006
Ort: Leipzig
Alter: 37
Beiträge: 13
djmoscito eine Nachricht über ICQ schicken djmoscito eine Nachricht über MSN schicken
Projekt - Abfragesystem - PHP

Hallo,

ich mache demnächst ein Praktikum und muss dort als Aufgabe ein Projekt auf die Beine Stellen. Leider bin ich nicht so der PHP Könner aber ich habe 2 Wochen um es umzusetzen und das mind 7h pro Tag und daher denke ich ist es möglich...

Das System soll dem Kartenleser ein Firma ähneln. Jemand kommt zur Arbeit und checkt sich ein ( das gerät speichert das, man geht nach Hause und zieht wieder die akrte durch und das wird vermerkt.
Das soll ich per PHP umsetzten und zwar mit der aktivität am Rechner. (In der Raum egstellt ob das schlau ist oder nicht, viel würden es anders machen)

Jetzt wollte ich mich schon mal noch in paar Dingen informieren und vll. Auch helfen lassen.

Projekt:

1.Tag System

1. Der Server pingt einen Arbeits-PC an -> erkennt das er online ist oder offline
2. Online -> schreibt es in eine Datenbank ( Tabelle „online“)
3. Offline -> passiert nichts, oder sollte man eine Tabelle „offline“ anlegen
4. Auslesen der Tabelle online -> wie viele Stunden -> ausgaben HTML

Sagen wir der Server pingt den Rechner aller 5min an, wie halte ich fest das der Rechner an oder aus ist, und er davon den Zeitraum ermittelt und das er es in einem Tag der 24h festhält.
Am besten mit Zeitraum wo der Rechner an war.
So meine Frage ist. Was für Tabellen legt man an? Wie bekommt man es hin das 364Tage genutzt werden? Wie mache ich das am besten mit mehrer Benutzern, legt man da an Tabellen-„Kategorie“ mit der entsprechende IP ab für jeden Benutzer an und schickt dann jeweilig die Daten in die entsprechende Tabelle?

Beispiel in HTML-Ausgabe

Benutzer X – Rechner1 – IP: 192.168.0.1

1.Woche:

01.06.06| 12:30 – 15:03 | 02:33 Stunden
02.06.06| 12:30 – 15:03 |(h:min)
03.06.06| 12:30 – 15:03 |(h:min)
04.06.06| 12:30 – 15:03 |(h:min)
05.06.06| 12:30 – 15:03 |(h:min)
06.06.06| 12:30 – 15:03 |(h:min)
07.06.06| 12:30 – 15:03 |(h:min)
----------------------------------------
Gesamt | X:YY Stunden


Benutzer Y – Rechner2 – IP: 192.168.0.2

…..

Wäre toll wenn mir jemand die fragen oder gar helfen könnte.


Danke die Stechmücke

Geändert von djmoscito (30.05.2006 um 21:59:48 Uhr)
Mit Zitat antworten
  #2  
Alt 31.05.2006, 14:41:25
mischka11 mischka11 ist offline
Anfänger
 
Registriert seit: May 2003
Beiträge: 44
AW: Projekt - Abfragesystem - PHP

Hallo,

ich glaube PHP ist hier keine gute Idee.
Mit Java (nicht Javascript) sollte sich soetwas eher realisieren lassen.
Handelt es sich bei allen Rechnern (inkl. Server) um Windows-Rechner, ist eine Lösung in Delphi oder Visual Basic recht einfach zu gestalten.
Als Grundkonzept solltest Du Dir dazu mal die Funktionsweisen eines Chatsystems anschauen.
Mit Zitat antworten
  #3  
Alt 31.05.2006, 20:32:29
Benutzerbild von djmoscito
djmoscito djmoscito ist offline
Anfänger
 
Registriert seit: May 2006
Ort: Leipzig
Alter: 37
Beiträge: 13
djmoscito eine Nachricht über ICQ schicken djmoscito eine Nachricht über MSN schicken
AW: Projekt - Abfragesystem - PHP

Zitat:
Das System soll dem Kartenleser ein Firma ähneln. Jemand kommt zur Arbeit und checkt sich ein ( das gerät speichert das, man geht nach Hause und zieht wieder die akrte durch und das wird vermerkt.
Das soll ich per PHP umsetzten und zwar mit der aktivität am Rechner. (In der Raum egstellt ob das schlau ist oder nicht, viel würden es anders machen)
...

Wenn ich es anders machen sollte dann würde ich es auch anders machen oder probieren.
Mit Zitat antworten
  #4  
Alt 01.06.2006, 09:20:11
mischka11 mischka11 ist offline
Anfänger
 
Registriert seit: May 2003
Beiträge: 44
AW: Projekt - Abfragesystem - PHP

ööhm, ok, die Tücke steckt im Detail.

Also die Idee mit dem Ping ist ja nicht schlecht, da gibt es z. B. Pear, das liefert schon fertige Klassen. Damit kannst Du aber nur testen ob der Rechner hochgefahren ist oder nicht.
Um noch den Benutzer zu der IP zu bekommen solltest Du evtl. ein Login schreiben, wo sich der Benutzer mit seinem Namen einloggt, anschließend wird der Loginname + IP des Rechners in einer Tabelle gespeichert. Die Tabelle liest Du nun z. B. per Cronjob aus und Pings die IP's nacheinander durch. die Resultate schreibst Du mit einem Timestamp in eine weitere Tabelle.

Das wäre erstmal ein einfacher Lösungsansatz. Ohne Beachtung sonstiger Details.
Mit Zitat antworten
  #5  
Alt 01.06.2006, 19:58:13
Benutzerbild von djmoscito
djmoscito djmoscito ist offline
Anfänger
 
Registriert seit: May 2006
Ort: Leipzig
Alter: 37
Beiträge: 13
djmoscito eine Nachricht über ICQ schicken djmoscito eine Nachricht über MSN schicken
AW: Projekt - Abfragesystem - PHP

hmm, aber dann kann man ja gleich ein Login/Logout system machen oder was sagst du?

Was da der unterschied bei dir logt man sich ein per loginame...dann werden die rechner durchgepingt, und dann? Pingt der solange bis jeder rechner aus ist und dann du dich nächsten tag wieder einlogst oder wie?
Mit Zitat antworten
  #6  
Alt 02.06.2006, 12:51:18
mischka11 mischka11 ist offline
Anfänger
 
Registriert seit: May 2003
Beiträge: 44
AW: Projekt - Abfragesystem - PHP

Zitat:
Zitat von djmoscito
hmm, aber dann kann man ja gleich ein Login/Logout system machen oder was sagst du?

Was da der unterschied bei dir logt man sich ein per loginame...dann werden die rechner durchgepingt, und dann? Pingt der solange bis jeder rechner aus ist und dann du dich nächsten tag wieder einlogst oder wie?

nunja was anders wird wohl dabei nicht rauskommen.
der Ping läuft solange bist die IP des Rechners nicht mehr erreichbar ist, ist dies der Fall wird sie aus der Tabelle entfernt.
Du wirst allerdings irgendeine Aktion des Benutzer benötigen, da Du sonst nicht an den Rechnernamen, Benutzer usw. kommst.

Wie stellst Du Dir das vor, soll sich beim Rechnerstart eine Webseite öffnen oder soll das automatisch passieren?
Wie ich schonmal gesagt hatte nur PHP für soetwas ist ein bisschen steif. Schreibe doch wenigstens ein kleines Tool in VB, welches beim Rechnerstart ausgeführt wird und die Daten, Windowsbenutzer und Rechner IP automatisch an den "server" sendet.
Mit Zitat antworten
  #7  
Alt 02.06.2006, 14:09:35
diver-network diver-network ist offline
Junior Member
 
Registriert seit: Apr 2003
Ort: TÜ
Beiträge: 337
AW: Projekt - Abfragesystem - PHP

Hi,

ohne daß ich was sinnvolles zur Lösung des Problems beitragen kann nur die Warnung, einen Rechner ständig mit PINGs zu "belästigen".
Wer das im Intranet und dann womöglich noch mit falschen Ping- Parametern und bei vielen Rechnern parallel macht hat sehr sehr schnell seine SysAdmins von der Netzwerkbetreuung gegen sich und womöglich das Netzwerk lahm gelegt.
Passt also auf, daß Ihr nicht aus Versehen eine Denial of Service Attacke startet, nur um festzustellen, ob ein Rechner noch angemeldet ist oder nicht.

Gruß,

Andy
Mit Zitat antworten
  #8  
Alt 06.06.2006, 20:46:31
langwebdesign langwebdesign ist offline
Junior Member
 
Registriert seit: Oct 2002
Ort: Titting
Alter: 39
Beiträge: 251
AW: Projekt - Abfragesystem - PHP

Hi

warum legst du nicht auf jedem rechner einen geplanten task an der dir z.B. alle 5 Minuten einen Batch aufruft der die IP und den benutzernamen auslest und irgendwo als txt speichert. auf der php seite machst dann einen Cron der dir die txts einlest - die daten auswertet und in die DB schreibt.

hier ein paar scriptschnippsel für den Task:

Code:
@echo off
set destination=\\pfad
del %destination%\%computername%.txt
nbtstat -a %computername%>>%destination%\%computername%.txt
echo %username%>>%destination%\%computername%.txt
exit
Und das Ergebniss
Code:
    
LAN-Verbindung:
Knoten-IP-Adresse: [192.168.2.1] Bereichskennung: []



      NetBIOS-Namentabelle des Remotecomputers



       Name               Typ          Status

    ---------------------------------------------

    PC-NAME     <00>  EINDEUTIG   Registriert 

    DOMAIN           <00>  GRUPPE      Registriert 

    PC-NAME     <20>  EINDEUTIG   Registriert 

    DOMAIN           <1E>  GRUPPE      Registriert 



    MAC Adresse = 00-00-00-00-00-00
Benutzername
Jetzt muss da halt noch die Zeit mit rein und dann die Auswertung ect.

Wenn du Fertig bist, können wir dann deine Lösung sehen?
Helfen auch gern noch weiter.

mfg
Stephan
__________________
Affen benutzen oft Stöckchen als Hilfsmittel...
Mit Zitat antworten
  #9  
Alt 07.06.2006, 21:46:41
Benutzerbild von djmoscito
djmoscito djmoscito ist offline
Anfänger
 
Registriert seit: May 2006
Ort: Leipzig
Alter: 37
Beiträge: 13
djmoscito eine Nachricht über ICQ schicken djmoscito eine Nachricht über MSN schicken
AW: Projekt - Abfragesystem - PHP

Danke für die Antwort, habe jetzt lange geredet nachgedacht und ein konzept erstellt das sieht so aus:

So nach langer Planung habe ich/wir es geschafft. Erstmal ein system zu entwickeln welches folgendermaßen aussieht:

es gibt 4 Buttons:

Kommen = "k"| PauseAN = "p1" | PauseAUS = "p2" | Gehen = "g"

und 2 Tabellen:

1. Stammdaten

ID, Benutzer, tägl_AZ, tägl_PZ, Urlaub

2. Zeitdaten

ID, MA_ID, Datum, Zeit, KZ (siehe Buttons)


MA_ID= Mitarbeiter ID (ergibt sich aus ID von Benutzer, und Loginsystem)
AZ= Arbeitszeiten
PZ=Pasuezeiten
KZ=Kennzeichnung von Buttons (k, p1, p2, g)


Bsp:

<1>Kommen: klick auf "K"

<neue ID>, <MA_ID>, <Datum>, <06-07-2006 8:00>, 'k'

<2>Pause1: klick auf "P1"

<neue ID>, <MA_ID>, <Datum>, <06-07-2006 10:00>, 'p1'

<3>Pause2: klick auf "P2"

<neue ID>, <MA_ID>, <Datum>, <06-07-2006 10:30>, 'p2'

<4>Gehen: klick auf "G"


<neue ID>, <MA_ID>, <Datum>, <06-07-2006 18:00>, 'g'

Arbeitszeit= <4>-<1> - (<3>-<2>)
Pausenzeit= <3>-<2>

So habe mit meinem Chef geredet und er meinte Timestamp wäre sogar die einfachere lösung, weil man auch einfach abziehn kann.

So jetzt sollte hoffentlich erstmal eine Grundlage geschaffen sein...

@badphantom

Das mit dem Insert war schon klar =), das habe ich verstanden, nur ich bin bei den Befehlen verwirrt, wie sage ich das er als Timestamp in der Datenbank abspeichert, ich weiß nur wie man Zeichen darin abspeichert. :) // ERLEDIGT

Kommen:

$sql = "INSERT INTO time(
MaID
Datum
Zeit
KZ
)
VALUES
'$user',
NOW(),
NOW(),
'k',";

ich frag mich momentan nur wie ich dem Sage das er die ID vom der Eingeloggten Person übernehmen soll beim Speichern. :rolleyes:
und obe ich einfach beim einschreiben der funktion "k" sagen soll oder ob ich was falsch verstehe, oder sollte man das anders machen?

Nur was mir momentan wichtig ist wie Koppel ich die UserID mit der MA_ID

hab folgendes Login-Script:

index.php:
Code:
<form method="post" action="login.php">
<strong>Benutzername:</strong>
  <br />
  <input name="username" type="text">
  <br>
<strong>Passwort:</strong>
  <br />
  <input name="" type="password" id="userpass">
  <br />
  <br />
  <input name="login" type="submit" id="login" value="Einloggen">
</form>
login.php:
Code:
<?php
session_start();                    //Session starten, auf alle Seiten !!!
include 'sessionhelpers.inc.php'; //Informationen zum aus und einloggen
if (isset($_POST['login']))          // Abfrage ob Login abgeschickt wurde
{
    $userid=check_user($_POST['username'], $_POST['userpass']); // Name und Pass checken
    if(!empty($userid))                                        // 2möglichkeiten, true ->login, false -> Meldung
        login($userid);                                            // login
    else                                
        echo 'Ihre Anmeldedaten waren nicht korrekt!';            // ansonsten  -> Falsche Daten
}
if (!logged_in())                                                // wenn nicht eingeloggt oder nicht geht -> Loginformular
     echo '
  <form method="post" action="login.php">
  <label><strong>Benutzername:</strong></label>
  <br />
  <input name="username" type="text">
  <br>
  <label><strong>Passwort:</strong> </label>
  <br />
  <input name="" type="password" id="userpass">
  <br />
  <br />
  <input name="login" type="submit" id="login" value="Einloggen">
</form>';

else
    echo '<a href="logout.php">Ausloggen</a>';                    // Logout    
?>
sessionhelpers.inc.php:
Code:
<?php
function connect()
{
    $con= mysql_connect('localhost','root','') or die(mysql_error());
     mysql_select_db('cte',$con) or die(mysql_error());
} 

function check_user($name, $pass)
{
    $sql="SELECT UserID
    FROM users
    WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
    LIMIT 1";
    $result= mysql_query($sql) or die(mysql_error());
    if ( mysql_num_rows($result)==1)
    {
        $user=mysql_fetch_assoc($result);
        return $user['UserID'];
    }
    else
        return false;
} 

function login($userid) /* Diese Funktion loggt einen Benutzer in das System ein. Welcher Benutzer eingeloggt werden soll, wird über den Parameter $userid angegeben
                         die Session-ID (die eindeutig ist) in die Spalte UserSession des Benutzers geschrieben wird */
{
    $sql="UPDATE users
    SET UserSession='".session_id()."'
    WHERE UserID=".$userid;
     mysql_query($sql);
}

function logged_in() /* Diese Funktion prüft, ob der Benutzer eingeloggt ist. Zu diesem Zweck wird abgefragt, wie viele Einträge in der Benutzertabelle
                     mit der aktuellen Session-ID in der Spalte UserSession vorhanden sind. Wird ein Eintrag gefunden, ist der Benutzer eingeloggt. */
{
    $sql="SELECT UserID
    FROM users
    WHERE UserSession='".session_id()."'
    LIMIT 1";
    $result= mysql_query($sql);
      return ( mysql_num_rows($result)==1);
}

function logout() // Diese Funktion loggt den Benutzer wieder aus, indem in die Spalte UserSession  der Wert NULL geschrieben wird.
{
    $sql="UPDATE users
    SET UserSession=NULL
    WHERE UserSession='".session_id()."'";
     mysql_query($sql);
}

connect();
?>
logged_in.php:
Code:
<?php
session_start();                    //Session starten
include 'sessionhelpers.inc.php';    // Datei einladen
echo 'Sie sind ';                    // Sie sind....
if (!logged_in())                    // überprüfung ob man eingeloggt ist -> ! negation
    echo 'nicht ';
echo 'eingeloggt.<p />';
echo '<a href="index1.php">Start</a>';
?>
logout:
Code:
<?php
session_start();
include 'sessionhelpers.inc.php';
echo 'Sie sind ';
if (!logged_in())
    echo 'nicht ';
echo 'eingeloggt.<p />';
logout();
echo 'Sie sind ';
if (!logged_in())
    echo 'nicht ';
echo 'eingeloggt.< p/>';
echo '<a href="index1.php">Einloggen</a>';
?>
Hoffe mir kann dadurch jmd helfen wie ich ich die ID´s verkopple... wäre super.
Wichtiger Punkt wäre noch ob das nun stimmt mit den "KZ" oder ob ich da auf was achten sollte? Ich bin noch nicht so Datenbank oder php erprobt und bin über jede Hilfe glücklich.

Danke

Geändert von djmoscito (07.06.2006 um 22:08:55 Uhr)
Mit Zitat antworten
  #10  
Alt 25.06.2006, 13:06:56
n3ox n3ox ist offline
Anfänger
 
Registriert seit: May 2006
Beiträge: 10
AW: Projekt - Abfragesystem - PHP

Hi!

ich weiß nicht genau ob ich dich richtig verstanden habe. Wenn du die userID, die sich in einer anderen Tabellle befindet, wie die MA_ID, dann würde ich es mit INNER JOIN machen. Dazu nehmen wir mal zwei Beispieltabellen user und mitarbeiter.

Code:
SELECT * FROM user INNER JOIN mitarbeiter on user.user_id = mitarbeiter.ma_id  where user.user_id = ' 0001 ';
Habe ich deine Frage beantwortet oder habe ich dich falsch verstanden?^^
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Allgemeine Frage zu Versionen php 4 und 5 hermes PHP Grundlagen 7 19.08.2005 19:16:41
Fehlermeldung in PHP SilverDragon77 PHP Grundlagen 6 27.05.2005 16:11:25
Wie man durch PHP von der Schule fliegen kann?! Jacki Off Topic Area 2 06.08.2004 13:20:39
Referer mit PHP auslesen ??? kawa1500 PHP Grundlagen 5 10.10.2003 15:18:31
Einführung in PHP und Datenbanken Lómion PHP für Fortgeschrittene und Experten 7 07.02.2002 14:47:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:36:08 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt