Autor Zpráva
gogy27
Profil
tu je prvy skript
<?php

class SimpleMail {
  public $komu = NULL;
  public $predmet = '';
  public $telo = '';
  public $odoslat_text = TRUE;
  private $sprava = '';

   public function odoslat( $komu = NULL,
                           $predmet = NULL,
                           $sprava = NULL ) {
    
    $this->komu = $komu;
    $this->predmet = $predmet;
    $this->sprava = $sprava;
    
    if ($this->odoslat_text) {
      $this->sprava = $this->telo;
    }
    
    if ( !mail( $this->komu,$this->predmet,$this->sprava ) ) {
      throw new Exception ('Odosielanie zlyhalo!');
      return FALSE;
    } else {
      return TRUE;
    }
  }

} 
?>


a subor mail.php:
<?php

require 'class.SimpleMail.php';

$mail = new SimpleMail();

$mail->komu = "patolog44@azet.sk";
$mail->predmet = "Testovanie triedy SimpleMail.php";
$mail->telo = "Ak čítate túto správu, tak ste úspešne použili script na odoslanie mailu";

if ( $mail->odoslat() ) {
  echo "Správa odoslaná";
}
?>


Vobec mi nezbehne funkcia a nevypise ze mail bo odoslany. Uz sa s tym trapim pomerne dlho budem vdacny za kazde mozne riesenie
Mastodont
Profil
   public function odoslat( $komu = NULL,
                           $predmet = NULL,
                           $sprava = NULL ) {
    
    $this->komu = $komu;
    $this->predmet = $predmet;
    $this->sprava = $sprava;

if ( $mail->odoslat() ) {
  echo "Správa odoslaná";
}

No když voláš odoslat() bez parametrů, tak si už zadané hodnoty přepíšeš těmi NULL. Kromě toho tam je pár delších nesmyslů.
gogy27
Profil
nejak nepomohlo :D
btw: OOP sa len ucim pls porad ako by som to mohol vyriesit
Mastodont
Profil
Tohle vyhoď úplně:
$this->komu = $komu;
$this->predmet = $predmet;
$this->sprava = $sprava;
if ($this->odoslat_text) {
    $this->sprava = $this->telo;
}

A parametry odoslat vyhoď taky:
public function odoslat() {
Alphard
Profil
gogy27
težko radit, co má dělat třeba $odoslat_text? snad když se bude třetí parametr nastaven, tak se odešle, když ne, odešle se prázdný

 $this->sprava = $sprava;
    
    if ($this->odoslat_text) {
      $this->sprava = $this->telo;
    }

co tím zamýšlíte?

smažte parametry z metody odoslat, nechte tam jen
if ( !mail( $this->komu,$this->predmet,$this->sprava ) ) {
      throw new Exception ('Odosielanie zlyhalo!');
      return FALSE;
    } else {
      return TRUE;
    }


a nastavte potřebné proměnné

$mail = new SimpleMail();

$mail->komu = "patolog44@azet.sk";
$mail->predmet = "Testovanie triedy SimpleMail.php";
$mail->sprava = "Ak čítate túto správu, tak ste úspešne použili script na odoslanie mailu";

if ( $mail->odoslat() ) {
  echo "Správa odoslaná";
patolog
Profil
tato rada mi pomohla dik :)
patolog
Profil
moze mi este niekto vysvetlit co zanemna:

throw new Exception('Odeslání zprávy selhalo.' );
?
Kcko
Profil
Vyhozeni vyjimky a testuje se pomoci konstrukce

Try
{
testovany blok
}
catch (Exception $e)
{
echo $e;
}

http://uk2.php.net/exceptions

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: