ďťż

[PHP] komunikacja między stronami

       

Podstrony


telcocafe

Witam. Mam problem z przekazaniem danych z pliku do pliku. Mam formularz w kilku krokach, gdzie dostępne są zmienne "folder", "kolor1" i "kolor2". W pliku głównym inkluduję dodatkowy plik "krok3.php" - w tym pliku obecne są wcześniej wymienione zmienne. W pliku "krok3.php" inkluduję kolejny plik - "sklej02.php" - i tu już nie mam zasięgu zmiennych... Dodam, że w tym ostatnim pliku ma być skrypt łączący grafikę, więc nie może być nic przed nagłówkiem...
Skoro dane w formularzu przesyłane są POSTem, dane do pliku z grafiką próbowałem przesłać GETem.

krok3.php
$sklej = $_POST['folder']; $kolor = $_POST['kolor1'] || $_POST['kolor2'] $kolor1 = $_POST['kolor1']; $kolor2 = $_POST['kolor2']; include ($sciezka2.'p02/sklej02.php?sciezka=$sciezka2&kolor1=$kolor1&kolor2=$ kolor2');
sklej02.php
$url = "http://localhost/herb/"; $sciezka2 = $_GET['sciezka']; $kolor1 = $_GET['kolor1']; $kolor2 = $_GET['kolor2']; echo ($_GET['sciezka']); echo "<br />"; echo ($_GET['kolor1']); echo "<br />"; echo ($_GET['kolor2']);

Ma ktoś jakiś pomysł?
Użytkownik Kshyhoo edytował ten post 02 czerwiec 2009, 22:25


Aleś wyimaginował :)

include('plik.php?cos=zonk');

Plik.php nie bedzie widział tego cos jako $_GET['cos']. Powinno być tak:

$cos = 'zonk'; include('plik.php');

A w pliku plik.php zamiast $_GET['cos'], po prostu $cos.
Użytkownik PiKey edytował ten post 03 czerwiec 2009, 06:30
Do tej pory nieco pozmieniałem ;p W przypadku:
krok3.php
$_GET['adres'] = $adres; $_GET['kolor1'] = $kolor1; $_GET['kolor2'] = $kolor2; include ($sciezka2.'p02/sklej02.php'); echo "<br />";
sklej02.php
$adres = $_GET['adres']; $kolor1 = $_GET['kolor1']; $kolor2 = $_GET['kolor2']; echo "<br />adres: "; echo ($_GET['adres']); echo "<br />kolor1: "; echo ($_GET['kolor1']); echo "<br />kolor2: "; echo ($_GET['kolor2']); echo "<br />plik: ";
Po wybraniu pliku krok3.php, są widoczne zmienne na ekranie. Po wybraniu sklej02.php, niestety - nie.

Twoje rozwiązanie powinno wyglądać tak:?
krok3.php
$adres = $url.$sciezka2."p02"; $kolor1 = $_POST['kolor1']; $kolor2 = $_POST['kolor2']; include ($sciezka2.'p02/sklej02.php');
sklej02.php
echo "<br />adres: "; echo ($adres); echo "<br />kolor1: "; echo ($kolor1); echo "<br />kolor2: "; echo ($kolor2]); echo "<br />plik: ";
Niestety, to nie działa... ściśle - jest identycznie.


Po wybraniu pliku krok3.php, są widoczne zmienne na ekranie. Po wybraniu sklej02.php, niestety - nie.
Na pewno to dobrze robisz? sklej02.php?adres=cos&kolor1=red&kolor2=blue
// Edytowano
Pytałem, czy tak wchodzisz na żądaną stronę, ponieważ to wydedukowałem z Twojej wypowiedzi, że chcesz wejść na stronę podając taki adres...
Użytkownik andrzej_aa edytował ten post 03 czerwiec 2009, 16:52


