Autor | Zpráva | ||
---|---|---|---|
Tomashekk Profil |
#1 · Zasláno: 17. 1. 2011, 00:55:33
Jak udělat formulář s tlačítkem aby po stisknutí tlačítka se provedla PHP funkce?
|
||
Tori Profil |
#2 · Zasláno: 17. 1. 2011, 01:01:12
Pokud nepotřebujete výstup toho PHP skriptu, stačí pingnout.
|
||
Tomashekk Profil |
#3 · Zasláno: 17. 1. 2011, 01:02:03
Tori:
Potřebuju aby to provedlo funkci na registraci po stisku toho tlačítka (takže aby to zpracovalo i formulář) |
||
Tori Profil |
#4 · Zasláno: 17. 1. 2011, 01:09:24
Tomashekk:
Můžete buď 1. obyčejně odeslat formulář, 2. po stisknutí JavaScriptem načíst hodnoty formulářových polí, poskládat z nich URL a pingnout jí (=data se odešlou metodou GET, ale nebudete vědět, jestli se registrace podařila nebo ne), nebo 3. použít AJAX (odešlete data na server, skript počká na odpověď serveru a může na ni reagovat bez znovunačítání stránky). (a asi jsou i další možnosti, které mě teď nenapadly) |
||
Tomashekk Profil |
#5 · Zasláno: 17. 1. 2011, 01:10:42
Tori:
aha, tak to jsem skončil, jelikož JS neumím.... |
||
Tori Profil |
#6 · Zasláno: 17. 1. 2011, 01:12:32
Tomashekk:
A co přesně jste chtěl udělat? |
||
Tomashekk Profil |
#7 · Zasláno: 17. 1. 2011, 01:14:40
Tori:
normální formulář na registraci či změnu hesla pod... a po stisknutí to provedlo mnou nadefinovanou funkci (která je v PHP) |
||
Tori Profil |
#8 · Zasláno: 17. 1. 2011, 01:21:17
Tak ten formulář normálně pošlete PHP skriptu ke zpracování. JavaScript není nezbytnost, ale jen na ozdobu :-)
Ukažte co máte, nebo co vám nefunguje. |
||
Tomashekk Profil |
#9 · Zasláno: 17. 1. 2011, 01:23:23
Tori:
Asi to dělám pěknou prasečinou, ale jsem začátečník a snažím se o tzv. "pěknou url" a tak vůbec nevím co a jak dělat... už jsem to nějak spáchal. Pomocí RewriteRule jsem si s tím pohrál (RewriteRule ^uprava_vaseho_uctu$ index.php?act=uprava_acc [L]) |
||
panther Profil |
#10 · Zasláno: 17. 1. 2011, 01:27:06
Tomashekk:
tvar URL přeci nemá se zpracováním formuláře nic společného. Do atributu action formuláře dej URL, kde se nechází script, který má formulář zpracovat (případně nech prázdný, má-li formulář zpracovat tatáž stránka, kde se nachází). Data z formuláře budou v poli $_GET nebo $_POST , podle atributu method u formuláře (defaultní je GET, pokud bude tento atribut chybět).
|
||
Tomashekk Profil |
#11 · Zasláno: 17. 1. 2011, 01:28:29
panther:
ano, ale jak říkám, stále jsem začátečník a mé zpracování formuláře jsem dal jen do podmínky if ... (netuším jak to udělat pořádně) |
||
Tori Profil |
#12 · Zasláno: 17. 1. 2011, 01:29:58
Tomashekk:
Jak pravil panther. A myslím, že pokud byste posílal formulář metodou GET, tak bude do RewriteRule potřeba doplnit RewriteRule ^uprava_vaseho_uctu$ index.php?act=uprava_acc [QSA,L] |
||
panther Profil |
#13 · Zasláno: 17. 1. 2011, 01:31:03
Tomashekk:
„ale jak říkám, stále jsem začátečník a mé zpracování formuláře jsem dal jen do podmínky if“ ukaž, co máš a čeho chceš dosáhnout. Začátečnictví tě neomlouvá, snažit se musíš i tak. Celé ti to tu psát nebudu. |
||
Tomashekk Profil |
#14 · Zasláno: 17. 1. 2011, 01:36:45
<?php if($_GET['cek'] == "ano") {?><script> alert('Aktivujte si Váš účet prosím.');</script><?php } if($_SESSION['prihlaseni'] == sha1($_SESSION['nick'].$_SESSION['zprava'])){ Header("Location: ../index.php?page=modules/user/index"); } else { ?><div id="center"> <form id="form1" name="form1" method="post" action="index.php?act=log"> <h2><?php echo _LOGIN; ?></h2> <table width="30%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="50%" align="left"><?php echo US_LOGIN; ?></td> <td width="50%" align="left"><label> <input name="prezdivka" type="text" id="prezdivka" /> </label></td> </tr> <tr> <td width="50%" align="left"><?php echo US_PASSWORD; ?></td> <td width="50%" align="left"><label> <input name="heslo" type="password" id="heslo" /> </label></td> </tr> <tr> <td width="50%"><label> <input type="submit" name="submit" id="submit" value="Odeslat" /> </label></td> <td width="50%"><label> <input type="submit" name="odesli" id="odesli" value="<?php echo BUTTON_SEND; ?>" /> </label></td> </tr> <tr> <td colspan="2" align="center"><?php echo US_FORGOTPASSWORD; ?><a href="index.php?page=modules/user/zapomenute"><?php echo US_HERE; ?></a>.</td> </tr> <tr> <td colspan="2" align="center"><?php echo US_NOACC; ?><a href="index.php?page=modules/user/registrace"><?php echo US_HERE; ?></a>.</td> </tr> </table> </form> </div> <?php } ?> po odeslání tohoto formuláře bych chtěl aby se provedla funkce na přihlášení, ovšem ta funkce je v jiném souboru (který je includován do indexu). funkce: function prihlaseni(){ if($_GET['act'] == "log"){ $rows = mysql_num_rows(mysql_query("SELECT 1 FROM `".DB_PREFIX."user` WHERE `nick`='".addslashes($_POST['prezdivka'])."' AND `password`='".sha1(addslashes($_POST['heslo']).$_POST['prezdivka'])."' AND `permissions` >= 1")); if($rows == 1) { $per = mysql_fetch_array(mysql_query("SELECT `permissions` FROM `".DB_PREFIX."user` WHERE `nick` = '".$_POST['prezdivka']."'")); $_SESSION['prava'] = $per['permissions']; $_SESSION['prihlaseni'] = sha1($_POST['prezdivka'].sha1(addslashes($_POST['heslo']).$_POST['prezdivka'])); $_SESSION['nick'] = $_POST['prezdivka']; $_SESSION['zprava'] = sha1(addslashes($_POST['heslo']).$_POST['prezdivka']); Header("Location: domovska_stranka"); } else {?><script> alert('Špatné jméno nebo heslo, prosím zadejte správnou kombinaci.');javascript:self.history.back();</script><? } } } |
||
Časová prodleva: 13 let
|
0