Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wywolanie funkcji na innej stronie
andy1995
post 16.02.2013, 23:20:56
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.07.2012

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


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
Go to the top of the page
+Quote Post
kamil_lk
post 16.02.2013, 23:28:05
Post #2





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


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. }
Go to the top of the page
+Quote Post
andy1995
post 16.02.2013, 23:39:35
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.07.2012

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


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
Go to the top of the page
+Quote Post
kamil_lk
post 16.02.2013, 23:44:26
Post #4





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


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


Ten post edytował kamil_lk 16.02.2013, 23:47:29
Go to the top of the page
+Quote Post
andy1995
post 16.02.2013, 23:51:59
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.07.2012

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


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.
Go to the top of the page
+Quote Post
luke18dg
post 17.02.2013, 00:20:13
Post #6





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 26.03.2011
Skąd: Dąbrowa Górnicza

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


Chwila, chcesz przesłać dane na /check.php a samego użytkownika, żeby został na sent.php?
Go to the top of the page
+Quote Post
andy1995
post 17.02.2013, 00:24:57
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.07.2012

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


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.
Go to the top of the page
+Quote Post
luke18dg
post 17.02.2013, 00:33:39
Post #8





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 26.03.2011
Skąd: Dąbrowa Górnicza

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


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
Go to the top of the page
+Quote Post
andy1995
post 17.02.2013, 00:35:20
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.07.2012

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


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
Go to the top of the page
+Quote Post
luke18dg
post 17.02.2013, 00:47:42
Post #10





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 26.03.2011
Skąd: Dąbrowa Górnicza

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


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


Ten post edytował luke18dg 17.02.2013, 00:51:33
Go to the top of the page
+Quote Post
Posio
post 17.02.2013, 11:38:52
Post #11





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


wystarczy użyć AJAX'a... ot cała filozofia.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 20:03