Frage zu einem Vorgang

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage zu einem Vorgang

    Hi @all
    ich hab eine kleine Frage zu einem Skript, bzw einem Vorgang in diesem Skript.

    Ich habe eine Seite bei der 10 Einträge aus einer Sql Tabelle per order by rand() angezeigt werden. Nun kann der User auf "seite neu laden" klicken und andere 10 einträge werden angezeigt.

    Insgesamt wurden aus 3 Tabellen verschiedene Daten geholt, welche dann auch noch verarbeitet wurden.

    bsp.:
    PHP-Code:
                    $sl sql_query("SELECT * FROM SELECTION WHERE lid = ".$lto." OR lid = " $lfrom);
                    

                    while (
    $ssl mysql_fetch_array($sl))
                    {
                                
    # Tabellen name definieren
                                ##########################
                                
    switch($ssl['lid']){
                                  case 
    $lfrom:
                                    
    $table $from_short;
                                    break; 
                                  case 
    $lto:
                                    
    $table $to_short;
                                    break;
                                  default:
                                    
    $table $from_short;
                                    break;
                                  }
                        
                                
    $slc $table "_" $ssl['fieldname'];
                                
                                
    # Deklarieren
                                #############
                                
    $selection['table']['id'][] = $ssl['id'];
                                
    $selection['table']['name'][] = $slc;
                                
    $selection['table']['size'][] = $ssl['fontsize'];
                                
    $selection['table']['count'][] = $n;
                                
                                
    $_SESSION['standart']['selection'] = $selection;
                                
                                
    $n++;
                                
                        
    # Array für den Buttontext erstellen
                        ####################################
                        
    $_SESSION['standart']['buttontext'][$slc] = $ssl['short'];
                
                    } 
    ok das nur als Beispiel... so werden die Daten verarbeitet. Die Session zuweisung mal überlesen. Diese Datenverarbeitung wurde bei jedem Seitenneuaufruf gestartet (ohne Sessionzuweisung)... d.h. immer wenn der user auf den button geklickt hat wurden die Daten aus der DB geholt und verarbeitet. Ich hatte mir überlegt, dass das die DB mit der zeit sehr belasten könnte und auch die rechenzeit unnötig rauszögert, wenn die daten jedesmal neu verarbeitet werden. Also hab ich mir überlegt, wie man das ändern kann, sodass die Daten nur einmal aus der DB geholt und verarbeitet werden. Ich hab dann n Counter eingebaut, der bei Klick auf den button immer +1 mitzählt.
    Wenn der nun bei 1 ist - also beim ersten aufruf der seite, werden die Daten aus der DB geholt und einmal verarbeitet. DIe Daten werden dann in die Session gespeichert (siehe oben) sodass ich die daten für die folgenden seitenaufrufe auch hab.
    Ist diese Vorgehensweise sinnvoll?
    verringert sich die REchenzeit wirklich?
    wie ist das mit der sicherheit? ich hänge die SESSIONId nicht an die links an. Soweit ich weiss werden die dann automatisch in COokies gespeichert - wenn das so ist: können die dann vom User manuell auf dem Rechner verändert werden?

    hoffe ihr könnt mir dazu was sagen...

    danke
    cya CrazyPip

  • #2
    - wenn das so ist: können die dann vom User manuell auf dem Rechner verändert werden?
    Ob mittels Cookie oder URL du übergibst in jedem Falle nur die Session ID. Dieser ID ordnet der Server dann bei sich die nötigen Daten zu.
    Also könnte eine Manipulation nur an der ID stattfinden und dann gibt's zwei Möglichkeiten:
    1. die ID ist dem Server unbekannt --> der User hat nix davon
    2. die ID ist dem Server bekannt --> das Script greift auf Daten zu, die nicht dem User gehören

    Ich denke aber mal, dass es nicht ganz so einfach ist eine auf dem Server gültige Session ID zu erraten

    Wenn ich dich jetzt richtig verstanden habe, dann willst du dass der User auf 'neu laden' klickt und die gleichen Einträge wieder sieht ? Dann würde ich jetzt die 10 Einträge in der Session speichern und immer wieder anzeigen

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      hi jah
      ok das mit sid ist dann so in ordnung.
      g nein die abfrage mit den 10 einträgen wird natürlich immer wieder neu gestartet, da hier immer 10 verschiedene angezeigt werden sollen - es geht um die Abfragen, bei denen die Einträge immer statisch bleiben. DIese werden dann immer wenn count = 1 gemacht und die ergebnisse dann in sessions gespeichert...

      also wenns da keine gravierenden Einwände gibt, von wegen sicherheit oder rechenleistung, dann würde ich das so machen. nur kommt mir halt sehr unüblich vor, sowas über einen counter zu steuern...
      oder was denkst du? oder ihr?

      gruss CrazyPip

      Kommentar


      • #4
        Ich denke dass für 10 Datensätze die Abfragezeit nicht so gross sein wird, dass du Unterschiede feststellen könntest
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          hm es geht ja nicht direkt um die 10 datensätze... sondern um die anderen 3 und eben, das die daten aus diesen 3 abfragen bearbeitet werden (siehe oben als beispiel)...
          und das könnte man sich sparen wenn man das mit diesem counter macht... meine frage war halt ob sowas sinnvoll ist... aber solchen kleinen datenmengen ist es dann wohl egal oder?
          aber wenn halt 20 user das script nutzen oder gar 200 dann kommt da schon was zusammen. deswegen in dem zusammenhang frage ich mich halt, wie man das am besten machen sollte. methode 1: einfach alle abfragen jedesmal durchführen oder mit dem counter arbeiten und die vars in $_SESSIOn speichern?

          Kommentar

          Lädt...
          X