Nelze odeslat formular – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nelze odeslat formular – PHP – Fórum – Programujte.comNelze odeslat formular – PHP – Fórum – Programujte.com

 

michal
~ Anonymní uživatel
683 příspěvků
1. 7. 2015   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 192.193.116.–
michal
~ Anonymní uživatel
683 příspěvků
1. 7. 2015   #2
-
0
-

#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();
 
?>

Nahlásit jako SPAM
IP: 192.193.116.–
peter
~ Anonymní uživatel
4014 příspěvků
1. 7. 2015   #3
-
0
-

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']) {
 

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:c429:f2...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 40 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý