Newsgroup: it.comp.www.php
Titolo: form php

salve..
ho un problema ..non riesco a "testare" il mio form in locale..
ho scaricato easyphp e altre pagine in php le vedo normalmente ...
quale puo' essere il problema?
grazie

 ha scritto nel messaggio 
news:JXzRh.20325$tx6....@tornado.fastwebnet.it...

-------------
Le pagine le hai inserite nella cartella giusta?
Quella dove "gira" il php... 

Ner0 ha scritto:

Se il problema è l'invio dei dati, hai modificato nel file php.ini
----------------------------------
[mail function]
SMTP = smtp.tuoprovider.ext
sendmail_from = tua...@xxx.yy
----------------------------------
-- 
______________________________
  Omega
 
http://gnammo.altervista.org
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Salvatore Paci ha scritto:

certo ... in /www
gli altri file girano...come e' un form html con un controllo php

 
uhm..in che senso? se lo provo in locale .. non dovrebbe inviare niente 
o sbaglio?  scusate ma e' la prima volta che testo un form in locale.
grazie

 o sbaglio?  scusate ma e' la prima volta che testo un form in locale.
Per PHP non esiste "locale", e` tutto "server-side". Per testarlo devi 
avere un server web configurato, quindi e` come se ti collegassi a un 
server su Internet. Lo script non cambia da solo in base a dove e` 
installato.
Se usi mail(), sotto Windows devi impostare il server da usare per spedire 
come dice Omega, altrimenti mail() torna errore.
Sotto Linux devi avere un server smtp sulla stessa macchina (o comunque il 
comando sendmail), e anche qui se non c'e` mail() torna errore.
Bye.

Alessandro Pellizzari ha scritto:

ora ho capito bene ..hai ragione..infatti mi rotorna sempre errore :O
modifico e vi faccio sapere.
grazie

Alessandro Pellizzari ha scritto:

fatto..il file viene letto ... ma mi da errore a varie righe del codice 
:| perche? online funziona bene.

 :| perche? online funziona bene.
Quali errori?


 
eho capitop che e' un problrma di codice... gia' e' qualcosa...

 Quali errori?
