- Home
- Categorie
- Coding e Sistemistica
- PHP
- conversione php4 to php5, registrazione utenti
-
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 * FROMutenti
WHEREusername
= '".$_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 INTOutenti
(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]
-
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