Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

dodavanje teksta u .txt file

[es] :: PHP :: dodavanje teksta u .txt file

[ Pregleda: 1006 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

simun l
web

Član broj: 223957
Poruke: 14
*.adsl.net.t-com.hr.



Profil

icon dodavanje teksta u .txt file10.07.2009. u 12:33 - pre 180 meseci
problem mi je sa foreach opcijom, dakle kraj svake slike u galeriji sam dodao formu za unos teksta, ali kad unesem tekst i pritisnem dodaj, u sve tekst failove mi doda tekst a ne samo u onaj koj treba

evo kod stranice

Code:
<?php
    $object = new S_Object($_REQUEST['id']);
    $object->gallery->getPhotos();
    
    $filename = "../files/naslovi/" . $_GET['id'];
    if (is_dir($filename)) {
    } else {
    mkdir("../files/naslovi/" . $_GET['id'], 0777);
    }


    
?>

    <h1>Slike za &quot;<?=$object->sifra?> <?=$object->naziv_hr?>&quot;</h1>
    
    <form method="post" enctype="multipart/form-data" class="edit">
        <h2 class="fieldset-title">Upload nove slike</h2>
        <fieldset>
            <input type="file" name="photo" />
            <input type="hidden" name="page" value="<?php echo $_GET['page']; ?>" />
            <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" />
            <input type="hidden" name="action" value="add_photo" />
            <input type="hidden" name="action" value="add_photo" />
            <input type="submit" name="submit" value="Dodaj" />
        </fieldset>
    </form>    
<?php

    if (! empty($_GET['message'])) {
?>    
    <div class="message">
        <?php echo $_REQUEST['message']; ?>
    </div>    
<?php
    }


    if (is_array($object->gallery->photos)) {

?>
    <table class="list">
        <thead>
            <tr>
                <th><a>Pregled</a></th>
                <th><a>Naziv</a></th>
                <th><a>Veli&#269;ina</a></th>
                <th><a>Dimenzije</a></th>
                <th><a>Glavna</a></th>
                <th>&nbsp;</th>
            </tr>
        </thead>
<?php    
        foreach($object->gallery->photos as $k => $photo) {
            
        
            $info = getimagesize($object->gallery->folder . $photo['filename']);
            $size = filesize($object->gallery->folder . $photo['filename']);
?>
<? 
            
            $ourFileName = "../files/naslovi/" . $_GET['id'] . "/" . $photo['filename'] . ".txt";
            
            if (file_exists($ourFileName)) {
            } else {
            $ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
            fclose($ourFileHandle);
            }
            
            
            $myFile = "../files/naslovi/" . $_GET['id'] . "/" . $photo['filename'] . ".txt";
            $fh = fopen($myFile, 'w') or die("can't open file");
            
            
            $stringData = $_POST['quantity'];
            fwrite($fh, $stringData);
            fclose($fh);

            ?>
        <tr>
       
            <td><a class="thickbox" rel="photos1" href="/files/objects/<?=$object->id?>/<?=$photo['filename']?>"><img style="border: 0" src="/images/cache/objects/<?=$object->id?>/<?=$photo['filename']?>/w-200.jpg" /></a></td>
            <td>

<form action="" method="post"> 

<input name="quantity" type="text" value="<? echo $stringData;?>"/> 
<input type="submit" value="Dodaj" />
</form>


    
            </td>
            <td><?=round($size/1024)?> KB</td>
            <td><?=$info[0]?> x <?=$info[1]?></td>
            <td><input type="radio" class="main-photo" name="main" id="main-<?=$k?>"<?php if ($photo['fields']['main']) echo ' checked="checked"'; ?> /></td>
            <td><a onclick="return confirm('Sigurno brisati?')" class="delete" href="?page=<?=$_GET['page']?>&action=delete_photo&id=<?=$object->id?>&filename=<?=$photo['filename']?>">brisanje</a></td>
        </tr>    

<?php            
        }
?>
    </table>
<?php
    }
?>
    <script type="text/javascript">
    /*<![CDATA[*/
        $(document).ready(function(){
            $('input.main-photo').click(function(){
                id = this.id.replace('main-', '');
                $.ajax({
                    url: 'ajax.php',
                    method: 'post',
                    data: '&action=set_main_photo&id=<?=$object->id?>&photo_key='  + id,
                });
            });
        });
    /*]]>*/
    </script>


dakle skripta napravi folder koj se zove po id galerije, txt file koj se zove kao slika i u njega bi trebalo upisat text iz forme

neka idejaa
 
Odgovor na temu

SETI_explorer
Vladimir Stamenković
Wordpress Developer
Vukojebina

Član broj: 128574
Poruke: 29
93.87.228.*

Sajt: www.pentesting-rs.org


Profil

icon Re: dodavanje teksta u .txt file24.07.2009. u 13:51 - pre 179 meseci
Uhh..

Moj iskreni savet je da sedneš i sve ovo napišeš ponovo... Kod je zaista jako jako nepregledan i što je još gore jako jako ranjiv.

1. Možda bi bilo bolje da imaš samo jedan <?php i jedan ?> a tamo gde ubacuješ HTML, jednostavno staviš echo 'HTML kod';
2. I sam HTML kod je jako neuredan> pr. - <input type="hidden" name="action" value="add_photo" /> si duplirao, itd...
3.

Code:
  $filename = "../files/naslovi/" . $_GET['id'];
    if (is_dir($filename)) {
    } else {
    mkdir("../files/naslovi/" . $_GET['id'], 0777);
    }


Ovo je strahovit propust. Ovo $_GET['id'] je ovo: <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" />
Dakle URL bi izgledao odprilike ovako: tvojsajt.com?galerija.php?id=1
Šta ako napadač, umesto 1 stavi: ../../../hacker ?

Pogledajmo opet ovu liniju:

mkdir("../files/naslovi/" . $_GET['id'], 0777);

Dakle, skripta će napraviti direktorijum hacker sa mod-om 777 !

Dalje... Skripta će kreirati fajl $photo['filename'].txt

A šta ako je url sledeći:

tvojsajt.com?galerija.php?id=../../../hacker/&filename=shell.php%00

%00 == null bite => ono .txt se ignoriše.

Dakle u root folderu sajta imamo folder hacker sa mod-om 777 i fajlom shell.php unutar njega. Samo mašta napadača ograničava istog .. ;)

Što se tvog problema tiče ... hmm ... jedino što ti ovako na brzinu mogu reći jeste da mislim da je problem u sledećoj liniji:

foreach($object->gallery->photos as $k => $photo)

Nadam se da sam bar malo pomogao .. ;)
 
Odgovor na temu

[es] :: PHP :: dodavanje teksta u .txt file

[ Pregleda: 1006 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.