Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Biblioteka MPDF - problem
Forum PHP.pl > Forum > PHP
AuronDiel
Witam wszystkich! Zainstalowałem poprawnie biblioteke mpdf i stworzyłem plik php
  1. $dane2 = "<?php
  2. include('mpdf/mpdf.php');
  3. " . '$mpdf' . "=new mPDF();
  4. " . '$html' . "='$dane';
  5. " . '$mpdf' . "->WriteHTML(" . '$html' . ");
  6. " . '$mpdf' . "->Output" . '(' ."$_SESSION[temat].pdf" . ',' ."F" .')' . ";
  7. exit; ?>";

(fragment). Problem tkwi w tym, że skrypt mi tworzy plik o nazwie np ,,tematpdf" bez kropki.
Jak temu zaradzić, by postać to miało taką ,,temat.pdf"?

Dziekuję za pomoc i pozdrawiam.
sf
Takie brzydkiego kodu to już dawno nie widziałem, jak można tak pisać? Sam sobie jesteś winny błędu bo piszesz okropnie. Problem tkwi w tym, że string w nazwie funkcji powinien być w cudzysłowiu.
AuronDiel
  1. $dane2 = "<?php
  2. header('location:$_SESSION[temat].pdf');
  3. include('mpdf/mpdf.php');
  4. " . '$mpdf' . "=new mPDF();
  5. " . '$html' . "='$dane';
  6. " . '$mpdf' . "->WriteHTML($html);
  7. " . '$mpdf->Output' . "("$_SESSION[temat].pdf" .','. "F");
  8. exit; ?>";



Poprawiłem na coś takiego ale niestety wypluł mi to:
Parse error: syntax error, unexpected T_VARIABLE
w tej linijce nr 7.

Błagam o pomoc sad.gif
CuteOne
  1. $dane2 = '<?php
  2. include("mpdf/mpdf.php");
  3. $mpdf =new mPDF();
  4. $html = $dane;
  5. $mpdf->WriteHTML($html);
  6. $mpdf->Output("'.$_SESSION['temat'].'.pdf", "F");
  7. exit; ?>';
AuronDiel
  1. $dane2 = "<?php
  2. header('location:$_SESSION[temat].pdf');
  3. include('mpdf/mpdf.php');
  4. " . '$mpdf' . "=new mPDF();
  5. " . '$html' . "='$dane';
  6. " . '$mpdf' . "->WriteHTML($html);
  7. " . '$mpdf->Output' . "("'.$_SESSION['temat'].'.pdf", "F");
  8. exit; ?>";


Niestety dalej błąd tym razem:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING w 7 linijce
Próbowałem się doszukać jakiegoś brakującego apostrofa lecz nic nie widz. sad.gif

eMCeH
masz:
  1. '.$_SESSION['


powinno być chyba tak:
  1. " . '$mpdf->Output' . "("'.$_SESSION["temat"].'.pdf", "F");
AuronDiel
Ten sam błąd wyskakuje... sad.gif
eMCeH
z drobną zmianą kod, który Ci podał CuteOne powinien zadziałać:

  1. $dane2 = '<?php
  2. include("mpdf/mpdf.php");
  3. $mpdf =new mPDF();
  4. $html = $dane;
  5. $mpdf->WriteHTML($html);
  6. $mpdf->Output("'.$_SESSION["temat"].'.pdf", "F");
  7. exit; ?>';


skoro dajesz:
  1. " . '$mpdf' . "->WriteHTML($html);


to logicznym wydaje się być:
  1. " . '$mpdf' . "->Output(" '.$_SESSION["temat"].' .pdf", "F");
AuronDiel
  1. $dane2 = '<?php
  2. header('location:$_SESSION[temat].pdf');
  3. include("mpdf/mpdf.php");
  4. $mpdf =new mPDF();
  5. $html = "$dane";
  6. $mpdf->WriteHTML($html);
  7. $mpdf->Output("'.$_SESSION["temat"].'.pdf", "F");
  8. exit; ?>';


