[ nezki @ 18.12.2007. 17:15 ] @
Ovako,
Imam stranicu kontakt.html na kojoj imam formu za unos podataka i captcha kod. Sa te stranice kada se klikne na Submit podaci se salju na stranicu sendEmail.php gde se proveri da li je captcha kod ok i ako nije vrati se na stranicu kontakt html i ispise poruku o pogresno unetom kodu, a uneti podaci ostanu u formi ne moraju se opet unositi, tj forma ostaje popunjena sem captcha koda koji se refresovao i pored njega je ispisana poruka o gresci.
Povratak sa stranice sendMail.php sam uradio sa window.history.back() da bi mi ostala popunjena polja, ali ne znam kako da znam kada treba da ispisem gresku tj kako da sa stranice sendMail.php prosledim neki znak o gresci pri povratku na stranicu kontakt.html u slucaju greske a da polja ostanu popunjena.
[ Aleksandar Ružičić @ 20.12.2007. 19:50 ] @
to se radi sa serverske strane, tj iz php-a. i mnogo je bolje da ti to bude jedan fajl, recimo kontakt.php, koji bi izgledao ovako:
Code:

<?php

   include("captcha.php"); // recimo da ti se ovde nalaze f-je za rad sa captchom
   include("sendmail.php"); // a ovde f-je za slanje mejla
  
   $error = array();

   if (isset($_POST['action']) && $_POST['action'] == 'send-mail')
   {
        // ovde proveri podatke, npr:
        if (checkCaptcha($_POST['captcha']))
        {
           if (strlen($_POST['title']))
           {
                   // ovde jos provera (recimo ispravnost mejla, ime, prezime, itd)
                   sendMail(); // i na kraju posaljes mejl (f-ja koristi parametre iz $_POST niza)
           }
            else
           {
               $error[] = 'Morate uneti naslov poruke...';
           }
        }
        else
       { 
          $error[] = 'Morate tacno uneti karaktere sa slike, bla bla...';
       }
   }

   if (sizeof($error))
   {
         echo '<div class="errors">';
         foreach ($errors as $err) echo "<span>$err</span>";
         echo '</div>';
   }

?>

<form action="" method="post">
  <input type="hidden" name="action" value="send-mail" />
  <input type="text" name="title" value="<?=$_POST['title']?>" />
  <input type="text" name="captcha" value="<?=$_POST['captcha']?>" />
  <!-- ovde jos potrebnih inputa... -->
  <button type="submit">Submit</button>
</form>





@mods: ovo bi trebalo da se prebaci u PHP...
[ nezki @ 20.12.2007. 20:00 ] @
Hvala ti.
Znam da to mora iz php-a ali me interesovalo da li moze nekako preko javascripta da sa jedne stranice dodelis vrednost nekoj promenljivoj sa dolazece stranice.
Ali izgleda ne moze.
[ Aleksandar Ružičić @ 21.12.2007. 11:02 ] @
pa moze :)

mozes da prosledis parametar kroz url, npr http://www.bla.foo?param1=bla&param2=foobar
recimo ovakav kod bi ti vratio sve parametre i njihove vrednosti:
Code:


function getParams(s)
{
    var r = {};

    if (a = s.match(/[^&?=]*=[^&?=]*/g))
    {
        for (var i = 0; i < a.length; i++)
        {
            r[a[i].match(/[^&?=]*/)[0]] = a[i].match(/=([^&?]*)/)[0].replace('=', '');
        }
    }

    return r;
}

params = getParams(location.href);

for (x in params)
{
    alert(x + ' = ' + params[x]);
}