Autor Zpráva
Nuimi
Profil
Mam tento kon, je plne funkcni, ale email odesle az po prihlaseni na stranky, slo by nejak odesilat email aniz by se musel clovek prihlasit??

<script language="javascript" type="text/javascript">
     function tiktak()
     {
      var cas=new Date()
      var hodina=cas.getHours()
      var minuta=cas.getMinutes()
      var sekunda=cas.getSeconds()

      if (minuta<10)
      {
       minuta="0"+minuta
      }

      if (sekunda<10)
      {
        sekunda="0"+sekunda
      }

      document.zobraz.hodiny.value=hodina+":"+minuta+":"+sekunda
      setTimeout("tiktak()",1000)

      if(hodina == "17" && minuta == "20" && sekunda == "00")
      {
       <?php
        include"pripojeni.php";
        $datum=Date("m-d");
        $den=Date("d");
        $mesic=Date("m");
        $_='<br>';
        
        $overeni="SELECT datum, jmeno, prijmeni FROM registrace WHERE SUBSTRING(datum,6) = '".$datum."'";
        $dotaz=$db -> query($overeni);

        while($row = $dotaz ->fetch_assoc())
        {
          if($dotaz->num_rows > 0)
          {
            $cil="Nuimi@seznam.cz";
            $predmet = "Narozeniny";
            $odesilatel = "Charita Jičín";
            $zahlavi = "MIME-Version: 1.0\r\n";
            $zahlavi .= "Content-type: text/html; charset=\"utf-8\"\r\n";;
            $zahlavi .= "From: Charita Jicin\r\n";
            $text ="Dnes má narozeniny ".$row['jmeno']." ".$row['prijmeni']."\r\n";
            mail($cil, $predmet, $text, $zahlavi);
          }
        }
        
        $overeni1="SELECT registrace.jmeno AS 'jmeno1', svatky.jmeno AS 'jmeno2', prijmeni FROM registrace LEFT JOIN svatky ON registrace.jmeno=svatky.jmeno WHERE den=".$den." AND mesic=".$mesic."";
        $dotaz1=$db -> query($overeni1); 
        
        while($row1 = $dotaz1 ->fetch_assoc())
        {
          if($row1['jmeno1'] == $row1['jmeno2'])
          {
            $cil="Nuimi@charitajicin.cz";
            $predmet = "Svátek";
            $odesilatel = "Charita Jičín";
            $zahlavi = "MIME-Version: 1.0\r\n";
            $zahlavi .= "Content-type: text/html; charset=\"utf-8\"\r\n";;
            $zahlavi .= "From: Charita Jicin\r\n";
            $text ="Dnes má svátek ".$row1['jmeno1']." ".$row1['prijmeni']."\r\n";
            mail($cil, $predmet, $text, $zahlavi);
          }
        }
       ?>
      }
     }
     tiktak()
    </script>
Keeehi
Profil
Takhle se ale javascript s PHP nedá spojit.
www.pehapko.cz/zakladni-kurz/15-php-a-javascript nebo Nejčastější potíže s PHP (FAQ) » Jak přenést proměnnou z javascriptu do PHP
Nuimi
Profil
tak proc to funguje ??
Keeehi
Profil
Emaily se odesílají úplně nezávisle na tom javascriptu. Když bys ho odstranil, bude to "fungovat" úplně stejně. To proto, že PHP se vykoná už na serveru a teprva až když skončí (emaily jsou už odeslané), tak teprve pak se stránka odešle do prohlížeče návštěvníka a může se začít vykonávat javascript.
Dá se to taky poznat ze zdrojového kódu stránky, který si zobrazíš v prohlížeči. Na tom místě, kde ho máš ve scriptu v prohlížeči nic nebude. Když se na to místo dostane javascript, neměl by ani podle čeho zjistit, že tam na tom místě na serveru PHP kód je, takže by ho ani nemohl nějak spustit nebo tak.
To že ti to "funguje" je jen souhra náhod.
Víc informací najdeš v dokázaných článcích.
Nuimi
Profil
Dobrá, převedl jsem proměnnou, ale nenacpu tam cely kus kodu, to je nemozny
Keeehi
Profil
Nuimi:
Dobrá, převedl jsem proměnnou, ale nenacpu tam cely kus kodu, to je nemozny
Evidentně jsi to nepochopil. Nemůžeš to dát do jednoho souboru. Nebo alespoň ne tak, jak si myslíš. Nejjednodušší bude, když do jednoho souboru dáš ten PHP script a ten odešle email pokaždé, když ho zavoláš. A v tom javascriptu v místě, kde byl původně ten PHP kód budeš ten nový soubor volat. Jak? AJAXem. Úplně ti bude stačit z části Pseudo AJAX to Pingnutí obrázkem.

Je ti ale snad doufám jasné, že tu stránku s javascriptovým kódem budeš muset mít někde pořád otevřenou! To se dá ale velmi jednoduše vyřešit tak, že tu práci s časováním nesvěříš javascriptu, ale programu na to přímo určenému. Jmenuje se CRON.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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