Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Wie Aktionen in einem Kalender verarbeiten und status setzten?

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Wie Aktionen in einem Kalender verarbeiten und status setzten?

    Hallo zusammen,

    ich schreibe an einer kleinen admin oberfläche, welche für wenige user einen raumplaner, bei dem es ca. 3 bis 5 räume gibt, welche den status - belegt oder frei haben.

    Nach einigen Tutorials wie man nun einen kalender erstellt bin ich an einem punkt angekommen, bei dem ich nun irgendwie auf dem schlauch stehe.

    Aufgabe ist folgende:
    zu jedem Datum im Kalender gibt es ca 5 Räume (verschieden)
    jeder Raum ist genau einmal belegbar (von einer person)
    belegung erfolgt durch klick auf den Link -> frei
    nach click sollte sich der Status des Raumes auf belegt setzten
    Daten in die Datenbank Tabelle (raumbelegung) eintragen
    navigation vor / zurück Monat (wird per GET parameter gesetzt)

    DB: raumbelegung
    id_of_reserv / room_name / date_of_occupation / user_name

    ausgabe als tabelle im Frontend :

    Datum / Raum 1 / Raum 2 / Raum 3 / ...
    -------------------------------------------------------------
    01.12.2014 / frei / frei / belegt / .....
    02.12.2014 / belegt / frei / frei / .....

    So nun meine Fragen

    1. welche methode eignet sich am besten die daten zu übertragen?
    POST oder GET, da ich in jedem fall auch noch den user_namen und user_id speichert muss welche an die getCalendar(x,y,z) als parameter übergeben wird und ich einiges gelesen habe das GET methoden unsicher sind bei der übertragung. bzw. wäre es trotzdem ok, da man eingeloggt sein muss, oder wie kann man sicherstellen dass es trotzdem sicher ist?

    2. übergabe per POST: die seite springt nach submit formular. Bsp. ich wähle das Datum 02. Februar 2015 -> dies erzeugt ein neuladen der seite welches mich auf die aktuelle November 2014 ansicht zurück navigiert, so dass dieses verhalten etwas iritierend ist -- Kann man das evtl. unterbinden, so das nach submit formular die ansicht immer noch zb. 02. Februar 2015 ist ?

    3. wie kann ich nun sicherstellen, dass der status des Raumes zu dem Tag D.M.YYYY, welcher bereits in Datenbank gespeichert ist auch als belegt markiere? (auslesen der Datenbank tabelle in array?? und check if date and raum exist in array??? dies würde direkt bei der datum-raum iterierung passieren? siehe getCalendar() ) -> hier wäre ein denkanstoss von nöten. -- wäre hier sinnvoll an dieser stelle mit ajax zu arbeiten, da ja per event ein status eintritt? -> welches mich wieder auf frage nr. 1 zurückführt mit welcher methode wiederrum am besten zu arbeiten POST oder GET?

    hier nun der code
    PHP-Code:
    <?php


        
        
    public function getCalendar($date$user_name$user_id){
            
            if( isset(
    $_REQUEST['timestamp'])) $date $_REQUEST['timestamp'];
            else 
    $date time();

            
    $year  == null;
             
            
    $month == null;
             
            if(
    null==$year&&isset($_GET['year'])){
     
                
    $year $_GET['year'];
             
            }else if(
    null==$year){
     
                
    $year date("Y",time());  
             
            }          
             
            if(
    null==$month&&isset($_GET['month'])){
     
                
    $month $_GET['month'];
             
            }else if(
    null==$month){
     
                
    $month date("m",time());
             
            }                  
             
            
    $this->currentYear $year;
             
            
    $this->currentMonth $month;
             
            
    $this->daysInMonth $this->_daysInMonth($month,$year);
            
            
    $this->room_name $_GET['raumName'];
          
            
    $content $this->_calendarNavigation();
            
    $content .= '<div class="roomCalenar">';
            
    $content .= '<div class="roomheader">
                            <span class="date">Datum</span>
                            <span class="room">R1</span>
                            <span class="room">R3</span>
                            <span class="room">R4</span>
                        </div>'
    ;
            
            for( 
    $i 1$i <= $this->daysInMonth$i++ ){
                
                
    $content .= '<div class="rows">
                                <span class="date">'
    .$i.".".$this->currentMonth.".".$this->currentYear.'</span>';
                            for(
    $k 1$k <= 3$k++){
                                
    $raumName "R".$k;
                                
    $content .= '<span class="room">
                                                <a href="'
    .$this->naviHref.'?year='.$this->currentYear.'&month='.sprintf('%02d',$this->currentMonth).'&day='.$i.'&room_name='.$room_name.'&user_name='.$this->user_name.'">frei</a>
                                             </span>'
    ;
                            }
                                
                
    $content .= '</div>';
            }

            
    $content .= '</div>';
            echo 
    $content;
        }
    thnx m.

  • #2
    Zitat von moloko Beitrag anzeigen
    1. welche methode eignet sich am besten die daten zu übertragen?
    POST oder GET, da ich in jedem fall auch noch den user_namen und user_id speichert muss welche an die getCalendar(x,y,z) als parameter übergeben wird und ich einiges gelesen habe das GET methoden unsicher sind bei der übertragung. bzw. wäre es trotzdem ok, da man eingeloggt sein muss, oder wie kann man sicherstellen dass es trotzdem sicher ist?
    [/PHP]
    thnx m.
    muss man sich bei dir mit passwort einloggen?
    wenn ja solltest du die user_id in einer $_SESSION-Variable speichern,die an eine session gekoppelt ist.

    Kommentar


    • #3
      Ich gebe zu, ich war zu faul deinen ganzen Code zu lesen.
      Prinzipeill ist es egal wie du deine Werte übergibst.
      "Schöner", weil nicht zu sehen finde ich Post.
      Ob du Post oder get verwendest ist sicherheitstechnisch absolut irrelevant, da beides ohne Probleme auszulesen sind.

      Das mit dem Userstatus.. siehe Vorposter.

      Aber noch eine Grundsätzliche Frage. Ich würde ja für jeden Raum speichern wann er frei/belegt ist und nicht für jedes Datum 5 Räume. Die Räume bleiben doch immer gleich, nur deren Status ändert sich

      Kommentar


      • #4
        Zitat von MFGSparka Beitrag anzeigen
        [...]
        Prinzipeill ist es egal wie du deine Werte übergibst.
        "Schöner", weil nicht zu sehen finde ich Post. [...]
        Prinzipiell. Eigentlich gäbe es 4 grundlegende Methoden, die HTTP unterstützt. Nur leider sind DELETE und PUT oft durch Firewalls blockiert.

        Nun, es gibt genaue Regeln wann POST und wann GET einzusetzen ist. Die Namen der Methoden sagen es eigentlich schon.

        GET setzt du ein wenn du Informationen darstellst und ein erneutes Laden der Seite keinen Einfluss auf die Daten (-integrität und -wasweisich) hat.

        POST setzt du ein, wenn ein erneutes Laden Folgen in der Datenbasis hat (z.B. "letzter Eintrag wird gelöscht") oder sich das Verhalten bei mehrmaligen Aufruf unerwünscht entwickelt (z.B. Eintrag soll ein zweites Mal gelöscht werden -> 404).
        [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

        Kommentar

        Lädt...
        X