Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem w kalkulatorze z header
Forum PHP.pl > Forum > PHP
Darek82
Mam taki problem tworze kalkulator kredytowy i tak jak ponizej mam dwa pliki jeden form.html drugi oblicz.php i nie wiem co mam zle bo chce zeby w form.html jak nie wpisze nic w pola to zeby mi po wyborze pola oblicz pokazywal ta sama strone czyli form.html i to sie udaje ale teraz po uzyciu funkcji header nie wyswietla mi na stronie oblicz.php liczb :/


FORM.HTML
<html>


<form method="post" action="oblicz.php">
Wnioskowana kwota kredytu: <INPUT TYPE="text" NAME="kwota" size="5" VALUE="" maxlength="7">
<br>
Prowizja przygotowawcza wynosi 5%
<br>
Oprocentowanie <INPUT TYPE="text" NAME="oprocentowanie" SIZE="5" VALUE="" maxlength="7">
<br>
Okres kredytowania <INPUT TYPE="text" NAME="okres" SIZE="5" VALUE="" maxlength="7">
<br>
Oblicz <INPUT TYPE="submit" NAME="oblicz.php" VALUE="oblicz">
<br>




</html>

OBLICZ.PHP


<?php ob_start(); ?>
<html>
<?php


$kwota=$_POST['kwota'];
$oprocentowanie=$_POST['oprocentowanie'];
$okres=$_POST['okres'];

if(($kwota=="")||($oprocentowanie=="")||($okres=="")){
header('Location: form.html');
}





echo $kwota.'<br />';

echo $oprocentowanie.'<br />';

echo $okres.'<br />';

ob_end_flush();
?>
</html>
lashus
Eee... nie wiem konkretnie o co ci chodzi, aczkolwiek twoje rozwiązanie nie jest zbyt dobre tongue.gif Nie wiem czy dobrze cię zrozumiałem. Nie prościej zrobić to w jednym pliku?

Kod
<html>
<body>

<form method="post" target="_SELF">
Wnioskowana kwota kredytu: <INPUT TYPE="text" NAME="kwota" size="5" VALUE="" maxlength="7">
<br>
Prowizja przygotowawcza wynosi 5%
<br>
Oprocentowanie <INPUT TYPE="text" NAME="oprocentowanie" SIZE="5" VALUE="" maxlength="7">
<br>
Okres kredytowania <INPUT TYPE="text" NAME="okres" SIZE="5" VALUE="" maxlength="7">
<br>
Oblicz <INPUT TYPE="submit" VALUE="oblicz">
<br>

<?php
if($_SERVER['REQUEST_METHOD'] === 'POST') {

    $kwota=$_POST['kwota'];
    $oprocentowanie=$_POST['oprocentowanie'];
    $okres=$_POST['okres'];
    
    if(strlen($kwota) > 0 && strlen($oprocentowanie) > 0 && strlen($okres) > 0) {
            echo $kwota.'<br />';
            echo $oprocentowanie.'<br />';
            echo $okres.'<br />';
    }

}
?>

</body>
</html>


Po prostu sprawdzasz czy żądanie jest POSTem wysłane, jeśli tak wykonujesz kod winksmiley.jpg Jeśli chcesz mieć to rozbite na 2 pliki, proponowałbym użyć funkcji, załączyć plik z funkcjami tutaj, wykonać ją i rezultat zwracać też z tego pliku.
Darek82
wiesz nie jestem dobry w php a to co mi napisales zabardzo nie rozumiem :/...a moglbys poprawic moj skrypt zeby zadzialal?
lashus
To jest właśnie poprawiony to co wkleiłem. Masz gotowy jeden plik. Postaram ci się to wytłumaczyć.

