Visualizzazione risultati 1 fino 18 di 18
Like Tree1Likes
  • 1 Post By darbula

Discussione: Connessione Php Mysql

  1. #1
    gattoedilizia non è connesso Utente AlterBlog
    Data registrazione
    02-07-2017
    Messaggi
    10

    Predefinito Connessione Php Mysql

    Salve, è due ore che sto letteralmente impazzendo, siccome non riesco a connettere la mia pagina php al database, qui di sotto vi posto il codice
    Codice PHP:
    <?php
    $username
    = "gattoedilizia";
    $password = "";
    $host = "localhost";
    $database = "my_gattoedilizia";
    mysqli_connect($host, $username, $password) ;
    $db = mysqli_connect($host, $username, $password);
    mysqli_select_db($database, $db) or die ('Errore... db');

    $email=$_POST['email'];
    $q="SELECT email FROM utenti WHERE email='$email'";
    $ris=mysqli_query($db, $q);
    $x=mysqli_num_rows($ris) ;//* per sapere se la risposta ha almeno uno una riga

    if($x==0) {
    $q="INSERT INTO email (email) VALUES ('$email')";
    $ris=mysqli_query($db, $q);
    Header("Location:index.html");
    }


    ?>
    Mi restituisce sempre la scritta Errore...db; Ho provato sia a mettere la password del mio account sia a lasciarla vuota ma niente, qualcuno potrebbe aiutarmi, grazie :)
    Ultima modifica di gattoedilizia : 13-07-2017 alle ore 13.23.38

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    La mysqli_connection() accetta un ulteriore parametro per il nome del database. Quindi è inutile la mysqli_select_db e non capisco perché c'è la vecchia mysql_connect().

    Ciao!

  3. #3
    gattoedilizia non è connesso Utente AlterBlog
    Data registrazione
    02-07-2017
    Messaggi
    10

    Predefinito

    Grazie, mi hai fatto comunque notare che avevo dimenti una I nel myqli_connect, Ci hanno insegnato cosi al corso, forse professori un po' attempati, come sarebbe il metodo più veloce e moderno per farlo? Mi sapresti fare un'esempio di ciò che mi hai introdotto con la tua risposta? Grazie, sei stato molto gentile.

  4. #4
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Usa solo una libreria cioè mysqli. La connection di "mysqli" rispetto a "mysql" offre anche il parametro database insieme ad altri..http://php.net/manual/en/mysqli.construct.php , Se quella azione deve essere eseguita solo dopo l'invio di dati con il metodo POST..
    Propongo di usare
    Codice:
    if(isset($_POST['email']))
    {
    'creazioni variabili accesso al database nonché il resto dello script';
    }
    Dal momento che esegui una Location non devi produrre output "nel caso di esito positivo" altra restrizione è dovuta nel non effettuare reindrizzamenti alla stessa pagina es. Codice mysql ecc "prova.php" Location "prova.php" questo esempio è errato nel caso non ci fosse una un preventivo controllo di $_POST['email'] perché si verifica che il codice mysql ecc "prova.php" effettua un reindirizzamamento solo se riceve il dato email con il metodo POST.
    Ultima modifica di darbula : 13-07-2017 alle ore 12.36.07
    gattoedilizia likes this.

  5. #5
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    A ciò che hanno già detto alemoppo e darbula aggiungo solo che le vecchie funzioni mysql_* sono depracate: non vanno più utilizzate in quanto presto saranno rimosse dal linguaggio.

  6. #6
    gattoedilizia non è connesso Utente AlterBlog
    Data registrazione
    02-07-2017
    Messaggi
    10

    Predefinito

    Salve a tutti, Vi riporto qui il codice php modificato, con alcuna pero modifica del risultato
    Codice PHP:
    <?php
    $email
    =$_POST['email'];
    if(isset(
    $email)){
    $username = "gattoedilizia";
    $password = "";
    $host = "localhost";
    $database = "my_gattoediliza";
    $conn = mysqli_connect($host, $username, $password, $database);
    if (!
    $conn) {
    echo
    "Error: Unable to connect to MySQL." . PHP_EOL;
    echo
    "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo
    "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
    }
    $q="SELECT email FROM email WHERE email='$email'";
    $ris=mysqli_query($conn, $q);
    $x=mysqli_num_rows($ris) ;//* per sapere se la risposta ha almeno uno una riga

    if($x==0) {
    $q="INSERT INTO email (email) VALUES ('$email')";
    $ris=mysqli_query($conn, $q);
    Header("Location:index1.html");
    }
    else {
    Header("Location:index2.html");
    }
    }
    else{
    Header("Location:index.html");}
    ?>
    Vorrei capire perchè non riesco ancora ad accedere al Database, siccome Altervista mi da come credenziali:
    Credenziali di accesso
    Hostname/server: localhost
    Username: gattoedilizia
    Password: Facoltativa (puoi lasciare il campo vuoto)
    Database: my_gattoedilizia

    Ma continua comunque questo errore:
    Error: Unable to connect to MySQL. Debugging errno: 1044 Debugging error: Access denied for user 'gattoedilizia'@'localhost' to database 'my_gattoediliza'.

    Grazie a tutti per l'aiuto che mi state dando :)
    Ultima modifica di gattoedilizia : 13-07-2017 alle ore 13.38.32

  7. #7
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Rispondi a questa domanda, quando mai hai dichiarato $link? Cambialo in if(!$conn){}.. Una risposta che risolve il tuo problema.. Salve a te!
    Ps. Il valore di $_POST['email'] deve essere racchiuso dopo l'isset in una variabile
    Ultima modifica di darbula : 13-07-2017 alle ore 13.38.02

  8. #8
    gattoedilizia non è connesso Utente AlterBlog
    Data registrazione
    02-07-2017
    Messaggi
    10

    Predefinito

    Ma $link posso anche ometterlo, sta di fatto che la connessione non avviene comunque.
    Ho provato sia a toglierlo che a sostituirlo con $conn, il risultato rimane sempre lo stesso.
    Error: Unable to connect to MySQL. Debugging errno: 1044 Debugging error: Access denied for user 'gattoedilizia'@'localhost' to database 'my_gattoediliza'
    Ultima modifica di gattoedilizia : 13-07-2017 alle ore 13.43.42

  9. #9
    gattoedilizia non è connesso Utente AlterBlog
    Data registrazione
    02-07-2017
    Messaggi
    10

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Rispondi a questa domanda, quando mai hai dichiarato $link? Cambialo in if(!$conn){}.. Una risposta che risolve il tuo problema.. Salve a te!
    Ps. Il valore di $_POST['email'] deve essere racchiuso dopo l'isset in una variabile
    Potrò fare tutte le modifiche al php che voglio successivamente, io voglio semplicemente capire perchè non riesco ad accedere al database con quelle credenziali. Grazie per la pazienza

  10. #10
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Asp. Lo sto provando.
    Ultima modifica di darbula : 13-07-2017 alle ore 13.46.51

  11. #11
    gattoedilizia non è connesso Utente AlterBlog
    Data registrazione
    02-07-2017
    Messaggi
    10

    Predefinito

    Cosi?
    Codice PHP:
    <?php
    $email
    =$_POST['email'];
    if(isset(
    $email)){
    $mysqli = new mysqli('localhost', 'gattoedilizia', '', 'my_gattoedilizia');
    if (
    $mysqli->connect_error) {
    die(
    'Connect Error (' . $mysqli->connect_errno . ') '
    . $mysqli->connect_error);
    }

    if (
    mysqli_connect_error()) {
    die(
    'Connect Error (' . mysqli_connect_errno() . ') '
    . mysqli_connect_error());
    }

    echo
    'Success... ' . $mysqli->host_info . "\n";


    $q="SELECT email FROM email WHERE email='$email'";
    $ris=mysqli_query($conn, $q);
    $x=mysqli_num_rows($ris) ;//* per sapere se la risposta ha almeno uno una riga

    if($x==0) {
    $q="INSERT INTO email (email) VALUES ('$email')";
    $ris=mysqli_query($conn, $q);
    Header("Location:index1.html");
    }
    else {
    Header("Location:index2.html");
    }
    }
    else{
    Header("Location:index.html");}
    ?>

  12. #12
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Io che sono un utente altersito ed ho accesso a MySQL con la modifica di
    Codice:
    if(isset($_POST['email'])){
    $email=$_POST['email'];
    o anche senza riesco ad effettuare l'accesso.

  13. #13
    gattoedilizia non è connesso Utente AlterBlog
    Data registrazione
    02-07-2017
    Messaggi
    10

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Io che sono un utente altersito ed ho accesso a MySQL con la modifica di
    Codice:
    if(isset($_POST['email'])){
    $email=$_POST['email'];
    o anche senza riesco ad effettuare l'accesso.
    Ora riesco ad accedere anch'io, ma non mi immette il valore Email nella query, e quindi nel database, ho provato a modificare il php così per effettuare delle prove
    Codice PHP:

    $email
    =$_POST['email'];
    $q="SELECT email FROM email WHERE email='$email'";
    $ris=mysqli_query($conn, $q);
    $x=mysqli_num_rows($ris) ;//* per sapere se la risposta ha almeno uno una riga

    if($x==0) {
    $q="INSERT INTO email (email) VALUES ('$email')";
    $ris=mysqli_query($conn, $q);
    echo
    $email." aggiunto correttamente" ;
    }
    else {
    Header("Location:index2.html");
    }
    }
    else{
    Header("Location:index.html");}
    E mi ridà come risposta:
    Success... Localhost via UNIX socket kikko1503@gmail.com aggiunto correttamente.
    Ma tale email non viene effettivamente caricata nel database

  14. #14
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Ora poniti che dovresti scomporre tutto per capire dove sta l'errore ma cmq. Ho l'impressione che un limite di caratteri inferiori per la colonna emeil della tabella e-mail.
    Codice PHP:
    <?php
    if(isset($_POST['email'])){
    $email=$_POST['email'];
    $username = "gattoedilizia";
    $password = "";
    $host = "localhost";
    $database = "my_gattoedilizia";
    if(
    $conn = mysqli_connect($host, $username, $password, $database)){
    $q="SELECT email FROM email WHERE email='$email'";
    if(!
    $ris=mysqli_query($conn, $q)){
    }
    else {
    $x=mysqli_num_rows($ris) ;//* per sapere se la risposta ha almeno uno una riga

    if($x==0) {
    $q="INSERT INTO email (email) VALUES ('$email')";
    $ris=mysqli_query($conn, $q);
    Header("Location: index1.html");
    }
    else {
    Header("Location: index2.html");
    }
    }
    }
    if (!
    $conn) {
    echo
    "Error: Unable to connect to MySQL." . PHP_EOL;
    echo
    "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo
    "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit(
    1);
    }
    elseif(!
    $ris){
    echo
    "Query error";
    exit(
    2);
    }
    }
    else {
    Header("Location: index.html");
    }
    ?>
    qui suddiviso l'errore unico per l'accesso a MySQL o i possibili errori delle due query chiamate $ris

  15. #15
    gattoedilizia non è connesso Utente AlterBlog
    Data registrazione
    02-07-2017
    Messaggi
    10

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Ora poniti che dovresti scomporre tutto per capire dove sta l'errore ma cmq. Ho l'impressione che un limite di caratteri inferiori per la colonna emeil della tabella e-mail.
    Codice PHP:
    <?php
    if(isset($_POST['email'])){
    $email=$_POST['email'];
    $username = "gattoedilizia";
    $password = "";
    $host = "localhost";
    $database = "my_gattoedilizia";
    if(
    $conn = mysqli_connect($host, $username, $password, $database)){
    $q="SELECT email FROM email WHERE email='$email'";
    if(!
    $ris=mysqli_query($conn, $q)){
    }
    else {
    $x=mysqli_num_rows($ris) ;//* per sapere se la risposta ha almeno uno una riga

    if($x==0) {
    $q="INSERT INTO email (email) VALUES ('$email')";
    $ris=mysqli_query($conn, $q);
    Header("Location: index1.html");
    }
    else {
    Header("Location: index2.html");
    }
    }
    }
    if (!
    $conn) {
    echo
    "Error: Unable to connect to MySQL." . PHP_EOL;
    echo
    "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo
    "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit(
    1);
    }
    elseif(!
    $ris){
    echo
    "Query error";
    exit(
    2);
    }
    }
    else {
    Header("Location: index.html");
    }
    ?>
    qui suddiviso l'errore unico per l'accesso a MySQL o i possibili errori delle due query chiamate $ris
    Adesso provo, comunque grazie davvero per tutto il tempo speso attorno al mio problema

  16. #16
    gattoedilizia non è connesso Utente AlterBlog
    Data registrazione
    02-07-2017
    Messaggi
    10

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Ora poniti che dovresti scomporre tutto per capire dove sta l'errore ma cmq. Ho l'impressione che un limite di caratteri inferiori per la colonna emeil della tabella e-mail.
    Codice PHP:
    <?php
    if(isset($_POST['email'])){
    $email=$_POST['email'];
    $username = "gattoedilizia";
    $password = "";
    $host = "localhost";
    $database = "my_gattoedilizia";
    if(
    $conn = mysqli_connect($host, $username, $password, $database)){
    $q="SELECT email FROM email WHERE email='$email'";
    if(!
    $ris=mysqli_query($conn, $q)){
    }
    else {
    $x=mysqli_num_rows($ris) ;//* per sapere se la risposta ha almeno uno una riga

    if($x==0) {
    $q="INSERT INTO email (email) VALUES ('$email')";
    $ris=mysqli_query($conn, $q);
    Header("Location: index1.html");
    }
    else {
    Header("Location: index2.html");
    }
    }
    }
    if (!
    $conn) {
    echo
    "Error: Unable to connect to MySQL." . PHP_EOL;
    echo
    "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo
    "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit(
    1);
    }
    elseif(!
    $ris){
    echo
    "Query error";
    exit(
    2);
    }
    }
    else {
    Header("Location: index.html");
    }
    ?>
    qui suddiviso l'errore unico per l'accesso a MySQL o i possibili errori delle due query chiamate $ris
    Ora Funziona :D Grande, grazie di tutto. Cosa fai nella vita?

  17. #17
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Sono contento che hai risolto.. Vorrei dirti che faccio belle "cose nella vita" ma purtroppo sono disocuppato e cerco di tirare avanti.
    PS. Se lo script funziona il merito è tuo perché sintatticamente correttoo ho solo aggiunto delle verifiche e il controllo esatto per $_POST['email'].. Spero che a te le cose vadano meglio.. Ciao a presto!
    Ultima modifica di darbula : 13-07-2017 alle ore 16.43.34

  18. #18
    gattoedilizia non è connesso Utente AlterBlog
    Data registrazione
    02-07-2017
    Messaggi
    10

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Sono contento che hai risolto.. Vorrei dirti che faccio belle "cose nella vita" ma purtroppo sono disocuppato e cerco di tirare avanti.
    PS. Se lo script funziona il merito è tuo perché sintatticamente correttoo ho solo aggiunto delle verifiche e il controllo esatto per $_POST['email'].. Spero che a te le cose vadano meglio.. Ciao a presto!
    Vedrai, che troverai qualcosa che ti gratificherà.
    Ti posto qui di seguito il link al sito a cui sto lavorando, accetto consigli ed opinioni.
    gattoedilizia.altervista.org, per ora è ancora un abbozzo e lo sto ultimando in questi giorni :)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •