Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Znikające zmienne
Forum PHP.pl > Forum > PHP
piasek2000
Witam, staram się napisać stronę HTML + PHP i wszystko szło wspaniale aż do czasu kiedy przyszło mi przeżucić wartości zmiennych z formularza przez 2 kolejne strony. Poniżej źródła:
kon.php
CODE
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
<meta name="Keywords" content="strona,Rafał,Piasecki">
<meta http-equiv="Reply-to" content=" piasek2@wp.pl">
<link rel="Stylesheet" type="text/css" href="style.css" />
<title>Serwis komputerowy - Rafał Piasecki</title>
</head>
<body>
<table class=g>
<th class=l>
<p class=a>PROBLEMY?? AWARIA??</p>
</table>
<table class=a border=1>
<th class=f width=30%>
<div class=b>Dane kontaktowe:</div>
<div class=c>Rafał Piasecki</div>
<div class=c>tel.:792 326 320</div>
<div class=c>e-mail:piasek2@wp.pl</div>
<div class=c>e-mail:rrpiasecki@gmail.com</div>
</table>
<TABLE class=g border=12px>
<th class=for>
<div class=b>Proszę podać kilka informacji w celu złoźenia zamówienia</div>
</table>
<table class=g BORDER=1>
<form action="zam.php" method="post" align="left">
<TH class=for>
<div class=d>
Dzielnica:
<select name="dziel" class=b>
<option>Bemowo</option>
<option>Białołęka</option>
<option>Bielany</option>
<option>Mokotów</option>
<option>Ochota</option>
<option>Praga Połódnie</option>
<option>Praga Pó&#322noc</option>
<option>Rembertów</option>
<option>Śródmieście</option>
<option>Targówek</option>
<option>Ursus</option>
<option>Ursynów</option>
<option>Wawer</option>
<option>Wesoła</option>
<option>Wilanów</option>
<option>Włochy</option>
<option>Wola</option>
<option>Żoliborz</option>
</select>
</div>
<TR>
</TH>
<th class=for>
<div class=d>Osoba do kontaktu:
<input type="form" name="os" class=a value="">
</div>
<tr>
<th class=for>
<div class=d>Nr tel:
<input type="form" name="tel" class=b size=9 maxlength="9">
</div><tr>
<th class=for>
<div class=d>Rodzaj komputera:
<select name="rk" class=a>
<option>Stacjonarny</option>
<option>Laptop</option>
</select></div>
<tr>
<th class=for>
<div class=d>Rodzaj usterki:
<select name="ru" class=c>
<option>Sprzętowa</option>
<option>Problemy z oprogramowaniem</option>
<option>Głośna praca</option>
<option>Ustawienie sieci/routera</option>
<option>inne</option>
</select></div>
<tr>
<th class=for>
<div class=d>Opis usterki
<input type="textarea" name="ou" class=c value="Opisz objawy" size=67 >
</div>
<tr>
<th class=for>
<div class=d>Adres e-mail:
<input type="form" name="m" class=d size=30 ></div>
<div align="center">
<input type="submit" value="wyślij zgłoszenie">
</div>
</form>
</table>
<table class=stopka>
<th WIDTH=33%>
<input type="button" value="Kilka słłw o mnie" onClick="location.href='omnie.php';" /></button>
<th>
<input type="button" value="Cennik" onClick="location.href='cen.php';" /></button>
<th>
<input type="button" value="Kontakt" onClick="location.href='kon.php';" /></button>
<th>
<input type="button" value="Start" onClick="location.href='index.php';" /></button>
</table>
<table class=o>
<th class=o border=1><img src="graf/kom1.jpeg"</th>
</table>

plik zam.php
CODE
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
<meta name="Keywords" content="strona,Rafaďż˝,Piasecki">
<meta http-equiv="Reply-to" content=" piasek2@wp.pl">
<link rel="Stylesheet" type="text/css" href="style.css" />
<title>Serwis komputerowy - Rafaďż˝ Piasecki</title>
<?php
$dziel=$_POST['dziel'];
$os=$_POST['os'];
$tel=$_POST['tel'];
$rk=$_POST['rk'];
$ru=$_POST['ru'];
$ou=$_POST['ou'];
$m=$_POST['m'];
$dane=$dziel." ".$os." ".$tel." ".$rk." ".$ru." ".$ou." ".$m;
echo $dane;
?>
<table>
<th>
</th>
</table><html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
<meta name="Keywords" content="strona,Rafał,Piasecki">
<meta http-equiv="Reply-to" content=" piasek2@wp.pl">
<link rel="Stylesheet" type="text/css" href="style.css" />
<title>Serwis komputerowy - Rafał Piasecki</title>
</head>
<body>
<table class=g>
<th class=l>
<p class=a>PROBLEMY?? AWARIA??</p>
</table>
<table class=a border=1>
<th class=f width=30%><div class=d>
<?php
echo "Twoja dzielnica to ".$dziel.('<br>');
echo "Masz na imię ".$os.('<br>');
echo "Nr telefonu to: ".$tel.('<br>');
echo "Rodzaj twojego komputera to: ".$rk.('<br>');
echo "Usterka dotyczy: ".$ru.('<br>');
echo "Usterka polega na tym ,że: ".$ou.('<br>');
echo "Adre e-mail do kontaktu: ".$m.('<br>');
?></div>
</table>
</table>
<table class=stopka>
<th WIDTH=33%>
<form action="kon.php" method="post">
<input type="submit" name="wstecz" value="Popraw dane">
</form>
</th>
<th>
<input type="button" value="Potwierdź dane" onClick="location.href='potw.php';" />
</form></th>
</table>
<table class=o>
<th class=o border=1><img src="graf/kom1.jpeg"</th>
</table><?php
?>

