Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-03-31 08:55:27

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Tworzenie plików ze skryptem php

Witam! Mam taki dość nietypowy problem!
Mam 2 pliki ze skryptem php wykonujący pewne operacje, wyglądają one tak:
w katalogu /var/www/apache2-default/katalog/numery
plik -
wyc_numer.php z kodem:
<?php
ob_start();
?>
<?php
define('FPDF_FONTPATH','font/');

require_once('html2fpdf.php');
ob_start();
include_once('/var/www/apache2-default/katalog/pliki/numer1.php');
$htmlbuffer = ob_get_contents();
ob_end_clean();
$pdf = new HTML2FPDF('P','mm','A4');



$pdf->AddPage();
$pdf->SetFont('timespl','',11);
$pdf->SetAutoPageBreak(auto , 8);
$pdf->UseCSS(true);
$pdf->Image('logo.png', $pdf->GetX()+1, $pdf->GetY()+1, 181, 14, 'PNG');
$pdf->SetMargins(10, 8, 20);
$pdf->WriteHTML($htmlbuffer);

$pdf->Output("numer.pdf", "F");
?> 

Jak widać skrypt ten otwiera plik php zamienia go na pdf i zapisuje.
( Pobiera on kod z numer1.php i zapisuje do numer - jest tak dlatego że wczesniej zrobiłem konwersję
z numer.php do numer1.php - polskie znaki )

plik drugi służy do wysyłania maila z załącznikiem -
wyslij_numer.php z kodem:

<?php
//define the receiver of the email
$to = 'benek123@o2.pl';
//define the subject of the email
$subject = 'Wysylanie maila';
//create a boundary string. It must be unique
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time()));
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: email@o2.pl\r\nReply-To: email@o2.pl";
//add boundary string and mime type specification
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
//read the atachment file contents into a string,
//encode it with MIME base64,
//and split it into smaller chunks
$attachment = chunk_split(base64_encode(file_get_contents('numer.pdf')));
//define the body of the message.
ob_start(); //Turn on output buffering
?>
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"

--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: 7bit



--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/html; charset="iso-8859-2"
Content-Transfer-Encoding: 7bit

<h2>Wysylanie maila!</h2>
<p>To jest mail<br>
Jan Kowalski -  numer</p>

--PHP-alt-<?php echo $random_hash; ?>--

--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: application/zip; name="numer.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment

<?php echo $attachment; ?>
--PHP-mixed-<?php echo $random_hash; ?>--

<?php
$godzina =  date("H:i:s");
$data =   date("Y-m-d");
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "wysłany - o godzinie:  $godzina  dnia: $data  - OK<br>" : "nie wysłany  - BŁĄD<br>";
?>


Jak widać kod wysyla utworzony plik pdf'a
Pozatym mam plik który wykonuje te skrypty w lokalizacji bliżej :
/var/www/apache2-default/katalog/
o nazwie wykon.sh

skrypt bash który wykonuje te skrypty php z wpisem:

php wyc_numer.php
php wyslij_numer.php

I teraz tak:
Chciałbym zrobić skrypt php formularza w którym wpiszę 6 cyfr np 123456

i po pierwsze utowrzy mi te dwa pliki ze skryptem (z plików wyc_numer.php i wyslij_numer.php) ale wpis "numer" w nazwie zmieni na wpisane do formularza cyfry
czyli:
jako pierwsze utowrzy w lokalizacji /var/www/apache2-default/katalog/numery:
wyc_123456.php
wyslij_123456.php

oraz w tych dwóch plikach w kodzie wszytskie wpisy "numer" zamieni też na te cyfry czyli - jak spojżycie
na powyższe kody w miejscach w których jest wpis "numer" zamieni na 123456.
I chodzi mi o taki skrypt formularza że po wpisaniu jakichkolwiek 6 cyfr będzie mi tworzył takie pliki ( z kodami z wyc_numer.php i wyslij_numer.php )
i zmieniał kod od środka na te numery i nazwy jak opisałem powyżej. Każde potwierdzenie przyciskie doda nowe pliki i zrobi te zmiany.
Pozatym aby do skryptu bash'a wykon.sh dopisywał dla każdego numeru te dwa wpisy
dla 123456:

php wyc_123456.php
php wyslij_123456.php

itd.
Był bym wdzięczny za pomoc.


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#2  2009-03-31 18:10:57

  grzegorz.85 - Członek DUG

grzegorz.85
Członek DUG
Skąd: Ostrołęka
Zarejestrowany: 2007-07-12
Serwis

Re: Tworzenie plików ze skryptem php

Jak zrobić formularz, to mam nadzieje, że wiesz. Zaczne więc od momentu, gdy masz już w pewnej zmiennej ten ciąg cyfr, np.:

Kod:

$cyfry = '123456';
$file[1] = '/var/www/apache2-default/katalog/numery/wyc_numer.php';
$file[2] = /var/www/apache2-default/katalog/numery/wyslij_numer.php';
$file_new[1] = '/var/www/apache2-default/katalog/numery/wyc_'.$cyfry.'.php';
$file_new[2] = '/var/www/apache2-default/katalog/numery/wyslij_'.$cyfry.'.php';

// teraz czas, na korekte tresci plikow
for($i = 1; $i <2; $i++){
    $lines = file($file[$i]);         // zczytuje wiersze z pliku źródłowego do tablicy
// otwiera plik docelowy do zapisu - tworzy go:
    if(!$handle = fopen($file_new[$i], "w")) die('Nie mogę utworzyć pliku docelowego');
    foreach($lines AS $line) {
        $line = str_replace("numer", $cyfry, $line);   // zamiana tresci
        fwrite($handle, $line);  // zapis do pliku docelowego
    }
    fclose($handle);

    //kolejna sprawa to edycja pliku SH (zakladam, ze na koncu pliku jest pusta linia)
    if(!$handle = @fopen('/var/www/apache2-default/katalog/wykon.sh',"a")) die('Nie mogę otworzyć pliku skryptu SH');
    fwrite($handle, "php ".$file_new[$i]."\n");
    fclose($handle);
}

Kod nie sprawdzony, ale powinien być OK.

Offline

 

#3  2009-03-31 18:12:44

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Tworzenie plików ze skryptem php

Jeżeli dobrze rozumiem ten bełkot, chciałbym zadać pytanie: po cholerę Ci te pliki? Nie możesz użyć $_POST?

Offline

 

#4  2009-04-02 12:54:48

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Tworzenie plików ze skryptem php

Elegancko!!! O to mi chodziło! Tylko mam jeszcze taką sprawę:
jak to udoskonalić żeby można było dokładnie to samo usunąć wpisując numer do formularza??
Czyli wpisuje zatwierdzam dodaje mi się wszystko - ok
znów wpisuje ten sam numer do drugiego pola formularza zatwierdzam i usuwa mi się wszystko:)??
Aha wiez jeszcze co zrobic żeby nie można było operacji dodawania zrobić dwa razy dla tego samego numeru??
Czyli wpisuje numer, dodaje - OK zaraz wpisuje ten sam zatwierdzam i dostaje komunikat że taki już jest??


- OK OK!:)
Już myślę że dam radę - warunek istnienia pliku - bez problemu.
- usuwanie za pomocą unlink
tylko niewiem jak usuwać te dodane linie z pliku??

Ostatnio edytowany przez debbie (2009-04-03 13:27:00)


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)