Problemi con php e mysql

di il
4 risposte

Problemi con php e mysql

Buongiorno a tutti, ho un problema con php.
Sto facendo delle prove in localhost di semplici script atti a lavorare su un database ma sto riscontrando diversi problemi:
Non sono in grado di stabilire se i miei script hanno effetto sul database (dalla command line di mysql non risulta niente di quello che faccio tramite script) e, a peggiorare il tutto non mi funzionano i comandi più banali (ad esempio echo o print funzionano solo su uno script appena creato, ad un certo punto non viene visualizzato più niente sulla pagina.
qui vi riporto un codice:

 <html>
<form>
<h1>Accesso all'amministrazione:</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Username:<br />
<input name="username" type="text"><br />
Password:<br />
<input name="password" type="password" size="20"><br />
<input name="submit" type="submit" value="Login">
</form>

<?php 
	$connessione = mysql_connect("localhost","root",$"miapassword") or die (mysql_error());
	if (!$connessione) {
        echo "Impossibile connettersi al DBMS: " . mysql_error();
        exit;
    }
	$selezione = mysql_select_db("blog",$connessione) or die (mysql_error());
	if (!$connessione) {
        echo "Impossibile selezionare il DB: " . mysql_error();
	}
	$username = trim(filter_var($_POST['username'], FILTER_SANITIZE_STRING));
    $password = trim(filter_var($_POST['password'], FILTER_SANITIZE_STRING));
    $password = sha1($password); 
	$query = "INSERT INTO utenti (username, password) VALUES ($username, $password)";
	$result = mysql_query($query);
	if (!$result) {
	die("Errore nella query $query: " . mysql_error());
}
mysql_close();

echo 'Query eseguita correttamente';
$query2 = "SELECT * FROM utenti;";
	$result = mysql_query($query2);
 ?>
 </html>
ho creato la pagina in estensione html perchè se la salvo in PHP non mi visualizza l'htm.
grazie in anticipo.

4 Risposte

  • Re: Problemi con php e mysql

    La prima cosa che mi balza all'occhio è il comando di selezione del db. Invece di testare se la selezione sia andata a buon fine testi di nuovo la variabile precedente relativa alla connessione
  • Re: Problemi con php e mysql

    Nella query, le variabili $username e $password vanno circondate da apici singoli, perché sono stringhe.
    A parte questo, prova a fare mysql_query(...) or die("Errore") (tra l'altro, quando usi or die() poi non serve che controlli di nuovo se è avvenuta l'operazione).

    Quanto all'estensione del file, dovrebbe funzionare benissimo con .php
    Ma hai messo in file nella cartella corretta di localhost (ad esempio su xampp è htdocs) e hai avviato il web server?

    ciao
  • Re: Problemi con php e mysql

    dvaosta ha scritto:


    Nella query, le variabili $username e $password vanno circondate da apici singoli, perché sono stringhe.
    Scusami, ma quelle non sono stringhe sono variabili e da quel che ho letto le stringhe che contengono variabili vanno messe tra doppi apici, altrimenti PHP le interpreta come stringhe

    dvaosta ha scritto:


    Ma hai messo in file nella cartella corretta di localhost (ad esempio su xampp è htdocs) e hai avviato il web server?
    Sisi, uso apache e ho messo tutti i file nella document root (C:\www nel mio caso)

    Forse però la cosa più utile sarebbe capire perchè echo, print, header e altre funzioni non funzionino a dovere, permettendomi così di capire meglio dov'è l'errore.
    grazie mille per la pronta risposta

    P.S. in alcuni casi il tutto funziona a dovere come in questo:
    
    <?php
    $dbServer='localhost';
    
    // username e password
    $dbUser='root';
    $dbPass='miapassword';
    
    // name of database
    $dbName='blog;
    
        $link = mysql_connect("$dbServer", "$dbUser", "$dbPass") or die("eE
        print "Connessione OK<br>";
        mysql_select_db("$dbName") or die("Impossibile selezionare il database");
        print "Selezione DB OK<br>";
    
    // close connection
    mysql_close($link);
    ?>
    
    Mentre nel codice che ho riportato nel precedente messaggio non vengono visualizzati errori (e neanche stringhe a caso)
  • Re: Problemi con php e mysql

    burofiz ha scritto:


    dvaosta ha scritto:


    Nella query, le variabili $username e $password vanno circondate da apici singoli, perché sono stringhe.
    Scusami, ma quelle non sono stringhe sono variabili e da quel che ho letto le stringhe che contengono variabili vanno messe tra doppi apici, altrimenti PHP le interpreta come stringhe

    dvaosta ha scritto:


    Ma hai messo in file nella cartella corretta di localhost (ad esempio su xampp è htdocs) e hai avviato il web server?
    Sisi, uso apache e ho messo tutti i file nella document root (C:\www nel mio caso)

    Forse però la cosa più utile sarebbe capire perchè echo, print, header e altre funzioni non funzionino a dovere, permettendomi così di capire meglio dov'è l'errore.
    grazie mille per la pronta risposta

    P.S. in alcuni casi il tutto funziona a dovere come in questo:
    
    <?php
    $dbServer='localhost';
    
    // username e password
    $dbUser='root';
    $dbPass='miapassword';
    
    // name of database
    $dbName='blog;
    
        $link = mysql_connect("$dbServer", "$dbUser", "$dbPass") or die("eE
        print "Connessione OK<br>";
        mysql_select_db("$dbName") or die("Impossibile selezionare il database");
        print "Selezione DB OK<br>";
    
    // close connection
    mysql_close($link);
    ?>
    
    Mentre nel codice che ho riportato nel precedente messaggio non vengono visualizzati errori (e neanche stringhe a caso)
    $username e $password sono variabili che contengono stringhe. quello che intendo è che dovresti scrivere:
    $query="INSERT INTO tabella(username, password) VALUES ('$username', '$password')";
    Comunque secondo me il problema è l'estensione del file, che dovrebbe essere .php
    Per usare .html dovresti modificare htaccess http://forum.it.altervista.org/php-mysql-e-apache-htaccess/173205-risolto-mantenere-pagina-con-estensione-html-integrando-php.html.
Devi accedere o registrarti per scrivere nel forum
4 risposte