Zum Inhalt springen

Impulz

Mitglieder
  • Gesamte Inhalte

    277
  • Benutzer seit

  • Letzter Besuch

Beiträge von Impulz

  1. Mit dem Befehl flush() werden die seit Beginn bzw dem letzten flush angesammelten Ausgaben direkt an Webserver zur Auslieferung an den Client uebergeben.

    Allerdings kann es durchaus sein, dass der Webserver, ein Proxy oder der Client selbst das nochmal zwischenspeichert bevor er es ausgibt. So gibt der IE es beispielsweise nur aus wenn sich mind. 255 Zeichen angesammelt haben. Hier muss man ggf manuell noch whitespace erzeugen.

    Ausserdem ist zu beachten dass einige Browser Tabelleninhalte nur darstellen, wenn die Tabellen komplett sind, also auch geschlossen.

    Genaueres hierzu: http://php.net/flush (englische Version enthaelt mehr infos als die deutsche).

  2. Meistens duerfte es so laufen, dass die Session-ID zusammen mit einem Timestamp in eine Datenbank geschrieben wird (vom Script, nicht zwangsweise durch php-Einstellungen) und bei jedem Seitenaufruf des Users der Timestamp aktualisiert wird. Der Counter ueberprueft dann nacher noch wieviele User in den letzten x Minuten aktiv waren.

    Das ganze gibt also nur etwa an wieviele User da sind, nicht genau.

    Anders ginge es noch dass beim Verlassen der Seite nochmal ein Script aufgerufen wird (mini-popup das sich autom. schliesst oder so) welches dann den Eintrag aus der DB loescht. Killt allerdings jemand seinen Browser, wars das auch.

  3. in $result steht nur das Ergebnis des Queries drin, nicht die selektierten Werte bzw 0 wenn das Query fehlgeschlagen ist (z.b. ungueltige Syntax). Du musst aus $result mit mssql_fetch_* erst die eigentlichen Daten holen.

    Probiers mal so:


    $query = "SELECT COUNT(*) FROM TReport WHERE Nummer='$nummer'";
    $result = MSSQL_QUERY($query);
    $daten=mssql_fetch_row($result);
    if ($daten[0]==0)
    {
    print "<center>ERROR: Datensatz nicht vorhanden.</center>";
    exit();
    }
    [/PHP]

    (ungetestet)

    gruss

    Michael

  4. Original geschrieben von Druid

    So... Punkt 1: In einem weitläufigerem Sinne übergebe ich indirekt auch das Passwort (muss ich ja wohl, sonst kann ich ja keine Verbindung zum SQL-Server mehr aufbauen..)

    Hae? Wieso? Wird die Datenbankverbindung mit dem jeweiligen Login des Users aufgebaut?

    Als Fallback müsste ich also auch die Session-ID per Hand übergeben an jede einzelne Seite! (-> genauso hoher Traffic)

    Das PHP Session-Management hat SIDs per GET als Fallback drin.

    Traffic duerfte in nem Firmennetz wohl kaum ne Rolle spielen, insb. wenn es sich um Unterschiede von ein paar Byte handelt.

    Ich finde, dass es deshalb ziemlich egal ist, ob ich den verschlüsselten Benutzernamen und das verschlüsselte Passwort übergebe, oder eine Session-ID!!!

    Man sollte vertrauliche Daten so selten wie moeglich uebers Netz jagen, Verschluesselung ist hier auch nicht das non-plus-ultra. Jeder der die Seite oeffnen kann, sieht auch die Art der Verschluesselung (da Javascript, anderweitige client-side Verschluesselung duerfte schwierig werden) und kann sie knacken.

    Bei ner Session werden die ganzen Daten auf dem Server abgelegt und nur eine Session-ID uebertragen, die keinerlei Auskunft ueber die gespeicherten Daten gibt und deren Gueltigkeit man z.b. zeitlich einschraenken kann indem man ein Timestamp abspeichert wann die Session gestartet wurde.

    gruss

    Michael

  5. Hallo,

    deine Ueberpruefung ist falsch. Du ueberpruefst auf affected rows, also veraenderte Zeilen.

    Bei einem create werden aber keine Zeilen veraendert.

    Siehe folgendes:

    mysql> create table test (nummer int(20), regel char(255) );

    Query OK, 0 rows affected (0.02 sec)

    Ueberpruef am besten ob das Query korrekt ausgefuehrt wurde anstatt der affected rows.

    gruss

    Michael

  6. nicht ganz richtig..

    das problem ist das fclose in der while schleife.

    Du schliesst die Datei nach dem ersten lesevorgang, egal ob du schon am ende bist oder nicht. pack das close hinter die while schleife.

    die 'leerzeilen' kommen dadurch zustande dass das schreiben in die datei immer ausgefuehrt wird, selbst beim ersten laden der seite wenn noch gar keine werte durch das formular uebergeben wurden. um den block wo du schreibst muss noch ne bedingung hin ob auch daten vom formular abgeschickt wurden.

  7. Das existierende Session-Management is schon eine feine Sache.

    Standardmaessig werden Textdateien (die auch nur die groesse der gespeicherten Werte plus Trennzeichen haben) dafuer benutzt.

    Allerdings kann man die Save-Routinen selber schreiben, siehe hierzu http://www.php.net/manual/de/function.session-set-save-handler.php

    So ist es ohne weiteres moeglich eine mysql-Datenbank zu nutzen und man brauch nit die komplette Session-Verwaltung neu schreiben.

    Ob sich das lohnt die Daten in mysql abzulegen haengt wohl von dem System ab. Wenn eh schon viele Festplattenzugriffe erfolgen, mag es sinnvoller sein, einen externen datenbank server zu nutzen, aber wo is das schon der fall.

    Impulz

  8. Zu dem ersten Beitrag:

    Sind die Bilder schon erstellt und kannst du sie mit nem Viewer anschaun? Ich vermute mal, das Script hat nen Fehler und die Fehlermeldung wird anstelle der Bilddaten ausgegeben. Dies is dann natuerlich Datenmuell wenn Bilddaten erwartet werden, daher das rote X, welches einfach nur heisst dass das Bild nicht gefunden oder nicht angezeigt werden kann.

    Also probier mal die Header-Anweisung auszukommentieren und das Skript direkt aufzurufen damit du ne Textausgabe erhaelst. Kommen dann Binaerdaten scheint es keinen Fehler zu geben, aber ich vermute es gibt zumindest nen Warning.

    Ach ja, und stell sicher dass die GDLib auf dem Server installiert ist und auch das Bildformat das du ausgeben moechtest, unterstuetzt.

    Ach ja, und zum Zugriff auf die Bilder isses wichtig welche Rechte der Webserver auf die Bilder selber hat, nit auf das Verzeichnis.

    Also:

    Verzeichnis:

    +r : verzeichnisinhalt kann aufgelistet werden

    +w: dateien koennen erstellt und geloescht (aber nicht veraendert) werden

    +x : in das verzeichnis kann gewechselt werden

    Dateien:

    +r: Datei kann gelesen werden

    +w: Datei kann veraendert werden

    +X: Datei kann ausgefuehrt werden.

    (Is zwar jetzt ein wenig offtopic, aber trotzdem gut zu wissen :)

    Zum zweiten Beitrag:

    Bei dir fehlt scheinbar die Header-Zeile. Dadurch weiss der Browser nicht wie er mit den Daten umgehen soll und haut sie als Text raus.

    Probiers mal mit sowas wie header("Content-Type: image/jpeg") oder je nachdem was fuer ein Bildtyp du ausgeben willst. Ne Liste mit Content/MIME-Types gibts bei SelfHTML.

    gruss

    Michael

  9. Unverschluesselt heisst in diesem fall, dass die daten einfach per POST oder GET auf einen normalen http server uebertragen werden. dabei findet keine verschluesselung statt. Der IE warnt normalerweise beim allerersten Mal wenn du ein Formular abschickst auch. Wenn du das ganz vermeiden willst, musste ueber https arbeiten, aber da kommt dann wahrscheinlich wieder ne meldung dass es jetzt ueber eine sichere verbindung geschickt wird :o)


  10. $zeilenarray=file("dateiname.ext");

    foreach ($zeilenarray as $zeile)
    {
    $tmp=explode("=",$zeile);
    $daten[$tmp[0]]=$tmp[1];
    }
    [/PHP]

    dann haste $daten als assoziatives array mit den eigenschaften (name, email, ..) als keys und den entsprechenden daten als werten. (notfalls nen vardump machen und schaun):

    also im prinzip die eingelesenen zeilen einfach exploden mit = als trennzeichen. dazu darf natuerlich sonst kein weiteres = zeichen im text vorkommen. ansonsten musste mit strpos arbeiten und das erste vorkommen suchen und dann substr verwenden.

    gruss

    Michael

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...