Eredmény: 1 - 7 (7) összesen

Téma: Fájl másolása PHP-vel, segítség

  1. #1
    Mentor stvn logója
    Csatlakozott
    10-07-29
    Hely
    Maroshévíz
    Hozzászólás
    445
    Begyűjtött 110 köszönetet
    91 hozzászólásával

    Alapbeállítás Fájl másolása PHP-vel, segítség

    Van az alabbi szkript amit a netrol olloztam ossze, egy darabig mukodott, de most tobbe nem akar (nem modositottam rajta), szoval:
    PHP kód:
    <?php
    $max_allowed_file_size 
    2048// size in KB 
    $upload_folder '/uploads/';
    if(isset(
    $_POST['submitted'])) {

    $name_of_uploaded_file =  basename($_FILES['uploaded_file']['name']);
    $type_of_uploaded_file substr($name_of_uploaded_file
                                
    strrpos($name_of_uploaded_file'.') + 1);
    $size_of_uploaded_file $_FILES["uploaded_file"]["size"]/1024;

        if(
    $_POST['message'] == '') {
            
    $messageError 'Nem adtál meg nevet.';
        }
        if(
    $_POST['leiras'] == '') {
            
    $leirasError 'Nem adtál meg telefonszámot.';
            } else if (!
    eregi("[0-9.+%-]"$_POST['leiras'])) {
            
    $leirasError 'Hibás telefonszám.';
        }
        if(
    $_POST['emailFrom'] == '') {
            
    $emailFromError 'Nem adtál meg email címet.';
        } else if (!
    eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$"$_POST['emailFrom'])) {
            
    $emailFromError 'Hibás email cím.';
        }
        
        if(
    $_POST['cim'] == '') {
            
    $cimError 'Nem adtál meg címet.';
        }
        
        if(
    $_POST['szoveg'] == '') {
            
    $szovegError 'Nem adtál meg szöveget.';
        }
        
        if(
    $size_of_uploaded_file $max_allowed_file_size 
        {
            
    $fileError 'A csatolt fájl nem lehet nagyobb mint ' $max_allowed_file_size ' KB';
        }
        
        if(!isset(
    $emailToError) && !isset($emailFromError) && !isset($messageError) && !isset($cimError) && !isset($szovegError) && !isset($fileError)) {
        
    $path_of_uploaded_file $upload_folder $name_of_uploaded_file;
        
    $tmp_path $_FILES["uploaded_file"]["tmp_name"];
        
        if(
    is_uploaded_file($tmp_path))
            {
                if(!
    copy($tmp_path,$path_of_uploaded_file))
                {
                    
    $fileError 'Sikertelen csatolás.';
                }
            }
        if (
    $_POST['tipus']=='hir') {
    $mailTo "aaaaa@bbbbb.info";
    } else {
    $mailTo "ccccc@ddddddd.info";
    }
    $mailFrom $_POST['emailFrom'];
    $subject "Uzenet a honlaprol";
    $message " Tipus: " $_POST['tipus'] . " Nev: " $_POST['message'] . "\n Telefon: " $_POST['leiras'] . " \n Email: " $_POST['emailFrom'] . " \n Cim: " $_POST['cim'] . " \n Szoveg: " $_POST['szoveg'] . " \n Csatolmany: " home_url() . $path_of_uploaded_file;

                
    mail($mailTo$subject$message"From: ".$mailFrom);

    echo 
    "<br /><br /><span class=\"error\">Adatok sikeresen elküldve, hamarosan elbírálásra kerülnek.</span>";
        }
        }
    ?>
    A levelet elküldi, benne a csatolmány linkjével, de a csatolmányt nem tuja átmásolni az uploads mappába; Sikertelen csatolás. hibát dob.
    Ötleteiteket előre is köszönöm.



  2. #2
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.744
    Begyűjtött 1.428 köszönetet
    892 hozzászólásával

    Alapbeállítás re: Fájl másolása PHP-vel, segítség

    Idézet stvn eredeti hozzászólása Hozzászólás megtekintése
    Van az alabbi szkript amit a netrol olloztam ossze, egy darabig mukodott, de most tobbe nem akar (nem modositottam rajta), szoval:
    PHP kód:
    <?php
        
        
    if(is_uploaded_file($tmp_path))
            {
                if(!
    move_uploaded_file($tmp_path,$path_of_uploaded_file))
                {
                    
    $fileError 'Sikertelen csatolás.';
                }
            }
        if (
    $_POST['tipus']=='hir') {
    $mailTo "aaaaa@bbbbb.info";

        }
        }
    ?>
    A levelet elküldi, benne a csatolmány linkjével, de a csatolmányt nem tuja átmásolni az uploads mappába; Sikertelen csatolás. hibát dob.
    Ötleteiteket előre is köszönöm.
    Elvileg a copyval is mukodnie kellene. Nem lehet hogy elfogyott a tarhely? A masik fontos dolog, hogy ezzel siman fel lehet tolteni hozzad egy backdoort .


    If debugging is the process of removing software bugs, then programming must be the process of putting them in.
    Ruby blog
    Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.
    Respect all, fear none

  3. Az alábbi felhasználók hálásak a válaszért:

    stvn (2013-03-15)

  4. #3
    Bölcs
    Csatlakozott
    08-01-02
    Hozzászólás
    1.271
    Begyűjtött 82 köszönetet
    53 hozzászólásával

    Alapbeállítás re: Fájl másolása PHP-vel, segítség

    Így hirtelen csak az jut eszembe, hogy kiiratnám a php hibaüzenetet.
    PHP kód:
    ini_set('display_errors','On');
    error_reporting(E_ALL E_NOTICE); 
    Amire tudok gondolni: nem létezik a könyvtár, nincs megfelelő jogosultság rá.



  5. Az alábbi felhasználók hálásak a válaszért:

    stvn (2013-03-15)

  6. #4
    Bölcs
    Csatlakozott
    08-01-02
    Hozzászólás
    1.271
    Begyűjtött 82 köszönetet
    53 hozzászólásával

    Alapbeállítás re: Fájl másolása PHP-vel, segítség

    Idézet Geri eredeti hozzászólása Hozzászólás megtekintése
    Elvileg a copyval is mukodnie kellene. Nem lehet hogy elfogyott a tarhely? A masik fontos dolog, hogy ezzel siman fel lehet tolteni hozzad egy backdoort .
    Én eleve !copy-t látok ott?!!?!?!?

    Mit jelent a backdoor feltöltés elleni védekezés? (Még sosem gondoltam ilyesmire csak ezért kérdem.) Arra gondolsz, hogy nem kellene engednie, hogy pl php kiterjesztésű fájlokat feltölthessenek?



  7. #5
    Mentor stvn logója
    Csatlakozott
    10-07-29
    Hely
    Maroshévíz
    Hozzászólás
    445
    Begyűjtött 110 köszönetet
    91 hozzászólásával

    Alapbeállítás re: Fájl másolása PHP-vel, segítség

    Köszönöm a válaszokat, tárhely van elegendő, könyvtár létezik és írható (cmod 777), rögtön megpróbálom kiíratni a hibaüzeneteket is...

    @Geri a következő lépés a fájl típusok korlátozása, de ha fel is lehetne tölteni valami ártalmasat, ahhoz, hogy kihasználja, a támadó kellene tudja a feltöltött fájl URL-jét, nem?



  8. #6
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.744
    Begyűjtött 1.428 köszönetet
    892 hozzászólásával

    Alapbeállítás re: Fájl másolása PHP-vel, segítség

    Idézet oszti eredeti hozzászólása Hozzászólás megtekintése
    Én eleve !copy-t látok ott?!!?!?!?
    copy helyett ilyenkor elvileg move_uploaded_file a javasolt megoldas amennyire en tudom.
    Idézet oszti eredeti hozzászólása Hozzászólás megtekintése
    Mit jelent a backdoor feltöltés elleni védekezés? (Még sosem gondoltam ilyesmire csak ezért kérdem.) Arra gondolsz, hogy nem kellene engednie, hogy pl php kiterjesztésű fájlokat feltölthessenek?
    Igen arra. Semmi olyat nem szabad engedelyezni ami szerveren futtathato.

    Idézet stvn eredeti hozzászólása Hozzászólás megtekintése
    @Geri a következő lépés a fájl típusok korlátozása, de ha fel is lehetne tölteni valami ártalmasat, ahhoz, hogy kihasználja, a támadó kellene tudja a feltöltött fájl URL-jét, nem?
    /uploads/fajlnev azert konnyen kitalalhato . Raadasul ha veletlenul elo tud hozni egy hibauzenetet, akkor abbol megint csak tud kovetkeztetni az ember.


    Utoljára módosítva: Geri által : 2013-03-15 12:01

  9. Az alábbi felhasználók hálásak a válaszért:

    oszti (2013-03-15)

  10. #7
    Mentor stvn logója
    Csatlakozott
    10-07-29
    Hely
    Maroshévíz
    Hozzászólás
    445
    Begyűjtött 110 köszönetet
    91 hozzászólásával

    Alapbeállítás re: Fájl másolása PHP-vel, segítség

    Nos, mégegyszer köszönöm a válaszaitokat, a probléma megoldódott, $upload_folder = '/uploads/'; helyett $upload_folder = 'uploads/'; a nyerő.



Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •