• User

    conversione php4 to php5, registrazione utenti

    Salve, dopo tanto tempo ho reinstallato xampp, per modificare un vecchio script di registrazione, ma non riesco a farlo funzionare con il php5.
    Qualcuno sa dirmi dove è errato?
    [php]
    <?
    //include header.php
    include('site/header.php');
    //collegamento dal database
    require_once('site/config.php');
    //controlla se l'utente è già loggato
    if($_SESSION['logged_in'] == 1)
    {
    //reindirizzamento alla home page : edita il parametro con il tuo indirizzo
    header('Location: index.php');
    }
    //l'utente non è loggato
    else {
    //il modulo non è stato ancora inviato
    if(isset($HTTP_POST_VARS['submit']))
    {
    //controlla dati relativi all'username
    if(!$_POST['username']) die('Attenzione : il campo username è vuoto');

    //array di caratteri non ammessi
    $bad = array('.' , ',' , '/' , '`' , ';' , '[' , ']' , '-',
    '*', '&', '^', '%', '$', '#', '', '!', '~', '+', '(', ')',
    '|', '{', '}', '<', '>', '?', ':', '"', '=');
    //controlla lunghezza username
    $len = strlen($_POST['username']);

    //sostituisce caratteri non ammessi
    $_POST['username'] = str_replace($bad, '', $_POST['username']);
    $dato = $_POST['username'];
    //se le lunghezze sono differenti sono stati utilizzati caratteri non ammessi
    if(strlen($dato) != $len) {
    die('Hai usato dei caratteri non validi nel campo username. Puoi usare solo lettere, numeri e il trattino basso _ !!');
    }
    //Controlla se l'username è già utlizzato nel database...
    $q2 = mysql_query("SELECT * FROM utenti WHERE username = '".$_POST['username']."'");
    $q3 = mysql_fetch_object($q2);

    if($q3->username == $_POST['username']) {
    die('Siamo spiacenti ma l'username "'.$q3->username.'" è già attivo nel nostro database<br /><br />
    Per favore ne scelga un altro.');
    }
    //controlla dati relativi alla password
    if(!$_POST['password']) {
    die('Errore: Il campo password risulta non compilato');
    }
    if(!$_POST['verify_password']) {
    die('Errore: Il campo verfica password risulta non compilato');
    }
    if($_POST['password'] != $_POST['verify_password']) {
    die('Errore: Le passwords non corrispondono.');
    }
    //Inserisce il nuovo membro nel database
    $insert ="INSERT INTO utenti (username, user_password, user_email) VALUES ('".$_POST['username']."',

    '".md5($_POST['password'])."', '".$_POST['email']."')";

    $insert2 = mysql_query($insert);
    if(!$insert2) die(mysql_error());
    //Edita i parametri sottostanti con i dati relativi al tuo sito
    $web_site = 'Il nome del sito';
    $webmaster = 'Nickname webmaster';
    $web_mail = 'Indirizzo mail del sito';
    // Fine modifica
    //Passa i dati per il login a variabili da mandare via mail all'utente
    //il modulo non è stato ancora compilato
    else {
    ?>
    <form action="<? $_SERVER['site/PHP_SELF']; ?>" method="post" name="signup" id="signup">
    <fieldset> ho rimosso il form
    <fieldset>
    <input type="submit" id="submit" name="submit" value="Invia" />
    </fieldset>
    </form>
    <?
    } //fine utente non loggato
    } //fine modulo non inviato
    ?>[/php]


  • User Attivo

    Ciao maxmizer e Benvenuto sul forum GT!

    In php 5, di default la proprietà short_open_tag del php.ini è impostata ad off.
    Questo implica che, al contrario di quanto succedeva in php4, non è possibile aprire e chiudere uno script php5 con "<? ?>", ma è necessaria la sintassi completa "<?php ?>".

    E' possibile modificare il php.ini in modo da poter utilizzare ancora i tags abbreviati, ma è una pratica che ti sconsiglio, più che altro per un problema di portabilità di quello script.

    Per quanto riguarda altri errori non so dirti, perché lo script non l'ho verificato. Se oltre al problema dei tags ce ne fossero altri puoi postarli qui (mi raccomando di scrivere l'errore che viene restituito) e vediamo di risolverli.

    Ciao,
    Luca Bartoli