Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML] formularze
taktu
post
Post #1





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 19.05.2008

Ostrzeżenie: (0%)
-----


Witam, moj skrypt odczytuje, dodaje i usuwa dane z plików o roznej budowie. Do dodawania i usuwania danych używam formularzy i tu pojawia się problem. Kiedy po zalogowaniu (logowanie na sesjach) po raz pierwszy dodaje lub usuwam wpis, skrypt otwiera nowe okno i w nim wykonuje kod. Kolejne dodanie wpisu wykonuje się juz poprawnie w tym samym oknie, natomiast kiedy po kilku (nawet po 1 czy 2) 'dodaniach' usune ktorys wpis znow sytuacja sie powtarza i skrypt otwiera nowe okno i tam wykonuje kod. Podobnie jesli najpierw usuwam a pozniej dodaje. Czy moze to byc spowodowane uzywaniem zarowno GET jak i POST na tej samej podstronie? Dla jasnosci GET uzywam w polaczeniu z instrukcja case aby includowac odpowiednie funkcje np. /usuwanie.php?akcja=UsuwanieZpliku1, natomiast POST do edycji pliku.
Go to the top of the page
+Quote Post
MiFlo
post
Post #2





Grupa: Zarejestrowani
Postów: 92
Pomógł: 4
Dołączył: 12.09.2006
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Ujawnij nam kawałek kodu, może coś się poradzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
taktu
post
Post #3





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 19.05.2008

Ostrzeżenie: (0%)
-----


Wlasnie staram sie wybrac te istotne fragmenty bo troche juz tego nabazgralem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) wiec to bedzie mniej wiecej tak:

dodawanie.php
  1. <?php
  2. require('includes/SessionCheck.php');
  3. require('includes/header.php');
  4. require('includes/funkcje.php');
  5.  
  6. ?>
  7. <div id="menu">
  8. <?
  9. require('includes/menu.php');
  10. ?>
  11. </div>
  12.  
  13. <div id="tresc">
  14. <?
  15. require('includes/add.php');
  16. ?>
  17. </div>
  18. <?
  19. require('includes/footer.php');
  20. ?>


menu.php
  1. <? 
  2. echo ('<a href="index.php">Strona glowna</a> &nbsp&nbsp|&nbsp&nbsp');
  3. echo ('<a href="logout.php">Wyloguj</a><br><br>');
  4.  
  5. switch ($_SESSION['poziom']) {
  6. case 4:
  7. ?>
  8.  
  9. <ul>
  10. <li>Pokoje
  11. <ul><li><a href='wyswietlanie.php?typ=p' >Wyswietlanie</a>
  12. <li><a href='dodawanie.php?typ=p' >Dodawanie</a>
  13. <li>Edycja
  14. <li><a href='usuwanie.php?typ=p'>Usuwanie</a>
  15. </ul>
  16. ...
  17. <?
  18.  break;
  19. case 3:
  20. ...
  21. ?>


add.php
  1. <?php
  2.  
  3.  
  4. switch ($_GET['typ']) 
  5. {
  6. case 'p';
  7.  
  8. ?>
  9.  
  10. <form name= "dodajpokoj" method="post" target="dodawanie.php">
  11.  
  12. <fieldset><legend><b>Dodawanie nowego pokoju</b></legend><br>
  13. Nr. pokoju: <input type="text" name="nr" maxlength="3" size="6"><br>
  14. Nr. telefonu: <input type="text" name="tel" maxlength="3" size="6"><br>
  15. Dostepnosc:<br> 
  16. <input type="radio" name="dost" value="1">Tak<br>
  17. <input type="radio" name="dost" value="0">Nie<br>
  18. Gotowosc:<br>
  19. <input type="radio" name="got" value="1">Tak<br>
  20. <input type="radio" name="got" value="0">Nie<br>
  21. </fieldset>
  22.  
  23. <input type="submit" name="dodajp" value="potwierdz">&nbsp
  24. <input type="reset" value="wyczyść">
  25.  
  26. </form>
  27. <?
  28. $wyk = 0;
  29. if ($_POST['dodajp'] == 'potwierdz')
  30. {
  31. $wyk = 1;
  32. cyfry ($_POST['nr']);
  33. cyfry ($_POST['tel']);
  34. }
  35.  
  36. if ($wyk == 1 and (empty($_POST['nr']) or empty($_POST['tel']) ))
  37.  {
  38. echo('<b>podano nie kompletne dane!</b>');
  39. }
  40. else if ($wyk == 1 and !empty($_POST['nr']) and !empty($_POST['tel']) )
  41. {
  42. $plik = "dane/pokoje.txt";
  43. $file = file($plik);
  44.  
  45. foreach ($file as $pozycja)
  46. {
  47. $tablica = explode('|&&|', $pozycja);
  48. if ($tablica[0] == $_POST['nr'])
  49. {
  50. echo('<b>Pokoj o podanym numerze juz istnieje!</b>');
  51. exit();
  52. }
  53. else if ($tablica[1] == $_POST['tel'])
  54. {
  55. echo('<b>Pokoj o podanym nr. telefonu juz istnieje!</b>');
  56. exit();
  57. }
  58. }
  59.  
  60.  
  61. $spacja = '|&&|';
  62. $karetka = PHP_EOL;
  63. $dane = $_POST['nr'].$spacja.$_POST['tel'].$spacja.$_POST['dost'].$spacja.$_POST['got'].$karetka;
  64. $fp1 = fopen($plik, "a");
  65. fputs($fp1, $dane);
  66. fclose($fp1); 
  67. echo('<b>Dodano nowy pokoj!</b>');
  68. }
  69.  
  70. break;
  71. }
  72.  
  73. ?>
Go to the top of the page
+Quote Post
nitek
post
Post #4





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


z tego co kojarze, <form> nie ma atrybutu 'target', tylko action...\action zawsze mozna pozostawić w formie pusty, wtedy skryot pozostanie na stronie z której został wywołany..

z innej beczki - jeśli dajesz juz coś takiego, jak &nbsp, zawsze dawaj po tym średnik - &nbsp; ponieważ niektóre przeglądarki wyświetlą zwykły tekst na stronie...


edit:

przepraszam - target jest, ale określa nazwę ramki, w której ma zostać wyświetlony formularz po 'obrobieniu' (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
http://www.w3.org/TR/html401/present/frames.html#target-info

Ten post edytował nitek 19.05.2008, 20:43:52
Go to the top of the page
+Quote Post
taktu
post
Post #5





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 19.05.2008

Ostrzeżenie: (0%)
-----


Wielkie dzieki, nie mam pojecia skad ten target sie tam wzial (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) plus wyslany (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:48