Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Form iscrizione PHP senza Mysql

    Ciao a tutti,

    ho un form di iscrizione con controllo di validità dei campi sul mio sito, che non funziona più in quanto contiene diverse istruzioni deprecated (ereg, eregi, split).
    Essendo un file preso da internet che personalizzai a suo tempo ma non essendo un programmatore PHP, ho grosse difficoltà nell'adeguare le istruzione PCRE sostitutive delle attuali.
    Qualcuno saprebbe consigliarmi come potrei fare o in alternativa mi potrebbe segnalare un form sostitutivo da implementare solo con i campi inseriti nel form html.
    Grazie mille.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Basta cercare sulla documentazione ufficiale (php.net) ogni funzione che risulta deprecata e c'è scritto da cosa è stata sostituita.

  3. #3
    Ho provato e sono riuscito ad eliminare tutti gli errori ma malgrado tutto il form non funziona più.
    Eventualmente potrei segnalare le parti di codice coninvolte in modo da capire se ho tradotto bene o no?
    Grazie.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sì, ma prima di inviare il messaggio visualizza l'anteprima ed assicurati che risulti ben formattato, altrimenti sistemalo.

  5. #5
    Riporto il codice tranne la parte iniziale e finale che non dovrebbe essere coinvolte.
    Il form fornisce l'errore sulle righe in grassetto in corrispondenza dei comandi deprecated.
    Secondo te come le dovrei tradurre nel modo corretto?
    Vedo nel codice altre ereg ma non danno errore a meno che non vengano forniti dopo aver risolto questi.
    Grazie

    $provenienza = array ('miosito.it','www.miosito.it','62.129.138.175');
    $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 e'
    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 { // every other error
    ?>
    Il modulo non e' 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) {
    // build reserved keyword 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 e' 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 di Iscrizione";
    mail_it(stripslashes($content), stripslashes($titolo), $email, $contenitore);

    if ($redirect) {
    header ("Location: $redirect");
    exit;
    } else {
    print "<body bgcolor='#94B6C6'>

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quindi non sei andato su php.net come ti avevo detto di fare, lì trovi tutto ciò che ti serve, scrivi nel campo di ricerca il nome della funzione che ti da problemi, ti da la pagina con la documentazione su quella funzione e se è deprecata ti indica quale funzione l'ha sostituita.

    P.S. quando posti codice, mettilo tra i tag [ php ] e [ /php ], senza gli spazi, li ho aggiunti altrimenti sarebbero stati interpretati dal forum e non si leggerebbero.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quindi non sei andato su php.net come ti avevo detto di fare, lì trovi tutto ciò che ti serve, scrivi nel campo di ricerca il nome della funzione che ti da problemi, ti da la pagina con la documentazione su quella funzione e se è deprecata ti indica quale funzione l'ha sostituita.

    P.S. quando posti codice, mettilo tra i tag [ php ] e [ /php ], senza gli spazi, li ho aggiunti altrimenti sarebbero stati interpretati dal forum e non si leggerebbero.

  8. #8
    Ciao, avevo già modificato con i nuovi comandi ma non so se ho fatto bene.
    Ti riporto l'esempio per il check della mail.

    Codice PHP:
    $contenitore_finale preg_split(',',$contenitore);
    for (
    $i=0;$i<count($contenitore_finale);$i++) {
       
    $contenitore_to_test trim($contenitore_finale[$i]);
       if (!
    preg_match("^[_\\.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>");
       }


  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    E cosa succede con questo codice? Ti da errore? Che dice l'errore?

    Intanto all'inizio e alla fine dell'espressione regolare ci va / come delimitatore e al posto di preg_split() puoi usare explode() visto che non ti serve un'espressione regolare, ma solo un carattere che funge da delimitatore.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.