mit php eine seite ausrufen

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

  • mit php eine seite ausrufen

    Moin

    evt hab ich einen unklaren titel verwendet, deshalb hier die erklärung was ich möchte:

    Ich möchte in meinem script Postdaten an ein anderes script übergeben. dieses script arbeitet dann selbstständig seine definierten aufgaben ab und braucht keine rückmeldung zu machen.

    wie lässt sich das am einfachsten realisieren?

    Grüsse aXu

  • #2
    Also, du willst irgendeine Seite voll spamen?

    Kommentar


    • #3
      klar ;-)

      Nein, natürlich nicht.

      Ich hab auf meiner webpage einen kleinen adminbereich in dem ich die thumbnails für die gallery erstellen kann. Aber da dieses recht lange dauern kann und ich weiterarbeiten möchte soll das script selbstständig die thumbnails erstellen.

      PHP-Code:
      echo '<h1>Adminpanel</h1>';
      echo 
      '<h2>Galeriefunktionen</h2>';
      echo 
      '<form action="$_self" method="POST">Folder: <input type="text" name="adm_folder" /><br />
      <input type="submit" value="Create Thumbnails" name="1" /> 
      <input type="submit" value="Count Thumbnails" name="2" /></form>'
      ;

      if(!empty(
      $_POST['adm_folder']) && ($_POST['1'] == 'Create Thumbnails'))

          echo 
      'Thumbnails werden erstellt.'
      Hier soll das script aufgerufen werden.
      }
      if(!empty(
      $_POST['adm_folder']) && ($_POST['2'] == 'Count Thumbnails'))

      nix spamen, dafür gibbet wenn nötig andere tools
      Zuletzt geändert von aXu; 19.03.2008, 12:20.

      Kommentar


      • #4
        Lesen: http://www.php-resource.de/forum/sho...threadid=50454

        Kommentar


        • #5
          [COLOR=crimson]Brich bitte deinen Code um!![/color]

          Und dann starte halt dein Script mit JS in einem eigenen Fenster und lass es sich, nachdem es seinen Job gemacht hat, selber zerstören.
          Gruss
          H2O

          Kommentar


          • #6
            1. Code umbrechen
            2. fsockopen benutzen.
            Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
            var_dump(), print_r(), debug_backtrace und echo.
            Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
            Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
            Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

            Kommentar


            • #7
              Ô.o

              3 Antworten
              3 x wird wegen dem nicht umgebrochenen code gemeckert
              1 x wird etwas von javascript geschrieben, obwohl explizit eine php-lösung gesucht wurde

              1 x wird einen ansatz gepostet

              Ich sehe schon, so komm ich net weiter...

              thx an Shurakai für den schubser mit dem fsockopen. Das ist mir auch schon durch den kopf gegeistert, weiss aber nicht wie umsetzten.

              Kommentar


              • #8
                Mm, also ich würde (Die Möglichkeiten auf dem Server vorausgesetzt) entweder:
                - Das Thumbnails generieren auslagern und stündlich mit einem Cron-Job durchführen
                - Mit einem Exec und mit nohup, das das PHP-Skript im Hintergrund aufruft (Entweder direkt via php oder über einen Umweg wie curl), arbeiten.

                Erfordert aber beides spezielle Systemeinstellungen (Sehr selten, nur bei wenigen Providern aktiv) oder einen Root-Server sowie Umbauten am Skript.

                @Shurakai: Wie macht man das mit fsockopen()? Würde mich auch interessieren!

                Kommentar


                • #9
                  @Shurakai: Wie macht man das mit fsockopen()? Würde mich auch interessieren!
                  Mittels fsockopen() & Co kann man einen POST Request mit den entsprechenden Werten an den Server übergeben. Ich denke, das meinte er in etwa...

                  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


                  • #10
                    Ganz einfach zB so:

                    PHP-Code:
                    $fp fsockopen($str_server$int_port$errno$errstr);

                    // Schicken der Daten
                    fwrite($fp"POST /<datei> HTTP/1.1\r\n Content-Type: application/x-www-form-urlencoded\r\n
                    Host: "
                    .$str_server."\r\nContent-Length: ".strlen($str_query)."\r\nConnection: close\r\n
                    \r\n"
                    .$str_query);

                    // Abholen der Antwort
                    $str_reply '';
                    while (!
                    feof($fp))
                    {
                        
                    $str_reply .= fgets($fp);
                    }

                    fclose($fp); 

                    Das fwrite ist eigentlich 1 Zeile.

                    $str_query ist dabei ein String der Form "formField1Name=formField1Value&formField2Name=formField2Value" etc.

                    @aXu: Benutzt du Image Magick?
                    Zuletzt geändert von Shurakai; 19.03.2008, 14:55.
                    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                    var_dump(), print_r(), debug_backtrace und echo.
                    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                    Kommentar


                    • #11
                      Mmm aber mein Verständnis war daß der Threadstarter das ganze im Hintergrund machen will, also den Job anwerfen und gut ist. Oder hab ich das falsch verstanden?

                      Kommentar


                      • #12
                        Im Prinzip brauchst du nicht auf eine Antwort zu warten (while-Schleife weglassen), aber dann kannst du auch nicht wissen, ob die Daten ankommen und korrekt angenommen wurden.

                        Also AJAX und fsockopen wäre richtiger.

                        Kommentar


                        • #13
                          Ajax und fsockopen, um Thumbnails für eine Gallery zu erstellen? Also einer von uns spinnt. Das ist doch ein Serverjob, den man anstößt und gut ist.

                          Kommentar


                          • #14
                            Original geschrieben von pekka
                            Ajax und fsockopen, um Thumbnails für eine Gallery zu erstellen? Also einer von uns spinnt. Das ist doch ein Serverjob, den man anstößt und gut ist.
                            Ähm ... ich weiss ja nich was der TS per POST sendest, um das Bild zu generieren, daher ... ... vielleicht braucht er ja diese Daten für das Bild, etwa im Bild einbetten und so ...

                            Kommentar


                            • #15
                              nee, is schon korrekt, ich hab mir in php ein script geschrieben welches mir die thumbnails erstellt. an dieses php-script muss ich aber noch den ordner übergeben, welchen er umwandeln soll.

                              PHP-Code:
                              <?php
                              set_time_limit
                              (90000000);

                              if(!empty(
                              $_POST['adm_folder']) && ($_POST['1'] == 'Create Thumbnails'))

                                  echo 
                              'Thumbnails werden erstellt.'
                              $thumbdir $_POST['adm_folder'];
                              mkdir('gallery/'.$thumbdir.'/thumb'777);
                              $dir opendir('gallery/'.$thumbdir);
                              $eintrag readdir($dir);
                              while(
                              $eintrag)
                                  {    
                                      if(
                              $eintrag=="." or $eintrag==".." or $eintrag=="thumb")
                                          {
                                              
                              $eintrag readdir($dir);
                                          }
                                              else
                                          {
                                              
                              $bilder[] = $eintrag;            
                                              
                              $eintrag readdir($dir);
                                          }
                                  }
                              closedir($dir);
                              $anzahl count($bilder); // Zählt die Anzahl Bilder im Array
                              sort($bilder); // Sortiert das Array 
                              $imgnr 0;
                              while (
                              $imgnr<$anzahl)
                              {
                              $Grafikdatei 'gallery/'.$thumbdir.'/'.$bilder[$imgnr];
                              $Bilddaten getimagesize($Grafikdatei);
                              $OriginalBreite $Bilddaten[0];
                              $OriginalHoehe $Bilddaten[1];
                              $ThumbnailBreite 120;
                              $ThumbnailHoehe 120;
                              if(
                              $OriginalBreite $OriginalHoehe)
                              {
                                  
                              $Skalierungsfaktor $OriginalBreite/$ThumbnailBreite;
                                  
                              $ThumbnailHoehe intval($OriginalHoehe/$Skalierungsfaktor);
                              }
                              else
                              {
                                  
                              $Skalierungsfaktor $OriginalHoehe/$ThumbnailHoehe;
                                  
                              $ThumbnailBreite intval($OriginalBreite/$Skalierungsfaktor);
                              }
                              $Originalgrafik ImageCreateFromJPEG($Grafikdatei);
                              $Thumbnailgrafik ImageCreateTrueColor($ThumbnailBreite$ThumbnailHoehe);
                              imagecopyresampled($Thumbnailgrafik$Originalgrafik0000
                              $ThumbnailBreite$ThumbnailHoehe$OriginalBreite$OriginalHoehe);
                              ImageJPEG($Thumbnailgrafik'gallery/'.$thumbdir.'/thumb'.$bilder[$imgnr], 85); 
                              // Die letzte Zahl setzt die Qualität des Bildes
                              $imgnr $imgnr 1;
                              }
                              }
                              ?>
                              knackpunkt ist hier: if(!empty($_POST['adm_folder']) && ($_POST['1'] == 'Create Thumbnails'))

                              diese beiden sollen übergeben werden.

                              Irgendwelche rückmeldungen brauch ich nicht, das script sollte so funktionieren.

                              ich werde mal das dinf mit dem fsockopen versuchen, evt geht es ja ^^

                              mit ajax etc möchte ich net arbeiten da ich davon schlichtweg keine ahnung hab ^^

                              Cronjob fällt auch weg, is ja nur 1xmal in der woche wo ich so ne neue galerie aufschalten möchte.

                              curl, exec etc werden sicherlich deaktiviert sein, da es ein vhost ist auf dem ich mich eingemietet habe.

                              grüsse aXu

                              Kommentar

                              Lädt...
                              X