Kod
if($_SERVER['REQUEST_METHOD'] === 'POST') {


Ta linijka odpowiada za sprawdzanie nadsyłanych danych - jeśli pochodzą metodą POST (z formularza) to wykonuje dalej skrypt.

Kod
if(strlen($kwota) > 0 && strlen($oprocentowanie) > 0 && strlen($okres) > 0) {


Tutaj odbywa się sprawdzanie czy $kwota, $oprocentowanie i $okres mają długość większą niż 0 znaków. Jeśli tak - skrypt kontynuuje

Kod
echo $kwota.'<br />';
            echo $oprocentowanie.'<br />';
            echo $okres.'<br />';


Jeśli wszystko poszło szybko, gładko i przyjemnie i skrypt nie przestał się wykonywać - zwraca ci tutaj twoje wybrane wartości winksmiley.jpg Jeśli nadal czegoś nie rozumiesz to wal śmiało.
Darek82
Nie no w sumie ta gorna linijke przyjme ze tak ma byc bo nie znam tych komend biggrin.gif, ale na dole zamiast sprawdzac dlugosc slowa w tych zmiennych nie lepiej by bylo dac np. $kwota>0 questionmark.gif

a sprawdzales ten skrypt? Bo mi wyswietla w przegladarce ten wiersz if($_SERVER['REQUEST_METHOD'] === 'POST') {....
lashus
Cytat(Darek82 @ 27.04.2009, 18:55:51 ) *
Nie no w sumie ta gorna linijke przyjme ze tak ma byc bo nie znam tych komend biggrin.gif , ale na dole zamiast sprawdzac dlugosc slowa w tych zmiennych nie lepiej by bylo dac np. $kwota>0 questionmark.gif


Nie wiem, zależy. Jeśli przyjmujesz, że dostępne tam będą tylko liczby, możesz skorzystać ze swojej opcji :-) Nie zwróciłem uwagi na co skrypt jest przeznaczony, masz rację co do tego, krócej wyjdzie, aczkolwiek efekt będzie ten sam. Powodzenia w dalszej nauce winksmiley.jpg
Darek82
ale nie wyswietla mi poprawnie zobacz jak u Ciebie On działa...
lashus
Wyświetla. Plik musi być z zakończeniem ".php". Ponadto tongue.gif zauważ, że tutaj masz goły skrypt zwracający wartości podane w formularzu. Nie masz żadnych obliczeń arytmetycznych wprowadzonych do obliczania tej kwoty :-)
Darek82
U MNie jest tak gdzie tu cos brakuje ?:/ a obliczenia zrobie potem teraz tylko zeby ta czesc dzialala o ktorej mowimy smile.gif


<html>
<body>

<form method="post" target="_SELF">
Wnioskowana kwota kredytu: <INPUT TYPE="text" NAME="kwota" size="5" VALUE="" maxlength="7">
<br>
Prowizja przygotowawcza wynosi 5%
<br>
Oprocentowanie <INPUT TYPE="text" NAME="oprocentowanie" SIZE="5" VALUE="" maxlength="7">
<br>
Okres kredytowania <INPUT TYPE="text" NAME="okres" SIZE="5" VALUE="" maxlength="7">
<br>
Oblicz <INPUT TYPE="submit" NAME="oblicz.php" VALUE="oblicz">
<br>






<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {

$kwota=$_POST['kwota'];
$oprocentowanie=$_POST['oprocentowanie'];
$okres=$_POST['okres'];

if(strlen($kwota) > 0 && strlen($oprocentowanie) > 0 && strlen($okres) > 0) {
echo $kwota.'<br />';
echo $oprocentowanie.'<br />';
echo $okres.'<br />';
}

}
?>

</body>
</html>
lashus
Mnie chodzi dokładnie ten kod co przed chwilą wkleiłeś. Sprawdź sobie Klik!

Ewentualnie możesz jeszcze usunąć to przy submicie "name="oblicz.php"", zbędne jest.
Darek82
Mi podaje to co nizej, a na Twoim nie wyswietla wyniku tylko ciagle wraca do tego samego pola z tymi okienkami...



Wnioskowana kwota kredytu:
Prowizja przygotowawcza wynosi 5%
Oprocentowanie
Okres kredytowania
Oblicz
0 && strlen($oprocentowanie) > 0 && strlen($okres) > 0) { echo $kwota.'
'; echo $oprocentowanie.'
'; echo $okres.'
'; } } ?>
lashus
Wraca do tego samego pola jeśli dane nie są podane, chyba o to chodziło? tongue.gif Jeśli podasz dane to wyświetla ci wartość podanych danych.
Darek82
No wlasnie nie wpisuje dane i wraca ciagle nie wiem ta metoda nie dziala
lashus
Dane wyświetla POD FORMULARZEM, nie na OSOBNEJ STRONIE. tongue.gif Na 100%
Darek82
Lashus ten Twoj tak nie dziala ten moj wywala ten kod na stronie nie wiem co jest ale Mnie to wkurza pomalu
lashus
Coś musiałeś źle zrobić, kod na stronie tutaj podane jest dobrze zrobiony.
Darek82
Ja to w Krasnalu na lokalnie wlanczam moze to cos tak :/
lashus
Nie mam bladego pojęcia skrypt jest dobry na 100% u mnie i u kolegi wyświetla poprawnie. Przykro mi, ale chyba już nie mogę ci pomóc.
Darek82
wiesz zakladam konto na darmowym serwerze tam to umieszcze i zobacze jak pojdzie.....no ale dzieki za poswiecony czas smile.gif oby to ruszylo

Ma ktoś jakiś pomysł jak zrobic w tym moim kalkulatorze że gdy wcisne przyciski oblicz i pola beda puste wtedy kolo nich pojawi sie napis aby wypelnic to pole.....

FORM.HTML
<html>

<table border="1">
<form method="post" action="oblicz.php">

<tr>
<td><b>Wnioskowana kwota kredytu: </b></td> <td><INPUT TYPE="text" NAME="kwota" size="5" VALUE="" maxlength="5"></td>
<td>
</td>
</tr>
<tr><td><b>Prowizja przygotowawcza wynosi </b></td><td><p align="center">5%</p></td></tr>
<br>
<tr><td><b>Oprocentowanie</b> </td><td> <INPUT TYPE="text" NAME="oprocentowanie" SIZE="5" VALUE="" maxlength="5"></td></tr>
<br>
<tr><td><b>Okres kredytowania </b></td><td><INPUT TYPE="text" NAME="okres" SIZE="5" VALUE="" maxlength="5"></td></tr>
<br>
<tr><td><b>Oblicz </b></td><td><INPUT TYPE="submit" NAME="oblicz.php" VALUE="oblicz"></td></tr>
<br>

</form>
</table>



</html>



OBLICZ.PHP


<?php


$kwota=$_POST['kwota'];
$oprocentowanie=$_POST['oprocentowanie'];
$okres=$_POST['okres'];

if(($kwota=="")||($oprocentowanie=="")||($okres=="")){
header('Location: form.html');

}
else{




echo $kwota.'<br />';

echo $oprocentowanie.'<br />';

echo $okres.'<br />';


}
?>
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.