Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Kleines Problem mit Hidden Feld

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Kleines Problem mit Hidden Feld

    Hallo zusammen,

    ich hoffe mir kann jemand helfen. Ich habe folgendes Problem:

    Ich versuche in diesem Skript die Variable $_SESSION['wert'] weiterzugeben, so dass ich diese in der process.php aufrufen kann. Kann mir da wer helfen wie ich diese in der process.php nun aufrufen kann???
    Das Skript funktioniert soweit super. Es geht mir nur um die Session, die ich in der process.php aufrufen müsste.
    Ich danke Euch schon jetzt.



    PHP-Code:
            <script type="text/javascript">
            // Once files have been selected
            document.querySelector('form input[type=file]').addEventListener('change', function(event){

            // Read files
            var files = event.target.files;
        
            // Iterate through files
            //files.length -> 4
            for (var i = 0; i < files.length; i++) {
                //alert(i);

                // Ensure it's an image
                if (files[i].type.match(/image.*/)) {
        
                    // Load image
                    var reader = new FileReader();
                    reader.onload = function (readerEvent) {
                        var image = new Image();
                        image.onload = function (imageEvent) {
        
                            // Add elemnt to page
                            var imageElement = document.createElement('div');
                            imageElement.classList.add('uploading');
                            imageElement.innerHTML = '<span class="progress"><span><?php print_r($_SESSION['wert']); ?><input type="hidden" name="obsession" value="<?php echo $token;  ?>"></span></span>';
                            var progressElement = imageElement.querySelector('span.progress span');
                            progressElement.style.width = 0;
                            document.querySelector('form div.photos').appendChild(imageElement);
                            // Test ALERT
                            //alert("Bild ausgwählt und hochgeladen");
                            
                            // Resize image
                            var canvas = document.createElement('canvas'),
                                max_size = 1200,
                                width = image.width,
                                height = image.height;
                            if (width > height) {
                                if (width > max_size) {
                                    height *= max_size / width;
                                    width = max_size;
                                }
                            } else {
                                if (height > max_size) {
                                    width *= max_size / height;
                                    height = max_size;
                                }
                            }
                            canvas.width = width;
                            canvas.height = height;
                            canvas.getContext('2d').drawImage(image, 0, 0, width, height);
        
                            // Upload image
                            var xhr = new XMLHttpRequest();
                            if (xhr.upload) {
                                // Update progress
                                xhr.upload.addEventListener('progress', function(event) {
                                    var percent = parseInt(event.loaded / event.total * 100);
                                    progressElement.style.width = percent+'%';
                                }, false);
        
                                // File uploaded / failed
                                xhr.onreadystatechange = function(event) {
                                    if (xhr.readyState == 4) {
                                        if (xhr.status == 200) {
                                            imageElement.classList.remove('uploading');
                                            imageElement.classList.add('uploaded');
                                            imageElement.style.backgroundImage = 'url('+xhr.responseText+')';
                                            console.log('Image uploaded: '+xhr.responseText);
                                        } else {
                                            imageElement.parentNode.removeChild(imageElement);
                                        }
                                    }
                                }
                                // Start upload
                                xhr.open('post', 'process.php', true);
                                xhr.send(canvas.toDataURL('image/jpeg'));
                            }
                        }
                        image.src = readerEvent.target.result;
                    }
                    reader.readAsDataURL(files[i]);
                }
            }
            // Clear files
            event.target.value = '';
        });
        </script>


  • #2
    Nimmst du in deiner process.php Datei am Anfang die Session wieder auf?

    PHP-Code:
    session_start(); 
    evtl. hilft dir das ja ...

    Gruß

    Kommentar


    • #3
      Zitat von SylarBo Beitrag anzeigen
      Nimmst du in deiner process.php Datei am Anfang die Session wieder auf?

      PHP-Code:
      session_start(); 
      evtl. hilft dir das ja ...

      Gruß
      natürlich nicht
      aber daran liegt es nicht.

      Kommentar


      • #4
        Mit $_POST?
        Kleines Intro in dein Vorhaben wäre ganz gut. Und zu wissen wie deine process.php aussieht/was du bereits da versucht hast.
        Relax, you're doing fine.
        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

        Kommentar


        • #5
          Da gebe ich meinem Vorredner Recht.
          Ich bin nun einfach mal davon ausgegangen, dass du eine Datei hast, in der du die $_SESSION['wert'] mit einem Wert füllst und nun in der process.php an der oben gezeigten Stelle ausgeben willst


          Edit:
          Ne ich glaube ich verstehe es.

          Du musst in der process.php den Wert dann mit $_POST['obsession'] abfragen und dein Wert der $_SESSION['wert'] in das value="<hier>" des hidden inputs schreiben?

          Soweit ich weiß brauchst du dann aber auch noch für das <input> Feld ein <form> Element bzw. musst das <input> Feld einer Form zuweisen

          Kommentar


          • #6
            Zitat von SylarBo Beitrag anzeigen
            Da gebe ich meinem Vorredner Recht.
            Ich bin nun einfach mal davon ausgegangen, dass du eine Datei hast, in der du die $_SESSION['wert'] mit einem Wert füllst und nun in der process.php an der oben gezeigten Stelle ausgeben willst
            also in der process.php werden die ausgewählten bilder bearbeitet und sollen dann als link in die datenbank geschrieben werden. ich möchte halt nur das hier der session wert aus dem schnipsel vorher in die $last_id eingefügt wird.

            funktoioniert ja auch alles soweit ganz gut. bekomme nur den session wert nicht in die last_id

            PHP-Code:
            <?php
                
                
            // Festlegen der Datenbankparameter
                
            function __autoload($class)
                    {
                        require 
            'class/'.$class.'.php';
                    }

                
            // Generate filename
                
            $filename md5(mt_rand()).'.jpg';
                    
                
            $data file_get_contents('php://input');
                
            $image file_get_contents('data://'.substr($data5));
                
                
            // Save to disk
                
            if ( ! file_put_contents('images/'.$filename$image)) {
                    
            header('HTTP/1.1 503 Service Unavailable');
                    exit();
                }

                
            // Database INSERT ETC.
                
            $host  $_SERVER['HTTP_HOST'];
                
                
            // Filename mit Verzeichnis
                
            $server_link $host.'/images/'.$filename;
                
                
            // Holen der Session ID
                
            $last_id 0;
                
                
            // INSERT der Bilder Dateinamen in die Datenbank
                
            $request = new Db_Request;
                
            $query "
                            INSERT INTO `blabliblupp`.`bilder` 
                                (`bild_id`, `bild_anfrage_nr`, `bild_name`, `bild_timestamp`) 
                            VALUES 
                                (NULL, '
            $last_id', '$server_link', CURRENT_TIMESTAMP);
                            "
            ;  
              
                
            $request -> saveEntry($query);
                                
                
            // Clean up memory
                
            unset($data);
                unset(
            $image);
                
                
            // Return file URL
                
            echo './images/'.$filename;
            selbst wenn ich die session_start() oben setze und unten dann einfach

            $last_id = $_SESSION['wert'] schreibe funktioniert es leider nicht.

            Kommentar


            • #7
              bekomme nur den session wert nicht in die last_id
              selbst wenn ich die session_start() oben setze und unten dann einfach

              $last_id = $_SESSION['wert'] schreibe funktioniert es leider nicht.
              Dann liegt der Fehler evtl. schon vorher vor? Dort wo du $_SESSION['wert'] einen Wert zuweist, der weitergetragen werden soll?

              Kommentar


              • #8
                Zitat von SylarBo Beitrag anzeigen
                Dann liegt der Fehler evtl. schon vorher vor? Dort wo du $_SESSION['wert'] einen Wert zuweist, der weitergetragen werden soll?
                PHP-Code:
                    session_start();
                    
                $token = (mt_rand());
                    
                    
                $_SESSION['wert'] = $token
                also hier ist noch alles im lot. auch im javascript werden die klamotten noch gut angezeigt.

                PHP-Code:
                <input type="hidden" name="obsession" value="<?php echo $token;  ?>">
                das ist ja das was mich so ein wenig irritiert.

                Kommentar


                • #9
                  PHP-Code:
                  // Start upload
                                              
                  xhr.open('post''process.php'true);
                                              
                  xhr.send(canvas.toDataURL('image/jpeg')); 
                  oder liegt das ggf. daran, dass ich hier nichts mehr steht bzgl session?

                  Kommentar


                  • #10
                    PHP-Code:
                     session_start(); 
                        
                    $token = (mt_rand()); 
                         
                        
                    $_SESSION['wert'] = $token
                    also hier ist noch alles im lot. auch im javascript werden die klamotten noch gut angezeigt.
                    selbst wenn ich die session_start() oben setze und unten dann einfach

                    $last_id = $_SESSION['wert'] schreibe funktioniert es leider nicht.
                    Also ich bin jetzt nicht gerade ein PHP-Profi aber auch kein absoluter Neuling.
                    Theoretisch müsste das doch so gehen. Die $_SESSION müsste doch erhalten bleiben ... zerstörst du die $_SESION irgendwo zufällig?
                    mit
                    PHP-Code:
                    session_destroy(); 
                    ?

                    Kommentar


                    • #11
                      nein mache ich noch nicht einmal!

                      Kommentar


                      • #12
                        PHP-Code:
                        // Holen der Session ID
                        $last_id 0
                        Hast du das denn mal ausprobiert mit
                        PHP-Code:
                        $_POST['obsession'
                        ?
                        Relax, you're doing fine.
                        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                        Kommentar


                        • #13
                          Zitat von VPh Beitrag anzeigen
                          PHP-Code:
                          // Holen der Session ID
                          $last_id 0
                          Hast du das denn mal ausprobiert mit
                          PHP-Code:
                          $_POST['obsession'
                          ?
                          ja da steht 0 drin. quasi kein wert. also wird aus $_POST['obsession'] nichts übergeben. aktuell sollte 683951358 drin stehen. in meinem fall hier.

                          Kommentar


                          • #14
                            keiner eine idee wie ich mein hidden input feld

                            PHP-Code:
                            // Add elemnt to page
                                                    var imageElement = document.createElement('div');
                                                    imageElement.classList.add('uploading');
                                                    imageElement.innerHTML = '<span class="progress"><span><?php print_r($_SESSION['wert']); ?><input type="hidden" name="obsession" value="<?php echo $token;  ?>"></span></span>';
                                                    var progressElement = imageElement.querySelector('span.progress span');
                                                    progressElement.style.width = 0;
                                                    document.querySelector('form div.photos').appendChild(imageElement);
                            übergeben kann an die process.php???


                            PHP-Code:
                                                        // Start upload
                                                        
                                                        
                            xhr.open('post''process.php'true);
                                                        
                            xhr.send(canvas.toDataURL('image/jpeg')); 
                            dann hätte ich ja die id, die ich benötige.

                            Kommentar

                            Lädt...
                            X