Dobry den,
mam problem s nastavenim formulare. Byl funkcni, ale bez zabezpecni Captcha. Kdyz jsem zabezpeceni pridal dle navodu, formular nyni nelze odeslat. Kdyz vyplnim vsechny udaje spravne, tak napise hlasku, Formular nebyl odeslat. Odkaz je http://www.fftbikepark.com/vol7/regi...age=registrace
Dekuji za rady, pripadne mohu poslat soubor reg_zpracuj.php, ktery data zpracovava.
Fórum › PHP
Nelze odeslat formular
#1 michal
<?php session_start();
ob_start(); // cachujeme vystup
include_once '/disk_1/www/com/fftbikepark/www/vol7/registrace/securimage/securimage.php';
if(isset($_POST['sent'])) { // pokud byl odeslan formular pokracuj timto/
$nick = trim($_POST['nick']);
$jmeno = trim($_POST['jmeno']);
$prijmeni = trim($_POST['prijmeni']);
$narozeni = trim($_POST['narozeni']);
$klub = trim($_POST['klub']);
$mesto = trim($_POST['mesto']);
$telefon = trim($_POST['telefon']);
$mail = trim($_POST['mail']);
$web = trim($_POST['web']);
$dotazy = trim($_POST['dotazy']);
$captcha_code = trim($_POST['captcha_code']);
}
$securimage = new Securimage();
if ($securimage->check($_POST['captcha_code']) == false) {
echo "Chybně opsaný bezpečnostní kód.<br /><br />";
echo "Zkuste <a rel="nofollow" href='javascript:history.go(-1)'>zde</a> vyplnit znovu.";
exit;
}
if (!empty($_POST['validator']) && $_POST['validator'] == $_SESSION['rand_code'<
span style="background-color:#f7faff;">]) {
// process your form here
// at least destroy the session
unset($_SESSION['rand_code']);
if($jmeno=="" or $prijmeni=="" or $narozeni=="" or $klub=="" or $mesto=="" or $telefon=="" or $mail=="" or $captcha_code=="")
{ // pokud nebylo vyplnìno nìco z toho, co je povinné, dáme vìdìt a skript ukonèíme
$backlink="index.php?page=registrace&Alert=1";
} else{ // povinné udaje vyplnìny vsechny
require "db.php"; // pripojime se k databazi
$PocetStejnych=mysql_result(mysql_query("SELECT COUNT(*) FROM `uzivatele` WHERE `mail`='$mail'"), 0);
if($PocetStejnych!=0){ // pokud v db je jiz takove jmeno nebo heslo...
$backlink="index.php?page=registrace&Alert=2";
}
if($web=="http://" or $web==""){ //pokud nezadal web tak dame promennou web prazdnou
$web="";
}
$VlozData=mysql_query("INSERT INTO uzivatele (nick,jmeno,prijmeni,narozeni,klub,mesto,telefon,mail,web,dotazy,prava) VALUES ('$nick','$jmeno','$prijmeni','$narozeni','$klub','$mesto','$telefon','$mail','$web','$dotazy', '0')") or die (mysql_error());
// Vlozim do tabulky hodnoty - prvni je ID - nevyplnim, tvori se samo.
// Jako posledni hodnota je "0", to jsou ty prava uzivatele.
$backlink="index.php?Alert=4"; // presmerovani s hlaskou ze je vse OK
}
}
else{
$backlink="index.php?page=registrace&Alert=5";
}
// pokud pouzijete HEADER LOCATION tak by pred nim nemelo byt zadne platne ECHO
//echo "<a rel="nofollow" href='index.php'>index</a>";
// samozrejme zde muze byt presmerovani na jinou stranku pomoci
header ("Location: $backlink");
ob_end_flush();
?>
Jestli formular byl nebo nebyl odeslan se de zjistit tim, ze jej odesles na soubor, ktery vypise data:
--- formular.html ---
<form action=soubor.php method=post>
<input name=aaa value=odeslan type=text>
<input type=submit>
</form>
--- soubor.php ---
echo '<pre>'; print_r($_POST);
Ten link je celkem bezcenej. Budes muset toho poslat vic. Vypise mi to
Park usti nad orlici
Content not found
The content you are looking for could not be found.
Mozna by ses mohl vybodnout na obrazky a zkusit javascript
--- formular.html ---
<form action=soubor.php method=post>
<input name=aaa value=odeslan type=text>
<input type=submit>
<input type=hidden name=xxx id=xxx>
<script>document.getElementById('xxx').value='skryty kod';</script>
</form>
--- zpracuj.php ---
...
if(isset($_POST['sent']) && isset($_POST['xxx']) && $_POST['xxx']=='skryty kod') {
...
Vetsina php automatu neumi spustit javascript, takze policko xxx zustane prazdne, coz potom snadno vyresis v php podminkou. Pripadne tam muzes generovat nejake cislo, ktere si ulozis do session a kontrolujes pak vuci session.
if(isset($_POST['sent']) && isset($_POST['xxx']) && isset($_SESSION['xxx']) && $_POST['xxx']==$_SESSION['xxx']) {
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Select onChange=formulář odeslat — založil CZechBoY
Nelze zavřít formulář — založil Jakub Dibala
Odeslat data bez tlačítka — založil omorok
Skype - tlačítko ''Odeslat zprávu'' — založil Jurda_I
Jak odeslat výsledek do jiného okna? — založil oxidián
Moderátoři diskuze