Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wywolanie funkcji na innej stronie
Forum PHP.pl > Forum > Przedszkole
andy1995
Witam. Mam nastepujacy problem, iz nie mam pojecia jak cos takiego zrobic. Ma to wygladac tak (chyba, ze da sie inaczej):

xxx.com/formularz.php - ktos wypelnia formularz na tej stronie, nastepnie po wyslaniu formularza zostaje wywolana funkcja play() na xxx.com/check.php

Prosze o jakies propozycje
kamil_lk
formularz w action powienien mieć chceck.php, czyli:
  1. <form action="check.php" ...


następnie na stronie na stronie chceck.php sprawdzasz czy został wysłany formularz poprzez, np.: isset() i jeżeli tak to wywołujesz funkcje play(), czyli np.::
  1. if(isset($_POST['submit'])){ //tutaj zmienna post o wartości przycisku formularza
  2. play();
  3. }
andy1995
Nic z tego. Nie moze tak byc bo musi byc tak
  1. <form action="sent.php" ...
. Dokladnie to wyglada to tak:

/index.html - formularz, po wyslaniu przenosi na /sent.php w ktorym dane z formularza sa dodawane do bazy

a w pliku check.php sa te dane wyswietlane. Chodzi o to, zebym po wypelnieniu formularza prze jakas osobe ja odwiedzajacy strone /check.php uslyszal dzwiek, dzieki temu bede wiedzial, ze ktos wypelnil formularz.

Mysle, ze jasno przedstawilem sytuacje
kamil_lk
Możesz to zrobić poprzez wywołanie header-em strony check.php ze strony sent.php w przypadku, gdy dane zostały dodane poprawnie, np.:

  1. if($query){
  2. header('Location: www.xxx.com/check.php');
  3. }
andy1995
Cytat(kamil_lk @ 16.02.2013, 23:44:26 ) *
Możesz to zrobić poprzez wywołanie header-em strony check.php ze strony sent.php w przypadku, gdy dane zostały dodane poprawnie, np.:

  1. if($query){
  2. header('Location: www.xxx.com/check.php');
  3. }

Tak tez nie moze byc. Po wypelnieniu formularza koles musi zostac na sent.php, nigdzie indziej nie moze go przekierowac.
luke18dg
Chwila, chcesz przesłać dane na /check.php a samego użytkownika, żeby został na sent.php?
andy1995
Cytat(luke18dg @ 17.02.2013, 00:20:13 ) *
Chwila, chcesz przesłać dane na /check.php a samego użytkownika, żeby został na sent.php?

Dokladnie tak. Tylko informacje o wyslaniu formularza, oczywiscie nie pustego.
luke18dg
Wydaje mi się, że musisz być defakto na tej stronie tzn. wysyłasz formularz z sent.php przechodzisz do /check.php operujesz na tych danych i sprawdzasz czy użytkownik nie pochodzi z sent.php. Jeśli tak odsyłasz na sent. Prawdopodobnie przy okazji zgubi POSTA GETA lub inne tablice. Odsyłanie proponował bym zrobić headerem ponieważ jeśli nie zakończysz prawdopodobnie kod w /check.php będzie dalej wykonywał mimo, że użytkownik opuścił stronę smile.gif
andy1995
Cytat(luke18dg @ 17.02.2013, 00:33:39 ) *
Wydaje mi się, że musisz być defakto na tej stronie tzn. wysyłasz formularz z sent.php przechodzisz do /check.php operujesz na tych danych i sprawdzasz czy użytkownik nie pochodzi z sent.php. Jeśli tak odsyłasz na sent. Prawdopodobnie przy okazji zgubi POSTA GETA lub inne tablice. Odsyłanie proponował bym zrobić headerem ponieważ jeśli nie zakończysz prawdopodobnie kod w /check.php będzie dalej wykonywał mimo, że użytkownik opuścił stronę smile.gif

Jakis przykladowy kod?biggrin.gif
luke18dg
Moje dodawanie do bazy jakiegoś użytkownika. Jest podobnie wydaje mi się skonstruowane. Tylko operuje dla wygody na jeszcze jednym pliku aby zachować ładny URL. To co pytałeś. Moje dodawanie(...).php wysyła dane do walidacji a ona operuje na nich. Jeśli zajdą warunki przewidziane przeze mnie ma wrócić do dodawania z danymi lub bez. A to co pisałem o sprawdzaniu z skąd przychodzi użytkownik jest jakaś funkcja smile.gif A dokładniej ta: HTTP_REFERER

indexhome.php
  1. <?php
  2. if(!isset($_GET['url']))
  3. {include('home.php');}
  4. else
  5. {
  6. if (is_file($_GET['url'].'.php'))
  7. {include($_GET['url'].'.php');}
  8. else {echo'Error 500002 - Brak strony o podanej nazwie.';}
  9. }
  10. ?>

