Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
powtórne wysyłanie zmiennych po odświeżeniu [PHP+HTML] - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: powtórne wysyłanie zmiennych po odświeżeniu [PHP+HTML] (/thread-powtorne-wysylanie-zmiennych-po-od%C5%9Bwiezeniu-php-html)



powtórne wysyłanie zmiennych po odświeżeniu [PHP+HTML] - Mummer - 18-03-2011

Witam serdecznie

Pisze dziennik w php i natrafiłem na problem z wysłaniem zmiennej z formularza do dwóch różnych plików w php, jeden z nich jest podany w formularzu <form action="coś.php" method=POST> i z tym plikiem nie ma problemu lecz gdy chcę wysłać zmienną do drugiego pliku powiedzmy coś2.php za pomocą

$_POST['nazwa_zmiennej_z_formularza']=$_SESSION['zmienna_do_coś2.php']

w pliku coś2.php nie udaje mi się jej odczytać.

Proszę o pomoc w wysłaniu tej zmiennej do innego pliku

Z góry dziękuje

ps oprócz wysłania za pomocą sesji próbowałem post i get z tym samym skutkiem


RE: Formularz wysłanie zmiennych [PHP+HTML] - R_Rafalsky - 18-03-2011

POST i GET nie zadziała. Sesja zadziała tylko wtedy jak uruchomisz ją czyli polecenia session_start(); ob_start();

Zawsze możesz podejrzeć zawartość dowolnej zmiennej za pomocą print_r($zmienna); - bardzo ładnie przedstawi Ci zawartość dowolnej zmiennej.


RE: Formularz wysłanie zmiennych [PHP+HTML] - Pedro84 - 18-03-2011

Kod, kod, kod...


RE: Formularz wysłanie zmiennych [PHP+HTML] - Mummer - 26-03-2011

Dziękuje za odpowiedź rzeczywiście zapomniałem o ob_start

Mam teraz jeszcze jeden problem otóż chodzi o to że gdy wysyłam formularz to ładnie pięknie dopisuje ocene do bazy danych lecz gdy ktoś zapragnie odświeżyć stronę to dopisuje jeszcze raz co z tym zrobić
Proszę o wytłumaczenie łopatologiczne bo szukałem i nic nie znalazłem

Oto kod

Kod:
<?php
session_start();
ob_start();
if ((isset($_SESSION['user_logged'])&&
$_SESSION['user_logged'] !="")||
(isset($_SESSION['user_password'])&&
$_SESSION['user_password'] !="")) {
$uczen=$_SESSION['pupil'];  
include "login_database.php";  
echo $uczen;

// sprawdzam czy zostały wysłane zmienne z formularza
if (isset($_POST['mark'])&&isset($_POST['subject'])){
$sub=$_POST['subject'];
$mark=$_POST['mark'];
//sprawdzam które pole w bazie jest wolne domyślnie wszystkie sa wypełnione zerami, a w bazie nagłówki to po prostu kolejne liczby od 1 do 30
for ($polnum=1; $polnum<31;){
$markcheck= "select `$polnum` FROM $uczen WHERE przedmiot = \"$sub\" ";
    $show= mysql_query($markcheck);
    while ($check= mysql_fetch_array($show )){
   //echo $check[0];

if ($check[0]!=0)
    {

$polnum++;  

}else{
//gdy jest równe zero czyli puste pole bez oceny wpisuje ocene  
    
    $update="UPDATE `$uczen` SET `$polnum` = $mark where przedmiot = \"$sub\" ";
    $insert= mysql_query($update);
break 2;


    

}}

}}

?>

<?php
$query="SELECT * FROM $uczen";
    $present = mysql_query("$query") or die(mysql_error());
echo "<table border=1>\n";
echo "<tr>\n";

$pola=" SHOW COLUMNS FROM $uczen ";
$list = mysql_query("$pola") or die(mysql_error());
while ($rowsub = mysql_fetch_assoc($list)){
echo "<th>";
echo "<font size=\"2\">";
echo $rowsub['Field'];
echo "</font>";
echo "</th>" ;  
    }

while ($row = mysql_fetch_assoc($present)){

echo "<tr>\n";
foreach($row as $value){
echo "<td>\n";
echo $value;
echo "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";    

}

?>
<form action=edit_student.php method=POST >
Wybierz przedmiot:
<select name=subject>
<br >
<option value="" selected> wybierz przedmiot</option>
<br />
<?php
$query="SELECT przedmiot FROM $uczen";
    $present = mysql_query("$query") or die(mysql_error());
while ($row = mysql_fetch_array($present)) {
//echo "{}\n";
//$a="{$row[0]}\n";
echo '<option value="'.$row[0].'">'.$row[0].'</option>'."\r\n";
}
   ?>
</select>
<br />
<select name=mark >
<option value="" selected> wybierz ocene</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="2,5">2,5</option>
<option value="3">3</option>
<option value="3,5">3,5</option>
<option value="4">4</option>
<option value="4,5">4,5</option>
<option value="5">5</option>
<option value="5,5">5,5</option>
<option value="6">6</option>
</select>
<br>
<input type="submit" name="SUBMIT" value="Wybierz">
</form>

Dziękuje z góry za pomoc


RE: powtórne wysyłanie zmiennych po odświeżeniu [PHP+HTML] - Pedro84 - 26-03-2011

Google.pl => post/redirect/get


RE: powtórne wysyłanie zmiennych po odświeżeniu [PHP+HTML] - Mummer - 26-03-2011

Myślałem o tym tylko jak to zrobić bo chodzi o to aby użytkownik mógł dodać kolejną ocenę ale nie dodawała sie ostatnio wybrana opcja po odświeżeniu. O ile sie nie myle to metoda którą mi przesłałeś na to nie pozwala bo na końcu otrzymujemy tylko wynik. Chyba że ze strony wynikowej znowu sie przekierowac na pierwsza czyli ta z mozliwościa dodania danych, ale czy to ma sens?


RE: powtórne wysyłanie zmiennych po odświeżeniu [PHP+HTML] - Pedro84 - 26-03-2011

A przeczytałeś choć cokolwiek? Możesz sobie ustawić przekierowanie jak chcesz + ewentualną wiadomość.


RE: powtórne wysyłanie zmiennych po odświeżeniu [PHP+HTML] - R_Rafalsky - 26-03-2011

@Mummer: tak to ma sens. Robisz dwie strony:
1. formularz (action="strona2") $dodano=1;
2. if($dodano==0){dodanie_do_bazy(); $dodano=1;}else {echo "Dodano już do bazy"} i powrót do jeden.

Pisane pseudokodem na szybko ale mam nadzieję, że rozumiesz o co mi chodzi.