questo e' il codice... mi da errori tipo questo :
Notice: Undefined variable: email in 
d:\programmi\easyphp1-8\www\prova\forminvio.php on line 116
Notice: Undefined offset: 1 in 
d:\programmi\easyphp1-8\www\prova\forminvio.php on line 77
Notice: Undefined variable: contenitore in 
d:\programmi\easyphp1-8\www\prova\forminvio.php on line 185
Notice: Undefined variable: title in 
d:\programmi\easyphp1-8\www\prova\forminvio.php on line 46
Notice: Undefined variable: bgcolor in 
d:\programmi\easyphp1-8\www\prova\forminvio.php on line 46
Notice: Undefined variable: text_color in 
d:\programmi\easyphp1-8\www\prova\forminvio.php on line 46
<?
$delay = "5";
$url = "
http://pagina.html/pag.html
";
$provenienza = array ('pagina.html');
$esclusioni = array ('*@
quellochetipare.com
', 
'
nomech...@dominio.com
', '
al...@dominio.com
');
$versione_form = "stabile";
function print_error($reason,$type = 0) {
    global $versione_form;
    build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, 
$alink_color, $style_sheet);
       if ($type == "missing") {
       ?>
       <body bgcolor='#94B6C6'>
       <p align='center'><font face='Arial' color='#990000' size='2'>Il 
modulo non è
stato inviato per le seguenti ragioni</font></p><br>
<p align='center'><font face='Arial' size='2' color='#990000'>
      <?
      echo $reason."\n";
      ?>
      </font>
      <p align='center'><font face='Arial' size='2' 
color='#990000'>Premere indietro
nel browser e riprovare.</font></p><?
    } else {
       ?>
       Il modulo non è stato inviato per le seguenti ragioni:<p 
align='center'>
       <?
    }
    echo "<br><br>\n";
    exit;
}
function check_banlist($esclusioni, $email) {
    if (count($esclusioni)) {
       $allow = true;
       foreach($esclusioni as $banned) {
          $temp = explode("@", $banned);
          if ($temp[0] == "*") {
             $temp2 = explode("@", $email);
             if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
                $allow = false;
          } else {
             if (trim(strtolower($email)) == trim(strtolower($banned)))
                $allow = false;
          }
       }
    }
    if (!$allow) {
       print_error("Stai usando un <b>indirizzo email escluso.</b>");
    }
}
function check_referer($provenienza) {
    if (count($provenienza)) {
       $found = false;
       $temp = explode("/",getenv("HTTP_REFERER"));
       $referer = $temp[2];
       for ($x=0; $x < count($provenienza); $x++) {
          if (eregi ($provenienza[$x], $referer)) {
             $found = true;
          }
       }
       if (!getenv("HTTP_REFERER"))
          $found = false;
       if (!$found){
          print_error("Provieni da un <b>dominio non autorizzato.</b>");
          error_log("[FormMail.php] Illegal Referer. 
(".getenv("HTTP_REFERER").")", 0);
       }
          return $found;
       } else {
          return true;
    }
}
if ($provenienza)
    check_referer($provenienza);
if ($esclusioni)
    check_banlist($esclusioni, $email);
function parse_form($array) {
    $reserved_keys[] = "required";
    $reserved_keys[] = "redirect";
    $reserved_keys[] = "email";
    $reserved_keys[] = "require";
    $reserved_keys[] = "contenitore";
    $reserved_keys[] = "titolo";
    $reserved_keys[] = "bgcolor";
    $reserved_keys[] = "text_color";
    $reserved_keys[] = "link_color";
    $reserved_keys[] = "vlink_color";
    $reserved_keys[] = "alink_color";
    $reserved_keys[] = "title";
    $reserved_keys[] = "missing_fields_redirect";
    $reserved_keys[] = "invia_Dati";
    if (count($array)) {
       while (list($key, $val) = each($array)) {
          $reserved_violation = 0;
          for ($ri=0; $ri<count($reserved_keys); $ri++) {
             if ($key == $reserved_keys[$ri]) {
                $reserved_violation = 1;
             }
          }
          if ($reserved_violation != 1) {
             if (is_array($val)) {
                for ($z=0;$z<count($val);$z++) {
                   $content .= "$key: $val[$z]\n";
                }
             } else {
                $content .= "$key: $val\n";
             }
          }
       }
    }
    return $content;
}
function mail_it($content, $titolo, $email, $contenitore) {
         mail($contenitore, $titolo, $content, "From: 
$email\r\nReply-To: $email\r\nX-Mailer: DT_formmail");
}
function build_body($title, $bgcolor, $text_color, $link_color, 
$vlink_color, $alink_color, $style_sheet) {
    if ($style_sheet)
       echo "<LINK rel=STYLESHEET href=\"$style_sheet\" 
Type=\"text/css\">\n";
    if ($title)
       echo "<title>$title</title>\n";
    if (!$bgcolor)
       $bgcolor = "#94B6C6";
    if (!$text_color)
       $text_color = "#80000";
    if (!$link_color)
       $link_color = "#0000FF";
    if (!$vlink_color)
       $vlink_color = "#FF0000";
    if (!$alink_color)
       $alink_color = "#000088";
    if ($background)
       $background = "background=\"$background\"";
    echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" 
link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" 
$background>\n\n";
}
$contenitore_finale = split(',',$contenitore);
for ($i=0;$i<count($contenitore_finale);$i++) {
    $contenitore_to_test = trim($contenitore_finale[$i]);
    if (!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,3}$", 
$contenitore_to_test)) {
       print_error("<b>Occorre un indirizzo email valido per continuare 
($contenitore_to_test) </b>");
    }
}
if ($required)
    $require = $required;
if ($require) {
    $require = ereg_replace( " +", "", $require);
    $required = split(",",$require);
    for ($i=0;$i<count($required);$i++) {
       $string = trim($required[$i]);
       if((!(${$string})) || (!(${$string}))) {
          if ($missing_fields_redirect) {
             header ("Location: $missing_fields_redirect");
             exit;
          }
          $require;
          $missing_field_list .= "<b>Non trovato: $required[$i]</b><br>\n";
       }
    }
    if ($missing_field_list)
       print_error($missing_field_list,"missing");
}
if (($email) || ($EMAIL)) {
    $email = trim($email);
    if ($EMAIL)
       $email = trim($EMAIL);
    if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", 
$email)) {
       print_error("il suo <b>indirizzo email</b> non è valido");
    }
    $EMAIL = $email;
}
$content = parse_form($HTTP_POST_VARS);
if ($invia_Dati) {
    $invia_Dati = ereg_replace( " +", "", $invia_Dati);
    $splitta_Dati = split(",",$invia_Dati);
    $content .= "\n------ variabili utente ------\n";
    for ($i=0;$i<count($splitta_Dati);$i++) {
       $string = trim($splitta_Dati[$i]);
       if ($splitta_Dati[$i] == "REMOTE_HOST")
          $content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
       else if ($splitta_Dati[$i] == "REMOTE_USER")
          $content .= "REMOTE USER: ". $REMOTE_USER."\n";
       else if ($splitta_Dati[$i] == "REMOTE_ADDR")
          $content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n";
       else if ($splitta_Dati[$i] == "HTTP_USER_AGENT")
          $content .= "BROWSER: ". $HTTP_USER_AGENT."\n";
    }
}
if (!$titolo)
    $titolo = "Modulo dal sito";