W header jest błąd ,,Parse error: syntax error, unexpected T_STRING"
Czy może mi ktoś wytłumaczyć na jakiej zasadzie dajemy apostrof albo cudzysłów?
Chciałbym sobie radzić z tym sam, ale niestety nie wiem od czego zacząć. Ktoś doradzi? Ktoś pomoże?
CuteOne
  1. $string = 'Ala ma cat'sy';
  2. $string = "Ala ma cat'sy";
  3. $string = 'Ala ma cat\'sy';
  4. $string = 'Ala ma cat"sy';


Sprawdź, która zmienna wyrzuci błąd i zastosuj poprawne formy w swoim kodzie
AuronDiel
  1. header('location:"$_SESSION['temat'].pdf');
  2. header('location:\'$_SESSION['temat'].pdf');
  3. header('location:'.$_SESSION['temat'].'.pdf"');
  4. header('location:'.$_SESSION['temat'].'.pdf');
  5. header('"location:".'.$_SESSION['temat'].'.pdf');


Fail za failem sad.gif probowałem jakoś wyciągnąć wnioski, chyba średnio to wyszło.
  1. $string = 'Ala ma cat'sy'; NIE DZIALA
  2. $string = "Ala ma cat'sy"; DZIALA
  3. $string = 'Ala ma cat\'sy'; DZIALA
  4. $string = 'Ala ma cat"sy'; DZIALA
eMCeH
Spróbuj tak:
  1. $parametry = 'location';
  2. $parametry .= "$_SESSION['temat']";
  3. $parametry .= '.pdf';
  4. header($parametry);

lub:
  1. $parametry = 'location';
  2. $parametry .= "$_SESSION[temat]";
  3. $parametry .= '.pdf';
  4. header($parametry);




czyli dla:
  1. $par = "ala";
  2. $par .= 'ma';
  3. $par .= 'kota "na punkcie psa"';
  4. echo $par;

wynik:
Kod
alamakota "na punkcie psa"