Ja już nie wiem, jak to jest. Dziś już któryś raz słyszę, że tak można - to znów, że tak się danych nie wysyła... Czy mogę umieścić w linku zmienne? W ten sposób:
include ($sciezka2.'p02/sklej02.php?sciezka=$sciezka2&kolor1=$kolor1&kolor2=$ kolor2');

może coś takiego Ci pomoże
KLIK

Miałem tak, dane się wyświetlały ale jak chciałem podpiąć kod do obróbki obrazka, wywalało błąd.

a jaki błąd?

Notice i header, ale sobie z nimi poradziłem. Niestety, nie umiem wygenerować tego nieszczęsnego obrazka... nie umiem, jak mi się wydaje przekazać zmiennej do pliku, gdzie jest generowany, albo nie umiem go wywołać.
Moja struktura katalogów:
[ herby ] - herb.php ( plik główny ) | - krok2.php | - krok3.php | +-- [ graf2 ] | +-- [ p01 ] +-- [ p02 ] - p02.php ( łączący grafikę ) | | | +-- [ white ] ( grafika ) | | | +-- [ black ] ( grafika ) | +-- [ p03 ] - p03.php ( łączący grafikę ) | | | +-- [ white ] ( grafika ) | | | +-- [ black ] ( grafika ) do [ p35 ]

Całość obsługuje wielostronicowy formularz, dane wysyłane są przez $_POST. W pliku krok3.php inckuduję pliki do łączenia grafiki i tu mam problem:
krok3.php
switch ($sklej) { case 'p01': $grafa1 = ("c000.png"); $obraz1 = $sciezka2."/".$_POST['folder']."/".$_POST['kolor1' ]."/".$grafa1; echo "<img src='$obraz1'>"; break; case 'p02': $p02 = "p02"; $adres = $url."/".$sciezka2."/".$p02; $kolor1 = $_POST['kolor1']; $kolor2 = $_POST['kolor2']; $obraz1 = $adres."/".$kolor1."/c001.png"; $obraz2 = $adres."/".$kolor1."/c002.png"; $_SESSION['adres'] = $adres; $_SESSION['kolor1'] = $kolor1; $_SESSION['kolor2'] = $kolor2; $_SESSION['obraz1'] = $obraz1; $_SESSION['obraz2'] = $obraz2; echo "<img src='".$adres."/sklej02.php?obraz1='sklej02.png'><br />";
Powinien się wyświetlić obrazek, a ja mam w najlepszym momencie tylko X i link do obrazka: sklej02.php?obraz1=

sklej02.php
header ("Content-type: image/png"); $obraz1 = $_SESSION['obraz1']; $rysunek=imagecreatefrompng ($obraz1); imagepng($rysunek); imagedestroy($rysunek); $rysunek;

Jeżeli podam ścieżkę bez zmiennych, obrazek się wyświetla, ze zmiennymi nie. Próbowałem też:
readfile('/herb/graf2/p02/white/'.$_SESSION['obraz1']);
ale bez efektu.

Już mi brak pomysłów. Być może problem leży w strukturze katalogów. Pierwszy raz zabrałem się za GD...


echo "<img src='".$adres."/sklej02.php?obraz1='sklej02.png'><br />";
Powinien się wyświetlić obrazek, a ja mam w najlepszym momencie tylko X i link do obrazka: sklej02.php?obraz1=


Może po prostu masz błąd w echo i powinno być:

echo "<img src='".$adres."/sklej02.php?obraz1=sklej02.png'><br />";

bez cudzysłowu po znaku równości...
a może nie jest to aż tak trywialne - czasem sam się łapię na takich drobniakach.
:rolleyes:

Chodzi w wersji:
echo("<img src='graf2/sklej02.php?obraz1=$_POST[obraz1]&obraz2=$_POST[obraz2]' >");

Ale mam kolejny problem. Na localu jest ok, a na serwerze webd.pl mam podwójne //, czyli coś w rodzaju graf2//white.png...

Jesteś pewien, że ukośnik w tę stronę?
Może wystarczy stripslashes.

Nie mam tam ukośników. Zawsze używam "ciapków".

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.