[RISOLTO] Script per il login

  • Creatore Discussione Creatore Discussione Altutto
  • Data di inizio Data di inizio

Altutto

Utente Attivo
30 Set 2013
262
0
16
stubborn.altervista.org
PHP:
<html> 
<head> 
<title>Login</title> 
</head> 
<body> 
<?php 
if(isset($_POST['username'])){ 
$username = $_POST['username']; 
} 
else{echo 'Non hai inserito dati';} 
if((strlen($username)=='0')){echo '    <form id="login" action="verifica.php" method="post"> 
        <fieldset id="inputs"> 
            <input id="username" name="username" type="text" placeholder="Username" autofocus required> 
        </fieldset> 
        <fieldset id="actions"> 
            <input type="submit" id="submit" value="Entra"> 
           </fieldset> 
    </form>'; 
} 
else{ $connessione = mysqli_connect(//dati);  

if (!$connessione) { 
    die('Connect Error (' . mysqli_connect_errno() . ') ' 
            . mysqli_connect_error()); 
} 
$strSQL = "SELECT * FROM tabella WHERE username = '".$username.""; 
function search_escape($strSQL, $char = '\\') 
{ 
    return ereg_replace('[%_]', $char . '\0', $strSQL); 
} 
        $result = mysqli_query($strSQL); 
$row = mysqli_fetch_row($result); 
if(strlen($row[0]) == 0){echo 'Dati errati!';} 
else{$_SESSION['logged']; 
echo 'Login effettuato!
//eccetera'; 
} 
} 
?>
Questo script di login mi dà a prescindere "dati errati!".
Secondo voi, cosa ho sbagliato? :(
 
Ciao, per prima cosa dovresti sempre stampare gli eventuali errori SQL
PHP:
$result = mysqli_query($strSQL);
            if (!$result) {
                echo mysqli_error();
            }
ti saresti accorto da solo che nella query manca un apice '
 
Ho inserito il codice per stampare l'errore, ma non cambiava nulla.
Ho provato anche a fare:

PHP:
$result = mysqli_query('$strSQL'); 
            if (!$result) { 
                echo mysqli_error(); 
            }
Ma non cambia nulla :( scusami per l'ignoranza
 
nella query manca un apice
PHP:
$strSQL = "SELECT * FROM tabella WHERE username = '".$username."";
cosi è gusta
PHP:
$strSQL = "SELECT * FROM tabella WHERE username = '".$username."'";
ma non ti stampa l'errore nemmeno cosi?
PHP:
$result = mysqli_query('$strSQL'); 
            if (!$result) { 
                echo "errore query". $strSQL . "<br/>" . mysqli_error(); 
            }
 
dimenticato che in mysqli bisogna passare anche la connessione
modifica cosi
PHP:
$result = mysqli_query('$strSQL'); 
            if (!$result) { 
                echo "errore query". $strSQL . "<br/>" . mysqli_error($connessione); 
            }
e riposta l'errore completo
 
No, non ti ha ancora stampato l'errore giusto
cambia anche
PHP:
$result = mysqli_query('$strSQL');
con
PHP:
$result = mysqli_query($connessione,$strSQL);
non ci vanno gli apici e anche uesta funzione vuole il parametro di connessione
 

Discussioni simili