mail_it(stripslashes($content), stripslashes($titolo), $email, 
$contenitore);
if ($redirect) {
    header ("Location: $redirect");
    exit;
} else {
    print "<body bgcolor='#94B6C6'>
<p align='center'><font face='Arial' size='2' color='#800000'>Grazie per 
averci
contattato.</font></p><p align='center'><font face='Arial' size='2' 
color='#800000'>Riceverete
risposta all'indirizzo da voi indicato $email<br><br>...Ritorno 
automatico alla Home page in corso....</font></p><meta 
http-equiv='refresh' content='$delay; url=$url'>
<p align='center'>&nbsp;</p>
</body>
";
    echo "<br><br>\n";
    exit;
}
?>

           $content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
Questo script usa metodi obsoleti di programmazione, roba che si usava in
PHP 3, che col 4 e` diventata deprecata e col PHP 5 disabilitata di
default, dai long array alle register_globals.
Ti conviene leggere bene il manuale di PHP5 (o almeno del 4, se usi il 4)
e usare i costrutti corretti.
Bye.

Alessandro Pellizzari ha scritto:

se ti chiedo quali sono e come correggere questi errori (ho promesso di 
metterlo online al piu' presto) , ti chiedo troppo?
chiaramente provvedero' a studiare i problemi.
grazie mille

           $content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
Qui usi le vecchie variabili globali di ambiente.
Invece di $REMOTE_HOST dovresti usare $_SERVER["REMOTE_HOST"]. Stessa cosa
per tutte le altre.
Non mi sono messo a spulciare tutto, ho riportato solo gli errori piu`
evidenti, quindi potrebbero essercene altri.
Al di la` di questo, il codice mischia pesantemente HTML e PHP, cosa che
andrebbe evitata il piu` possibile.
Credo che tu abbia copia-incollato il codice da un vecchio howto o da un
vecchio libro. La vedo dura riuscire a sistemare tutto in breve tempo,
visto che immagino ci siano altre pagine cosi` nel sito.
Forse la cosa piu` veloce sarebbe usare una vecchia versione di PHP sul
server, o rilassare i controlli e abilitare le register_globals, ma tieni
conto che piu` vai avanti e meno quel codice funziona, quindi prima o poi
dovrai correggerlo.
Bye.

Alessandro Pellizzari ha scritto:


grazie.
si e' un vecchio codice che ho usato anni fa. Dovevo fare un form al 
volo e l'ho solamente riproposto e via.
Sei stato gentilissimo..
cmq il form nonostante tutto funziona.