dodawanieuzytkownika.php
  1. <?php
  2. if(empty($_SESSION['id_uzytkownika'])){include('braksesji.php');}
  3. if(!(empty($_SESSION['dane']))){$tablica=explode('<!59%6>',$_SESSION['dane']); unset($_SESSION['dane']);}
  4. ?>
  5. <html>
  6. <head>
  7. <title>Strona główna</title>
  8. <meta name="AUTHOR" content="">
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  10. <style type="text/css">
  11. <!--
  12. #centrowanie {width:80%; min-width:1000px; max-width:3000px; margin: 0 auto;}
  13. #lewytabelka {width:20%; min-width:200px; max-width:600px;}
  14. #glownytabelka {width:80%; min-width:800px; max-width:2400px;}
  15. span.pogrubiony {font-weight: bold;}
  16. -->
  17. </style>
  18. </head>
  19. <body>
  20. <?php
  21. if(($_SESSION['moc']!='A')&&($_SESSION['moc']!='M')){include('brakmocy.php');}
  22. echo '<table border="1" id="centrowanie" cellspacing="5" cellpadding="5"><tr>';
  23. include('lewaczesc.php');
  24. echo '<td id="glownytabelka">';
  25. echo '<center>Dodawanie pojedynczego użytkownika.<br>Proszę wpisać pola wymagane oznaczone gwiazką.</center>';
  26. echo '
  27. <center>
  28. <form action="indexhome.php">
  29. <table border="1" cellspacing="5" cellpadding="5">
  30. <tr align="center" valign="middle">
  31. <td><span class="pogrubiony">1. Login uzytkownika * </span></td>
  32. <td><input type="text" name="login" size="35" required = "required" maxlength="25"';
  33. if(!(empty($_GET['login']))){echo 'value="'.$_GET['login'].'"';}
  34. echo '></td>
  35. </tr>
  36. <tr align="center" valign="middle">
  37. <td><span class="pogrubiony">2. Hasło użytkownika * </span></td>
  38. <td> <input type="password" name="haslo" size="35" required = "required" maxlength="40"> </td>
  39. </tr>
  40. <tr align="center" valign="middle">
  41. <td><span class="pogrubiony">3. Wybierz uprawnienia użytkownika *</span></td>
  42. <td>';
  43. if($_SESSION['moc']=='A'){echo'<input type="radio" name="moc" value="A"';
  44. if(!(empty($_GET['moc']))){if($_GET['moc']=='A'){echo 'checked';}}
  45. echo '> Uprawnienia administratora<br>';}
  46. <input type="radio" name="moc" value="M"';
  47. if(!(empty($_GET['moc']))){if($_GET['moc']=='M'){echo 'checked';}}
  48. echo'> Uprawnienia moderatora<br>
  49. <input type="radio" name="moc" value="S"';
  50. if(!(empty($_GET['moc']))){if($_GET['moc']=='S'){echo 'checked';}}
  51. echo '> Uprawnienia zwykłego użytkownika
  52. </td>
  53. </tr>
  54. <tr align="center" valign="middle">
  55. <td><span class="pogrubiony">4. E-mail </span></td>
  56. <td><input type="text" name="email" size="35" maxlength="70"';
  57. if(!(empty($_GET['email']))){echo 'value="'.$_GET['email'].'"';}
  58. echo'></td>
  59. </tr>';
  60. //Poprzez PHP i Javascript wyłączyć wyświetlanie Rok i litera jeśli użytkownik tworzy nowego użytkownika o prawach moderatora lub admina.
  61. echo'<tr align="center" valign="middle">
  62. <td><span class="pogrubiony">5. Rok </span></td>
  63. <td><input type="text" name="rok" size="35" maxlength="2"';
  64. if(!(empty($_GET['rok']))){echo 'value="'.$_GET['rok'].'"';}
  65. echo '></td>
  66. </tr>
  67. <tr align="center" valign="middle">
  68. <td><span class="pogrubiony">6. Litera klasy</td>
  69. <td><input type="text" name="litera" size="35" maxlength="5"';
  70. if(!(empty($_GET['litera']))){echo 'value="'.$_GET['litera'].'"';}
  71. echo '></span></td>
  72. </tr>';
  73. if(isset($tablica))
  74. {
  75. echo '<tr><td colspan="2"><ul>';
  76. foreach($tablica as $i) {echo '<span style="color: RED;"> <li>'.$i.'</li></span>'; }
  77. echo '</ul></td></tr>';
  78. }
  79. <tr align="center" valign="middle">
  80. <td colspan="2">
  81. <input type="hidden" name="url" value="walidacjadodawanieuzytkownika">
  82. <input type="submit" name="wyslij"></center>
  83. </td>
  84. </tr>
  85. <tr>
  86. </table>';
  87. ?>
  88. </body>
  89. </html>


walidacjadodawanieuzytkownika.php
  1. <?php
  2. $radio=''; $email=''; $rok=''; $litera='';
  3. $login=$_GET['login'];
  4. $haslo=$_GET['haslo'];
  5. if(empty($_GET['moc']))
  6. {
  7. $tablica[]='Brak uprawnien dla uzytkownika.';
  8. header('Location: indexhome.php?url=dodawanieuzytkownika&login='.$login.'&haslo='.$haslo.'&moc='.$radio.'&email='.$email.'&rok='.$rok.'&litera='.$litera);
  9. exit();
  10. }
  11. else {$radio=$_GET['moc'];}
  12. if(!(empty($_GET['email']))){$email=$_GET['email'];}
  13. if(!(empty($_GET['rok']))){$rok=$_GET['rok'];}
  14. if(!(empty($_GET['litera']))){$litera=$_GET['litera'];}
  15. include('funkcje.php');
  16. if(($login=='')||($login==' ')){blad1('Błednie podany lub pusty login.','indexhome.php?url=dodawanieuzytkownika&login='.$login.'&haslo='.$haslo.'&moc='.$radio.'&email='.$email.'&rok='.$rok.'&litera='.$litera);}
  17. if(($haslo=='')||($haslo==' ')){blad1('Błędne podaeny lub puste hasło.','indexhome.php?url=dodawanieuzytkownika&login='.$login.'&haslo='.$haslo.'&moc='.$radio.'&email='.$email.'&rok='.$rok.'&litera='.$litera);}
  18. if($email==' '){blad1('Nie poprawny e-mail.','indexhome.php?url=dodawanieuzytkownika&login='.$login.'&haslo='.$haslo.'&moc='.$radio.'&email='.$email.'&rok='.$rok.'&litera='.$litera);}
  19. if($radio=='S'){if(empty($rok)){blad1('Brak roku dla studenta.','indexhome.php?url=dodawanieuzytkownika&login='.$login.'&haslo='.$haslo.'&moc='.$radio.'&email='.$email.'&rok='.$rok.'&litera='.$litera);}}
  20. if($radio=='S'){if(empty($litera)){blad1('Brak klasy dla studenta.','indexhome.php?url=dodawanieuzytkownika&login='.$login.'&haslo='.$haslo.'&moc='.$radio.'&email='.$email.'&rok='.$rok.'&litera='.$litera);}}
  21. // POPRAWIC NA JEDEN WARUNEK XOR NIE DZIALA, DZIWNE BLEDY
  22. $połacz=mysql_connect('localhost', 'root','MOJEHASLO<TEGO SZUKALES?haha.gif>') or die(blad1('Nie można połączyć się z bazą danych','dodawanieuzytkownika.php'));
  23. mysql_select_db('projekt', $połacz) or die(blad1('Nie można wybrać bazy danych','dodawanieuzytkownika.php'));
  24. $zapytanie_id=mysql_query('SELECT `login` FROM `uzytkownicy` WHERE `login` = \''.$login.'\';');
  25. if((mysql_num_rows($zapytanie_id))<1)
  26. {
  27. $zapytanie_id=mysql_query('SELECT `email` FROM `uzytkownicy` WHERE `email`= \''.$email.'\';');
  28. if((mysql_num_rows($zapytanie_id))<1)
  29. {
  30. $zapytanie='INSERT INTO `projekt`.`uzytkownicy`(`id_uzytkownika`,`login`,`haslo`,`moc`,`email`,`klasa`,`litera`) VALUES (NULL,\''.$login.'\',\''.sha1($haslo).'\',\''.$radio.'\',';
  31. if(!(empty($email))){$zapytanie.='\''.$email.'\'';} else{$zapytanie.='NULL';} $zapytanie.=',';
  32. if(!(empty($rok))){$zapytanie.='\''.$rok.'\'';} else{$zapytanie.='NULL';} $zapytanie.=',';
  33. if(!(empty($litera))){$zapytanie.='\''.$litera.'\'';} else{$zapytanie.='NULL';}
  34. $zapytanie.=');';
  35. mysql_query($zapytanie)or die(blad1('Wystąpiły błędy przy zapisywaniu danych.','indexhome.php?url=dodawanieuzytkownika&login='.$login.'&haslo='.$haslo.'&moc='.$radio.'&email='.$email.'&rok='.$rok.'&litera='.$litera));
  36. echo '<center>Uzytkownik został pomyślnie dodany.<BR>Nastąpi przeniesienie użytkownika za 5s do formularza dodawania użytkowników.</center>';
  37. header('refresh: 5; url=indexhome.php?url=dodawanieuzytkownika');
  38. exit();
  39. }
  40. else{blad1('E-mail został wykorzystany, już na tej stronie.','indexhome.php?url=dodawanieuzytkownika&login='.$login.'&haslo='.$haslo.'&moc='.$radio.'&email='.$email.'&rok='.$rok.'&litera='.$litera);}
  41. }
  42. else{blad1('Login o takej nazwie istnieje w bazie.','indexhome.php?url=dodawanieuzytkownika&login='.$login.'&haslo='.$haslo.'&moc='.$radio.'&email='.$email.'&rok='.$rok.'&litera='.$litera);}
  43. ?>
Posio
wystarczy użyć AJAX'a... ot cała filozofia.
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.