Autor Zpráva
Tomashekk
Profil
Jak udělat formulář s tlačítkem aby po stisknutí tlačítka se provedla PHP funkce?
Tori
Profil
Pokud nepotřebujete výstup toho PHP skriptu, stačí pingnout.
Tomashekk
Profil
Tori:
Potřebuju aby to provedlo funkci na registraci po stisku toho tlačítka (takže aby to zpracovalo i formulář)
Tori
Profil
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
Tori:
aha, tak to jsem skončil, jelikož JS neumím....
Tori
Profil
Tomashekk:
A co přesně jste chtěl udělat?
Tomashekk
Profil
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
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
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
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
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
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
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
<?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><? }
	  }	}

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0