Visualizzazione risultati 1 fino 25 di 25

Discussione: Errore di connessione al mio database mysql

  1. #1
    Guest

    Predefinito Errore di connessione al mio database mysql

    Dopo aver effettuato la registrazione e aver fatto conferma ed essere stato inviato alla seguente pagina mi da questo errore: Fatal error: require() [function.require]: Failed opening required 'mysql_connect()' (include_path='.:') in /membri/warofstarcraft/php5/data_insert.php on line 2

    Mi spiegate cosa devo fare?

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da WarOfStarCraft Visualizza messaggio
    Mi spiegate cosa devo fare?
    Comincia spiegandoci meglio di cosa stiamo parlando: che registrazione?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    La registrazione al mio sito... Ho già creato delle tabelle per la registrazione dati. Forse avrei bisogno della funzione per connettere il mio database al mio sito ma nn so cm fare

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Ok, siamo già un passo avanti.

    Dal messaggio di errore sembrerebbe che nel tuo script hai messo qualcosa del tipo:

    Codice PHP:
    require('mysql_connect()')
    che non ha senso perché mysql_connect() è una funzione e non un file da includere. Prova a verificare...


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    Si scusa hai ragione adesso ho corretto, praticamente mi manca il file di connessione al database, adesso l'ho creato ho messo questo codice:

    <?
    $connessione = @mysql_connect("localhost","my_warofstarcraft","mi apass")
    or die("Impossibile stabilire una connessione.");
    if ($connessione){
    $msg="Operazione riuscita";
    }
    else{
    $msg="Operazione riuscita";
    }

    ?>

    <html>
    <head>
    <title>Connessione a mysql</title>
    </head>
    <body>

    Solo che adesso dopo aver fatto la registrazione mi da questo tipo di errore

    Operazione riuscita No database selected

  6. #6
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da WarOfStarCraft Visualizza messaggio
    Operazione riuscita No database selected
    Ok, prima di poter operare, dopo la connessione, devi selezionare il DB con

    Codice PHP:
    mysql_select_db('my_warofstarcraft')
    A quel punto dovresti essere ok.

    NB: Quando posti codice PHP c'è l'apposito tag :-)


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  7. #7
    Guest

    Predefinito

    altro errore
    Parse error: syntax error, unexpected T_VARIABLE in /membri/warofstarcraft/php5/connessionedb.php on line 5

    e il codice l'ho messo così

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <?
    mysql_select_db
    ("my_warofstarcraft")
    $connessione = @mysql_connect("localhost","my_warofstarcraft","miapass")
    or die(
    "Impossibile stabilire una connessione.");
    if (
    $connessione){
    $msg="Operazione riuscita";
    }
    else{
    $msg="Operazione riuscita";
    }

    ?>

    <html>
    <head>
    <title>Connessione a mysql</title>
    </head>
    <body>


    <? echo "$msg"; ?>

    </body>
    </html>

  8. #8
    Guest

    Predefinito

    Codice PHP:
    <?
    $connessione
    = @mysql_connect("localhost","warofstarcraft","miapass")
    or die(
    "Impossibile stabilire una connessione.");
    if (
    $connessione){
    $msg="Operazione riuscita";
    }
    else{
    $msg="Operazione riuscita";
    }
    mysql_select_db("my_warofstarcraft");
    ?>
    Così è corretto.
    Il select db era nella posizione errata, inoltre mancava un punto e virgola e il nome utente per l'accesso era errato.

    Ma con quel die l'else non verrà mai visualizzato...

  9. #9
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da phelpp Visualizza messaggio
    ... Ma con quel die l'else non verrà mai visualizzato...
    A parte questo, che senso ha un if-else dove i due rami sono IDENTICI?

    Statemi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  10. #10
    Guest

    Predefinito

    Vero pure questo...ma con quel die comunque l'if sarà calcolato solo se $connessione restituisce true.

  11. #11
    Guest

    Predefinito

    Ragazzi mi sorge un altro problema che pur essendo banale non riesco a risolvere: praticamente una volta che do la conferma della mia registrazione mi da questo errore Operazione riuscita Table 'my_warofstarcraft.user' doesn't exist.

    Ora io la tabella user nel mio database c'è l'ho! Infatti non riesco a capire perchè di questo errore. Penso che gli errori dovrebbero trovarsi in queste due pagine php ve li posto
    Codice PHP:
    <?php
    require('connessionedb.php');
    $user = mysql_real_escape_string($_POST['user']);
    $user_mail = $_POST['user'];
    $pass = mysql_real_escape_string(md5($_POST['pass']));
    $pass_mail = $_POST['pass'];
    $firstname = mysql_real_escape_string($_POST['firstname']);
    $lastname = mysql_real_escape_string($_POST['lastname']);
    $query = "SELECT * FROM user " .
    "WHERE user_username = '$user' " .
    "OR user_email = '$pass' ";
    $result = mysql_query($query) or die (mysql_error());
    if (
    mysql_num_rows($result) != 0)
    {
    while (
    $row = mysql_fetch_array($result))
    {
    if (
    $row['user_username'] == $user)
    {
    echo
    "<p>";
    echo
    "L'username, <b>" . $row['user_username'] . "</b> è già in uso da un altro utente, scegliere uno diverso";
    echo
    "</p>";
    }
    if (
    $row['user_email'] == $_POST['email'])
    {
    echo
    "<p>";
    echo
    "La casella E-mail, <b>" . $row['user_email'] . "</b> è già presente nel Data Base, scegliere una diversa";
    echo
    "</p>";
    }
    }
    echo
    "<p>";
    echo
    "<a href=\"registrazione.php\">";
    echo
    "<<< Clicca qui per ritornare alla pagina precedente";
    echo
    "</a>";
    echo
    "</p>";
    exit();
    }
    else
    {
    switch (
    $_GET['action'])
    {
    case
    "add":
    switch (
    $_GET['type'])
    {
    case
    "user":
    $sql = "INSERT INTO user
    (user_firstname,
    user_lastname,
    user_username,
    user_password,
    user_email)
    VALUES
    ('
    $firstname',
    '
    $lastname',
    '
    $user',
    $pass',
    '"
    . $_POST['email'] . "')";
    $users = mysql_query($sql) or die(mysql_error());
    $id = mysql_insert_id(); // recuperiamo l'id (contenuto nel campo user_id) dell'utente appena inserito
    break;
    }
    break;
    }
    }
    $temp = gettimeofday();
    $msec = (int) $temp["usec"];
    $msgid = md5(time() . $msec);
    $ins = "INSERT INTO confirm
    (confirm_validator,
    confirm_userid)
    VALUES
    ('
    $msgid',
    '
    $id')";
    $res = mysql_query($ins) or die(mysql_error());
    ?>
    <html>
    <head>
    <title>Inserimento dati</title>
    </head>
    <body>
    <?php
    $to
    = $_POST["email"];
    $toname = $_POST["firstname"];
    $subject = "Completa la tua registrazione";
    $boundary = "==MP_Bound_xyccr948x==";
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: multipart/alternative; boundary=\"$boundary\"\r\n";
    $headers .= "From: quellochevuoi@tuoserver.it\r\n"; //inseriamo l'indirizzo email del mittente, cioè il nostro
    $html_msg = "<center>";
    $html_msg .= "<table width=\"500\" border=0 cellpadding=\"4\">";
    $html_msg .= "<tr><td align=\"center\">&nbsp;";
    $html_msg .= "</td></tr>";
    $html_msg .= "<tr><td>Questi sono i dati della tua registrazione:";
    $html_msg .= "</td></tr><tr><td>Username: <font color=\"red\">" . $user_mail . "</font>";
    $html_msg .= "</td></tr><tr><td>Password: <font color=\"red\">" . $pass_mail . "</font>";
    $html_msg .= "</td></tr><tr><td align=\"center\">&nbsp;";
    $html_msg .= "</td></tr></table></center>";
    $confirmmessage = "Salve " . $toname . ",\n\n";
    $confirmmessage .= "per completare la tua registrazione devi cliccare sul link sottostante:\n\n";
    $confirmmessage .= $html_msg . "\n\n";
    $confirmmessage .= "<a href=\"http://localhost/percorso pagina confirm_reg.php" .
    "?id=$msgid\">Clicca qui per confermare la tua registrazione</a>";
    $message = "This is a Multipart Message in MIME format\n";
    $message .= "--$boundary\n";
    $message .= "Content-type: text/html; charset=iso-8859-1\n";
    $message .= "Content-Transfer-Encoding: 7bit\n\n";
    $message .= $confirmmessage . "\n";
    $message .= "--$boundary--";
    $mailsent = mail($to, $subject, $message, $headers);
    if (
    $mailsent)
    {
    echo
    "Salve" . $toname . ",<br>";
    echo
    "Un messaggio è stato inviato all'indirizzo <b>" . $to . "</b> da te fornito.<br><br>";
    echo
    "IMPORTANTE:<br>";
    echo
    "Per completare la registrazione al sito devi aprire la tua casella e-mail, leggere il messaggio di conferma e cliccare sul link che troverai all'interno.<br><br>";
    } else {
    echo
    "Errore durante l'invio dell'e-mail.";
    }
    ?>
    </body>
    </html>
    Codice PHP:
    <?
    $connessione
    = @mysql_connect("localhost","username","miapass")
    or die(
    "Impossibile stabilire una connessione.");
    if (
    $connessione){
    $msg="Operazione non riuscita";
    }
    else{
    $msg="Operazione riuscita";
    }
    mysql_select_db("my_warofstarcraft");
    ?>
    <html>
    <head>
    <title>Connessione a mysql</title>
    </head>
    <body>
    <? echo "$msg"; ?>
    </body>
    </html>
    Dov'è l'errore? help

  12. #12
    Guest

    Predefinito

    Non usare la parola 'user' per tabelle o campi nel db, è una parola riservata dell'SQL.


    Ciao!

  13. #13
    Guest

    Predefinito

    scusa io uso un database mysql non dovrebbe essere giusto? e poi io questo codice l'ho prelavato dal sito html e c'era messo così... Altra cosa io ieri sera avevo provato mettendo come nome tabella login e sostituendo qui
    Codice PHP:
    $query = "SELECT * FROM user " .
    con
    Codice PHP:
    $query = "SELECT * FROM login " .
    e qui
    Codice PHP:
    $sql = "INSERT INTO user
    con
    Codice PHP:
    $sql = "INSERT INTO login
    ma mi diceva sempre che la tabella nn esisteva
    Ultima modifica di dementialsite : 07-03-2008 alle ore 16.05.08 Motivo: D'accordo per i tag codice, ma non confondiamolo con il testo...

  14. #14
    Guest

    Predefinito

    Era un consiglio generale.
    In generale non si devono usare parole riservate al linguaggio stesso.

    Se nello script che hai prelevato è scritto così vuol dire che questo script non è fatto bene.

    Non so se sia questo particolare a creare l'errore, ma è cosa buona e giusta correggere in ogni caso.


    Ciao!

  15. #15
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Naturalmente quando hai cambiato la tabella sulla query, le hai anche cambiato il nome sul database, vero?

    Se non l'hai fatto, provvedi subito... altrimenti ci credo che ti dica che la tabella non esiste...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  16. #16
    Guest

    Predefinito

    Si certo ma mi dava lo stesso errore... Ma ora che ci penso può essere che non funziona xkè ho un db di livello 1?

  17. #17
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Con un database di livello basso l'unico problema che ti potrebbe dare è quello che finisci le query a disposizione, ma ti esce un messaggio specifico.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  18. #18
    Guest

    Predefinito

    Ok intanto ringrazio tutti perchè sono riuscito a risolvere il problema.. Soltanto che adesso ne ho un altro ovvero che una volta confermata la registrazione mi da questo errore:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '', 'a@hotmail.it')' at line 11
    Come posso risolvere?

  19. #19
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Probabilmente mancherà un punto e virgola.
    Controlla le righe intorno alla 11; se non riesci posta il pezzo di codice.


    -- Aut Roma Aut Nihil!

  20. #20
    Guest

    Predefinito

    Ecco il codice della pagina a cui vengo indirizzato dopo la registrazione

    Codice PHP:
    <?php
    require('connessionedb.php'); //o le vostre istruzioni per il collegamento al database
    /*La prima cosa da notere è l'utilizzo di mysql_real_escape_string():
    - questa funzione ci permette di inserire nel db (se utiliziamo mysql)
    il contenuto della variabile post esattamnete così com'è,
    senza creare problemi di sintassi durante l'inserimento.Si veda l'esempio sotto*/
    $user = mysql_real_escape_string($_POST['user']); /* Se il valore contenuto in $_POST['user'] è: D'amico questo viene trasformato in: D'amico*/
    $user_mail = $_POST['user']; // Viceversa se usiamo il metodo tradizionale di assegnazione
    //rimane il valore originale assegnato: D'amico
    //quello che in questo esempio ci serve per inviare una mail all'utente,
    //contenente l'username originale (non trasformato).
    $pass = mysql_real_escape_string(md5($_POST['pass']));
    //La funzione md5 ci permette di trasformare il contenuto di una stringa
    //in una sequenza di 32 simboli alfa nimerici detta hash.
    //Noi utiliziamo questa funzione per memorizzare nel db NON il valore originale della password,
    //ma il suo hash.
    //N.B. Questo significa che una volta persa (dimenticata) la password non è più possibile
    //risalire al suo valore originale.
    $pass_mail = $_POST['pass'];
    $firstname = mysql_real_escape_string($_POST['firstname']);
    $lastname = mysql_real_escape_string($_POST['lastname']);
    //Poi verifichiamo che l'username e l'email non siano gia presenti nel db
    $query = "SELECT * FROM user " .
    "WHERE user_username = '$user' " .
    "OR user_email = '$pass' ";
    $result = mysql_query($query) or die (mysql_error());
    if (
    mysql_num_rows($result) != 0)
    {
    while (
    $row = mysql_fetch_array($result))
    {
    //username già presente nel db
    if ($row['user_username'] == $user)
    {
    echo
    "<p>";
    echo
    "L'username, <b>" . $row['user_username'] . "</b> è già in uso da un altro utente, scegliere uno diverso";
    echo
    "</p>";
    }
    //email già presente nel db
    if ($row['user_email'] == $_POST['email'])
    {
    echo
    "<p>";
    echo
    "La casella E-mail, <b>" . $row['user_email'] . "</b> è già presente nel Data Base, scegliere una diversa";
    echo
    "</p>";
    }
    }
    //rimandiamo l'utente alla pagina precedente
    echo "<p>";
    echo
    "<a href=\"registrazione.php\">";
    echo
    "<<< Clicca qui per ritornare alla pagina precedente";
    echo
    "</a>";
    echo
    "</p>";
    exit();
    }
    //Se invece username e email non sono presenti nel db procediamo con l'inserimanto
    else
    {
    switch (
    $_GET['action'])
    {
    case
    "add":
    switch (
    $_GET['type'])
    {
    case
    "user":
    $sql = "INSERT INTO user
    (user_firstname,
    user_lastname,
    user_username,
    user_password,
    user_email)
    VALUES
    ('
    $firstname',
    '
    $lastname',
    '
    $user',
    $pass',
    '"
    . $_POST['email'] . "')";
    $users = mysql_query($sql) or die(mysql_error());
    $id = mysql_insert_id(); // recuperiamo l'id (contenuto nel campo user_id) dell'utente appena inserito
    break;
    }
    break;
    }
    }

    //Andiamo avanti assegnando un valore casuale alla variabile $msgid:
    //un valore identificativo che verrà inserito nella tabella confirm e permetterà la conclusione dell'iscirzione.
    //Anche in questo caso utilizziamo la funzione md5, generando però un hash casuale, perchè l'hash generato sia diverso per ogni iscrizione.
    $temp = gettimeofday();
    $msec = (int) $temp["usec"];
    $msgid = md5(time() . $msec);
    $ins = "INSERT INTO confirm
    (confirm_validator,
    confirm_userid)
    VALUES
    ('
    $msgid',
    '
    $id')";
    $res = mysql_query($ins) or die(mysql_error());
    ?>
    <html>
    <head>
    <title>Inserimento dati</title>
    </head>
    <body>
    <?php
    /*Arrivati a questo punto non ci resta che spedire un'email all'utente (all'indirizzo fornito
    in fase di registrazione) che contiene:la sua password in chiaro,il suo username ed un link
    alla pagina confirm_reg.php*/
    //Vediamo come funziona
    $to = $_POST["email"];
    $toname = $_POST["firstname"];
    $subject = "Completa la tua registrazione";

    /* Prima di continuare apriamo una piccola parentesi, chiarendo un concetto molto semplice:
    - Se vogliamo inviare un email che contiene formattazioni html, bisogna ricorrere all'utilizzo di una classe.
    - Se si vuol mandare un'email semplice che non contiene formattazioni html, non è necessario usare una classe
    Nel nostro esempio, abbiamo scelto di inviare un'eamil, utlizzando una classe che definisce
    il corpo del messaggio e le intestazione del messaggio.
    Forniamo un link ad una classe mail completa e performante
    http://phpmailer.sourceforge.net */

    //Definiamo la classe che definisce il corpo del messaggio ($message) e le intestazione del messaggio ($headers)
    $boundary = "==MP_Bound_xyccr948x==";
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: multipart/alternative; boundary=\"$boundary\"\r\n";
    $headers .= "From: warofstarcraft@hotmail.it"; //inseriamo l'indirizzo email del mittente, cioè il nostro
    $html_msg = "<center>";
    $html_msg .= "<table width=\"500\" border=0 cellpadding=\"4\">";
    $html_msg .= "<tr><td align=\"center\">&nbsp;";
    $html_msg .= "</td></tr>";
    $html_msg .= "<tr><td>Questi sono i dati della tua registrazione:";
    $html_msg .= "</td></tr><tr><td>Username: <font color=\"red\">" . $user_mail . "</font>";
    $html_msg .= "</td></tr><tr><td>Password: <font color=\"red\">" . $pass_mail . "</font>";
    $html_msg .= "</td></tr><tr><td align=\"center\">&nbsp;";
    $html_msg .= "</td></tr></table></center>";
    $confirmmessage = "Salve " . $toname . ",\n\n";
    $confirmmessage .= "per completare la tua registrazione devi cliccare sul link sottostante:\n\n";
    $confirmmessage .= $html_msg . "\n\n";
    // Attenzione! Qui sotto dobbiamo inserire il percorso esatto che porta alla nostra pagina confirm_reg.php
    $confirmmessage .= "<a href=\"http://warofstarcraft.altervista.org/php5/confirm_reg.php" .
    "?id=$msgid\">Clicca qui per confermare la tua registrazione</a>";
    $message = "This is a Multipart Message in MIME format\n";
    $message .= "--$boundary\n";
    $message .= "Content-type: text/html; charset=iso-8859-1\n";
    $message .= "Content-Transfer-Encoding: 7bit\n\n";
    $message .= $confirmmessage . "\n";
    $message .= "--$boundary--";
    $mailsent = mail($to, $subject, $message, $headers);
    if (
    $mailsent)
    {
    echo
    "Salve" . $toname . ",<br>";
    echo
    "Un messaggio è stato inviato all'indirizzo <b>" . $to . "</b> da te fornito.<br><br>";
    echo
    "IMPORTANTE:<br>";
    echo
    "Per completare la registrazione al sito devi aprire la tua casella e-mail, leggere il messaggio di conferma e cliccare sul link che troverai all'interno.<br><br>";
    } else {
    echo
    "Errore durante l'invio dell'e-mail.";
    }
    ?>
    </body>
    </html>

  21. #21
    Guest

    Predefinito

    L'errore riportato riguarda la query, non php.

    Fai così, prima di eseguire la query (cioè mysql_query()) stampala:

    echo $query;

    E dicci cosa visualizzi.


    Ciao!

  22. #22
    Guest

    Predefinito

    Scusa la mia ignoranza ma non sono sicuro di come fare una query.
    Dovrei andare nel mio database fare query da esempio dopo di che mettere la tabella e il cambo in cui voglio fare la query?

  23. #23
    Guest

    Predefinito

    Le query le hai già nello script che hai postato.
    Prima di ogni chiamata alla funzione mysql_query(...); metti il codice che ti ho messo sopra.
    Ovviamente cambia il nome della variabile $query quando occorre.


    Ciao!

  24. #24
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    L'errore riportato riguarda la query, non php
    Hai ragione, scusate per la segnalazione sbagliata; facendo tre cose assieme non se ne fa bene una...


    -- Aut Roma Aut Nihil!

  25. #25
    Guest

    Predefinito

    scusate ma io ho fatto la mia pagina di login in altervista http://vbsimple.altervista.org/ però non sò cosa devo scrivere dentro il file connessionedb.php mi potete aiutare?? Help!

Regole di scrittura

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