zwróć uwagę, że wewnętrzny " " jest przetwarzany jak każda inna litera
CuteOne
  1. <?php
  2. $dane2 =
  3. '<?php
  4. header(\'Location: \'.$_SESSION[\'temat\'].\'.pdf\');
  5. include("mpdf/mpdf.php");
  6. $mpdf =new mPDF();
  7. $html = $dane;
  8. $mpdf->WriteHTML($html);
  9. $mpdf->Output($_SESSION[\'temat\'].\'.pdf\', "F");
  10. exit; ?>';
AuronDiel
Dalej w skrypcie mam zastosowana funkcje fopen oraz fwrite gdzie wpisuje całą zmieną $dane2
CuteOne:
Nie wypisuje błędu ale w stworzony pliku nie wpisało zmienej z sesji.
  1. <?php
  2. header('Location: '.$_SESSION['temat'].'.pdf');
  3. include("mpdf/mpdf.php");
  4. $mpdf =new mPDF();
  5. $html = "$dane";
  6. $mpdf->WriteHTML($html);
  7. $mpdf->Output("KOniecchyba.pdf", "F");
  8. exit; ?>


Tak się zapisał plik.

eMCeH, o dziwo nie działą... niestety sad.gif

Napisałem jeszcze to tak:
  1. $dane2 = '<?php
  2. header(Location:'.$_SESSION['temat'].'.pdf);
  3. include("mpdf/mpdf.php");
  4. $mpdf =new mPDF();
  5. $html = "$dane";
  6. $mpdf->WriteHTML($html);
  7. $mpdf->Output("'.$_SESSION["temat"].'.pdf", "F");
  8. exit; ?>';

Header prawie dziala wpisuje wszystko tak jak powinno być lecz nie ma apostrofu na początku i na końcu funkcji a po dopisaniu ich w pierwszej formie czyli:
  1. header('Location:'.$_SESSION['temat'].'.pdf');
Pisze o błędzie STRING :<
eMCeH
dokładnie jaki błąd? w którym wierszu?
AuronDiel
  1. $dane2 = '<?php
  2. $parametry = 'location:';
  3. $parametry .= "$_SESSION['temat']";
  4. $parametry .= '.pdf';
  5. header($parametry);
  6. include("mpdf/mpdf.php");
  7. $mpdf =new mPDF();
  8. $html = "$dane";
  9. $mpdf->WriteHTML($html);
  10. $mpdf->Output("'.$_SESSION["temat"].'.pdf", "F");
  11. exit; ?>';


T_STRING w 2 linijce, kiedy zmieniam na cudzysłów to mam

To jest blad T_STRING w 3 linijce, kiedy zmieniam znowu na cudzysłów to mam błąd T_VARIABLE

  1. $dane2 = '<?php
  2. $parametry = "location:";
  3. $parametry .= '$_SESSION['temat']';
  4. $parametry .= '.pdf';
  5. header($parametry);
  6. include("mpdf/mpdf.php");
  7. $mpdf =new mPDF();
  8. $html = "$dane";
  9. $mpdf->WriteHTML($html);
  10. $mpdf->Output("'.$_SESSION["temat"].'.pdf", "F");
  11. exit; ?>';
eMCeH
napisz mi jaki masz mieć wynik $header
AuronDiel
nie rozumiem, skrypt nie doszedl do header mam blad i tyle
klocu
Tyle postów, ale na dobrą sprawę nie wiadomo o co chodzi.
Co to ma zrobić? Stworzyć plik z danymi, czy z czym?

Patrząc na proponowane rozwiązanie z nagłówkiem...
Chcesz przekierować przeglądarkę do pliku, który dopiero za jakąś chwilę stworzysz - jaki masz w tym cel?

To może jeszcze raz - jakie dane masz na wejściu poza ($_SESSION['temat'] i $dane) i dokładnie jak ma wyglądać plik, który chcesz otrzymać na wyjściu.
Bo inaczej dalej będziemy podsyłać kawałki kodu i znowu w odpowiedzi dostaniemy listę exceptionów albo stwierdzeń "nie działa tak jakbym chciał"
AuronDiel
  1. $tresc = $_POST['tresc'];
  2. $dane = "$tresc";
  3.  
  4. $dane2 = '<?php
  5. header('Location:'.$_SESSION['temat'].'.pdf');
  6. include("mpdf/mpdf.php");
  7. $mpdf =new mPDF();
  8. $html = "$dane";
  9. $mpdf->WriteHTML($html);
  10. $mpdf->Output("'.$_SESSION["temat"].'.pdf", "F");
  11. exit; ?>';
  12. $fp2 = fopen("sc/$_SESSION[kategoria]/pdf/$_SESSION[temat]2.php", "w");
  13. $test2 = fwrite($fp2, $dane2);
  14. if($test)
  15. {
  16. header("Location: zrobione.php");
  17. }


Skrypt tworzy plik php ktory zawiera biblioteke mpdf($dane2), uzytkownik ktory wejdzie na ten plik, stworzy mu sie PDF na podstawie danych($dane) oraz od razu zacznie pobierac ten plik.
Na wyjściu chce otrzymać plik który ma w sobie coś takiego:
  1. <?php
  2. header('Location: $_SESSION['temat'].pdf');
  3. include("mpdf/mpdf.php");
  4. $mpdf =new mPDF();
  5. $html = "$dane";
  6. $mpdf->WriteHTML($html);
  7. $mpdf->Output("$_SESSION['temat']", "F");
  8. exit; ?>


oczywiscie na miescju $_SESSION['temat'] ma być jakaś zmiena która użytkownik wcześniej podał.

Dziękuje za pomoc, udało się.
Gotowy kod wygląda tak:
  1. $dane2 = "<?php
  2. header('location:$_SESSION[temat].pdf');
  3. include('mpdf/mpdf.php');
  4. " . '$mpdf' . "=new mPDF();
  5. " . '$html' . "='$dane';
  6. " . '$mpdf' . "->WriteHTML(" . '$html' . ");
  7. " . '$mpdf' . "->Output" . '("'.$_SESSION["temat"].'.pdf", "F")' . ";
  8. exit; ?>";

Kod jest strasznieee chaotyczny i przyznaje szczerze, że nie mam pojęcia czemu ten właśnie zagmatwany kod działa a pozotałe próby, które z podejścia php wyglądały dobrze, nie działały.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.