- Home
- Categorie
- Coding e Sistemistica
- PHP
- Cancellazione utenti
-
Cancellazione utenti
Salve a tutti ho già postato su questa iscrizione qualche giorno fa, quindi potete vedere tutti i codici delle altre pagine là con tutta la spiegazione. Se lo volete il link è questo giorgiotave.it/forum/php-mysql/105514-iscrizione-utenti-php.html, mentre il codice per la cancellazione che non funziona è questo:
[php]<?php
if(isset($_POST['submit']) && (trim($_POST['submit']) == "Cancellati"))
{
//controllo sul formato dell'username
if((!isset($_POST['user'])) || (!eregi("^([a-z])$", $_POST['user'])))
{
die("Formato username incorretto.");
}
$user = $_POST['user'];
$password = $_POST['password'];
include "config.php";
$ctrl_mail = @mysql_query("DELETE FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
if(@mysql_num_rows($ctrl_delete) == 0)
{
die("L'username non risulta registrata.");
}else{
echo "Abbiamo cancellato i tuoi dati";
}
}else{
// form per la richiesta
?>
<h1>Cancellati da robyonweb:</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Username:<br>
<input name="user" type="text" size="20"><br>
Password:<br>
<input name="password" type="password" maxlength="10" size="20"><br>
<input name="submit" type="submit" value="Cancellati">
</form>
<?php
}
?> [/php]Anche quando premo il tasto "cancellami" mi stampa semrpe questa scritta:
Formato username incorretto
Cos'ho sbagliato? Mi potete aiutare?
-
Devi fare un controllo nel DB per vedere se l'utente esiste
-
Aspetta non sto capendo, non c'è?
-
Dovresti modificare le query così :
[php] <?php
if(isset($_POST['submit']) && (trim($_POST['submit']) == "Cancellati"))
{
//controllo sul formato dell'username
if((!isset($_POST['user'])) || (!eregi("^([a-z])$", $_POST['user'])))
{
die("Formato username incorretto.");
}
$user = $_POST['user'];
$password = $_POST['password'];
include "config.php";
$ctrl = mysql_query("SELECT * FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
if(@mysql_num_rows($ctrl) == 0)
{
die("L'username non risulta registrata.");
}
$ctrl_mail = @mysql_query("DELETE * FROM iscrizioni WHERE user='$user' AND password='$password'") or die ("E' stato impossibile cancellarti : <br>".mysql_error());
echo "Cancellazione avvenuta!";
}else{
// form per la richiesta
?>
<h1>Cancellati da robyonweb:</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Username:<br>
<input name="user" type="text" size="20"><br>
Password:<br>
<input name="password" type="password" maxlength="10" size="20"><br>
<input name="submit" type="submit" value="Cancellati">
</form>
<?php
}
?> [/php]
-
No ancora non funziona!
-
Scusa ma a video che errore ti stampa?
-
Mi stampa sempre "Formato username incorretto.", ma non sto capendo perchè!
-
Questo implica che non passa il primo controllo. Prova ad isolare l'if per capire da quale delle due condizioni dipende.
Sostituisci la riga
[PHP]if((!isset($_POST['user'])) || (!eregi("^([a-z])$", $_POST['user'])))[/PHP]
prima con
[PHP]if(!isset($_POST['user']))[/PHP]
e vedi se ti dà l'errore, e se non te lo dà provi la condizione
[PHP]if(!eregi("^([a-z])$", $_POST['user']))[/PHP]
e provi a debuggarla un po', tanto per capire se ti dà qualche errore magari la funzione eregi().
-
Si ok adesso funziona :),
grazie alcatraz.
-
De nada!