Salve, ho questo problema, per farla breve faccio un controllo dove se $_GET['action'] non è email, password o profile manda un messaggio di errore, altrimenti fa le regolari azioni (vengono fatte tramite switch($_GET['action'])).. Praticamente però qualsiasi cosa scrivo ad action, sia email che password mi da quel messaggio di errore, come mai? Questi sono i codici (scusate se sono lunghi, li posto tutti nel caso in cui qualcuno riscontri altri errori).
PS: Negli array $da può apparirvi errore ma non è così, ho messo uno slash prima di ' , solo che me lo legge come codice da interpretare..
Codice PHP:
<?
$action1 = $_GET['action'];
$da = array('"','<','>','_','\'',',');
$a = array('','','','','','');
$action = str_replace($da, $a, $action1);
if($action != 'profile' || $action != 'email' || $action != 'password') {
echo '<span id="error_logout">ERRORE!</span> Devi selezionare un\' azione valida.';
} else {
include('settings.php');
$username = $_SESSION['username'];
$select = mysql_query("SELECT * FROM membri WHERE username='$username'");
$campi = mysql_fetch_array($email_select);
$email = $campi['email'];
$data_registrazione = $campi['data_registrazione'];
$ultimo_login = $campi['ultimo_login'];
switch($action) {
case profile:
echo '[b]Username:[/b] '.$username.'
[b]Email:[/b] '.$email.'
[b]Data iscrizione:[/b] IN AGGIORNAMENTO..
[b]Ultimo login:[/b] IN AGGIORNAMENTO..
';
break;
case password:
echo '<form action="" method="POST"><span class="name">Password corrente:</span> <input type="password" name="password_corrente" />
<span class="name">Nuova password:</span> <input type="password" name="new_password" />
<span class="name">Ripeti password:</span><input type="password" name="new_password_check" />
<input type="submit" value="Cambia passowrd" name="cambiata" /></form>
';
$password_corrente1 = $_POST['password_corrente'];
$new_password1 = $_POST['new_password'];
$new_password_check1 = $_POST['new_password_check'];
$cambiata = $_POST['cambiata'];
$da = array('\'','"','<','>','_');
$a = array('','','','','');
$password_corrente = str_replace($da, $a, $password_corrente1);
$new_password = str_replace($da, $a, $new_password1);
$new_password_check = str_replace($da, $a, $new_password_check);
$password_inserita = MD5($password_corrente);
$pswd = mysql_query("SELECT password FROM membri WHERE username='$username'") or die (mysql_error());
$pswd_fetch = mysql_fetch_array($pswd) or die (mysql_error());
$password_attuale = $pswd_fetch['password'];
if(isset($cambiata)) {
if(empty($password_corrente) || empty($new_password) || empty($new_password_check)) {
echo '<span id="error_logout">ERRORE!</span> Devi riempire tutti i campi.';
} elseif($password_inserita != $password_attuale) {
echo '<span id="error_logout">ERRORE!</span> La password immessa non corrisponde con l\' attuale.';
} elseif($new_password != $new_password_check) {
echo '<span id="error_logout">ERRORE!</span> La conferma della nuova password non coincide con quella da te inserita';
} else {
mysql_query("UPDATE membri SET password='$password_inserita' WHERE username='$username'") or die (mysql_error());
echo '<span id="ok_logout">FATTO!</span> Password cambiata con successo!';
}
}
break;
case email:
echo 'La tua email corrente è: [b]'.$email.'
';
echo '<form action="" method="POST"><span class="name">Nuovo indirizzo email:<input type="email" name="email" />
<input type="submit" value="Cambia email" name="cambiata" /></form>
';
$email_inserita1 = $_POST['email'];
$cambiata = $_POST['cambiata'];
$da = array('\'','"','<','>');
$a = array('','','','');
$email_inserita = str_replace($da, $a, $email_inserita1);
if(isset($cambiata)) {
if(empty($email_inserita)) {
echo '<span id="error_logout">ERRORE!</span> Devi inserire un\' indirizzo email.';
} else {
mysql_query("UPDATE membri SET email='$email_inserita' WHERE username='$username'");
echo '<span id="ok_logout">FATTO!</span> Indirizzo email cambiato con successo!';
}
}
break;
default:
echo '[b]Username:[/b] '.$username.'
[b]Email:[/b] '.$email.'
[b]Data iscrizione:[/b] IN AGGIORNAMENTO..
[b]Ultimo login:[/b] IN AGGIORNAMENTO..
';
}
}
?>