GRY-Online.pl --> Archiwum Forum

potrzebna pomoc z PHP

20.06.2008
13:20
smile
[1]

masterofpain [ Pretorianin ]

potrzebna pomoc z PHP

mam nastepujacy kod w pliku php:
<HTML>
<HEAD>
<TITLE>CAPTCHA obrazkowe</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
</HEAD>

<BODY>
<H1>CAPTCHA obrazkowe</H1>

<?php
tutaj kod generujacy obrazki z wykorzystanie biblioteki gd
?>

<form action="process.php" method="post">

<p>Ktore ze zwierzat to <?php echo "$przedzial[2]" ?>"? </p>
<p><input type="checkbox" name="type[]" value="<?php echo "$byly[0]" ?>"> 1
<input type="checkbox" name="type[]" value="<?php echo "$byly[1]" ?>"> 2
<input type="checkbox" name="type[]" value="<?php echo "$byly[2]" ?>"> 3
<input type="checkbox" name="type[]" value="<?php echo "$byly[3]" ?>"> 4</p>
<input type="submit">
</form>

</BODY>
</HTML>

chce, aby kod generowal obrazek, a potem zadaniem uzytkownika strony ma byc odpowiedz na pytanie(wybrac wszystkie obrazki bedace odpowiedzia na pytanie)
i tu pojawia sie problem, gdy mam sam czysty kod(generujacy obrazek) w php obrazek jest generowany tak jak powinien, niestety po dodaniu kodu odpowiadajacego za form'a nie widac ani obrazka(pojawia sie tylko sciezka do pliku php w ktorym jest kod) ani form'a. Czy ktos moze mi napisac co robie zle? Z gory dzieki za odpowiedz.

20.06.2008
15:48
smile
[2]

masterofpain [ Pretorianin ]

nikt nie pomoze?

20.06.2008
16:01
[3]

tadek[5] [ 5 ]

wklej kod generujacy obrazek, moze wtedy da sie cos podpowiedziec

20.06.2008
16:07
[4]

masterofpain [ Pretorianin ]

<?php
header("Content-type: image/jpeg");
$db_host = 'localhost';
$db_user = 'user;
$db_pwd = 'haslo';

$database = 'baza';
$table = 'galeria';

if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Nie moge polaczyc sie z baza");

if (!mysql_select_db($database))
die("Nie moge wybrac bazy");

$zapytanie=mysql_query("SELECT * FROM galeria WHERE id=1") ;
$dane=mysql_fetch_array($zapytanie);
$img1=imagecreatefromjpeg("$dane[zdjecie]");


$zapytanie=mysql_query("SELECT * FROM galeria WHERE id=2") ;
$dane=mysql_fetch_array($zapytanie);
$img2=imagecreatefromjpeg("$dane[zdjecie]");


$zapytanie=mysql_query("SELECT * FROM galeria WHERE id=3") ;
$dane=mysql_fetch_array($zapytanie);
$img3=imagecreatefromjpeg("$dane[zdjecie]");
$zapytanie=mysql_query("SELECT * FROM galeria WHERE id=4") ;
$dane=mysql_fetch_array($zapytanie);
$img4=imagecreatefromjpeg("$dane[zdjecie]");

$imgx=imagesx($img1);
$imgy=imagesy($img1);

$imgN=imagecreatetruecolor($imgx*3,$imgy*2 +50);

imagecopy($imgN,$img1,0,0,0,0,$imgx,$imgy);
imagecopy($imgN,$img2,$imgx*1+20,0,0,0,$imgx,$imgy);
imagecopy($imgN,$img3,0,$imgy+20,0,0,$imgx,$imgy);
imagecopy($imgN,$img4,$imgx*1+20,$imgy+20,0,0,$imgx,$imgy);



imagejpeg($imgN);

?>

20.06.2008
16:19
[5]

tadek[5] [ 5 ]

kod wyglada poprawnie, raczej bez sprawdzenia tego na "zywym organizmie" ciezko bedzie ci pomoc.
tym bardziej, ze odwoluje sie do bazy danych i nie wiadomo co i w jakim stanie z niej wyciaga.

20.06.2008
16:26
[6]

Daro2k [ Pretorianin ]

Nie mozesz wstawic naglowka, jesli wczesniej wyslales juz tekst do uzytkownika.
Rozwiazanie: kod tworzacy obrazek wstaw do nowego pliku.

20.06.2008
16:41
[7]

masterofpain [ Pretorianin ]

Daro2k a jakbys to zrobil?
tak:
<?php
require('generuj.php');
?>

bo takie cos daje mi identyczny wynik...

20.06.2008
16:45
[8]

SPMKSJ [ Konsul ]

ponieważ naglowek html i tak juz jest utworzony, to byla zla rada.

to sie robi w ten sposob, ze w kodzie html dajesz znacznik obrazka

<img src="/sciezka/do/pliku/php/generujacego/obrazek" alt="" />

i wtedy bedzie dzialac

a w pliku generujacym obrazek nie uzywaj zadnych instrukcji echo i nie dodaj przez przypadek pustych linii poza znacznikami <? ?>

pozdrawiam

20.06.2008
17:09
[9]

masterofpain [ Pretorianin ]

SPMKSJ WIELKIE dzieki, dziala:)

jeszcze 2 pytanka:
1. poniewaz obrazki sa losowane z pewnego zbioru zapisanego w bazie to musze wiedziec, ktore zostaly wylosowane, zeby moc zweryfikowac wybor uzytkownika, teraz pytanie jak przy pomocy Twojego sposobu wyslac tablice zawierajaca nr wylosowanych obrazkow?

2. W form'ie przetwarzany jest wybor uzytkownika i otwarta jest strona informujaca uzytkownika czy dobrze wybral...jak zrobic zeby po wcisnieciu przez uzytkownika przysciku wstacz w wyszukiwarce generowany byl nowy obrazek i wszystkie pola w form'ie byly czyste(obecnie jest to tak jak po wyborze przez uzytkownika przed wcisnieciem submit)?

20.06.2008
18:15
[10]

masterofpain [ Pretorianin ]

ostatni up

20.06.2008
19:33
[11]

SPMKSJ [ Konsul ]

ad1. to proste, możesz w tej ścieżce normalnie przesyłać zmienne metodą $_GET

,czyli
/sciezka/do/pliku/php/generujacego/obrazek?zmienna=1&zmienna2=2


ad 2. Jedyny pomysł jaki przychodzi mi do głowy, to stworzenie zmiennej sesyjnej logicznej. Niech zmienna ta na początku ma wartość 0, wtedy formularz będzie domyślny na stronie. Jeżeli ktoś wciśnie przycisk submit, uruchomi się twój następny skrypt. w tym skrypcie zmień wartość zmiennej sesyjnej logicznej na 1.

W tym momencie jeżeli użytkownik kliknie wstecz, twój stary skrypt z formularzem będzie poinformowany, że wcześniej był już wysyłany formularz, bo twoja zmienna logiczna sesyjna będzie miała wartość 1.

Teraz oprogramujesz sobie wyświetlanie formularza jak chcesz.


pozdrawiam

P.S.
Następnym razem wpisz się do wątku o php i webmasterce

https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=7016083&N=1

szybciej uzyskasz odpowiedź często lepszą od mojej, to odpowiednie miejsce dla takich problemów

© 2000-2024 GRY-OnLine S.A.