potw.php
CODE
<?php
if(empty($dziel)) die();
$fp = fopen('zam.txt', 'a');
if ( fwrite ($fp, strip_tags ($dane)));
fclose($fp);
$plik=file_get_contents('for.txt');
echo $dane;
?>
<html>
<table>
<th>

</th>
</table><html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
<meta name="Keywords" content="strona,Rafał,Piasecki">
<meta http-equiv="Reply-to" content=" piasek2@wp.pl">
<link rel="Stylesheet" type="text/css" href="style.css" />
<title>Serwis komputerowy - Rafał Piasecki</title>
</head>
<body>
<table class=g>
<th class=l>
<p class=a>PROBLEMY?? AWARIA??</p>
</table>
<table class=a border=1>
<th class=f width=30%><div class=d>
Twoje zgłoszenie zostało przyjęte</div>
<div class=d>
Nasz pracownik skontaktuje się z Tobą najszybciej jak to tylko mo&#380liwe
</div>
</table>
</table>
<table class=stopka>
<th WIDTH=33%>
<form action="index.php" method="post">
<input type="submit" name="wstecz" value="Wróć">
</form>
</th>
</table>
<table class=o>
<th class=o border=1><img src="graf/kom1.jpeg"</th>
</table>
<?php
include ses.php;
session_start();
echo ('zmienna dane to :').$SESSION["dane"];
?>
</html>

No i problem polega na tym, że w pliku potw.php nie pamięta zmiennych z pliku zam.php i tym samym ich nie zapisuje do pliku zam.txt. Jestem początkujący w PHP więc jest pewnie masę błędów. Męczę się z tym już tydzień i postanowiłem napisać tu na forum. Próbowałem z sesjami itd itp i też lipa.
Lolek13
w pliku zam.php zrob sobie dodatkowe pole formularza, ktore bedą hidden a do ich value przypisz wartosci $_POST z pliku kon.php
piasek2000
nie rozumiem co ma to dać i jak wkleić wartość zmiennej do kodu html?
jedyne co mi przychodzi do głowy to:
<input type="hidden" name="dane" value="$dane">, ale to bez sensu
Lolek13
  1. <input type="hidden" name="nazwa pola z pliku kon.php" value="<? php $_POST['zmienna z formularza z pliku kon.php'] ?>">


po przeslaniu takiego formularza Twoje dane z kon.php zostana ponownie przeslane
piasek2000
Ok. już wiem jak wstawić zmienną w wartość formularza, ale w pliku zam.php zmienne są dostępne, problem zaczyna się w pliku potw.php tam już zmiennych nie widzi

i jeszcze jedno pytanie dlaczego nie działa coś takiego?
w pliku zam.php
CODE
...
session_start();
$_SESSION['dane']=$dane;
...

a w pliku potw.php
CODE
...
session_start();
echo $_SESSION['dane'];
...


Parse error: syntax error, unexpected T_VARIABLE in /home/piasek20/public_html/kompserwis.x10.mx/zam.php on line 57
linia 57:
<input type="hidden" name="dziel" value="<? php $_POST['dziel']; ?>">
tak więc lipa

Temat do zamknięcia..
Rozwiązanie:
w pliku zam.php
CODE
<?php
$dziel=$_POST['dziel'];
$os=$_POST['os'];
$tel=$_POST['tel'];
$rk=$_POST['rk'];
$ru=$_POST['ru'];
$ou=$_POST['ou'];
$m=$_POST['m'];
$dane=$dziel." ".$os." ".$tel." ".$rk." ".$ru." ".$ou." ".$m;
session_start();
$_SESSION['dane']= $dane;
echo $_SESSION['dane'];
?>
...

zaś w pliku potw.php
CODE
...
<?php
session_start();
$a = $_SESSION['dane'];
echo $a;
?>
<?php
if(empty($a)) die();
$fp = fopen('zam.txt', 'a');
if ( fwrite ($fp, strip_tags ($a)));
fclose($fp);
$plik = file_get_contents('zam.txt');
?></html>
CuteOne
1. Nie mieszaj kodu PHP z HTML w jednym pliku bo będziesz miał same problemy - poczytaj o szablonach w PHP
2. Lepszym rozwiązaniem jest przekazanie zmiennej XYZ przez ukryte pola - jest to bardziej naturalne i łatwiejsze w kontroli

ps.
  1. <input type="hidden" name="nazwa pola z pliku kon.php" value="<?php echo $_POST['zmienna z formularza z pliku kon.php'] ;?>">


ps2. naucz się czytać błędy
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.