Autentificazione e accesso database

Marchintosh

Nuovo Utente
27 Apr 2010
10
0
0
Salve a tutti, mi sono appena iscritto.
Avrei un problema ad accedere a un database che ho creato tramite php. Premetto che mi serve l’autentificazione in locale per un esame in cui simulo l’utilizzo di una piattaforma di gestione di un master universitario (visualizzazione annunci da parte del docente, visualizzazione del libretto da parte dello studente). L'ambiente di sviluppo è mac. Ho studiato in passato sql, ma mai avuto occasione di mettere in pratica le teorie studiate. Quando provo a connettermi al database il messaggio di errore che il browse visualizza è :
Codice:
Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/Marchintosh/Sites/EP/checklogin.php on line 16 Warning: mysql_connect(): No such file or directory in /Users/Marchintosh/Sites/EP/checklogin.php on line 16 cannot connect
La linea 16 si riferisce a questa istruzione :
Codice:
mysql_connect("$host", "$username", "$password")or die("cannot connect");

Credo di aver configurato al meglio il file php.ini però non riesco a capire se il problema è relativo al codice o relativo alla configurazione di questo file.
Vi posto anche il codice di tutto quello che ho fatto per la login insieme al database : qui

Vi ringrazio anticipatamente per i vostri consigli in merito.
 
Ultima modifica:
Fatto li ho tolti anche alla select. Però non sembra cambiare niente:
Codice:
Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/Marchintosh/Sites/EP/checklogin.php on line 18 Warning: mysql_connect(): No such file or directory in /Users/Marchintosh/Sites/EP/checklogin.php on line 18 cannot connect
 
Infatti l'errore sembra riferito a dei file mancanti in una directory, io non conosco mac ma credo che non debba essere così diverso da linux, dopotutto tutti e due sono sistemi derivanti da bsd quindi non so.
Sicuro che il server mysql è attivo?
 
Aspetta ma il problema è che la path che mi segnala io effettivamente non la ho. Nessun file sock, ma non basta avere mamp per far partire mysql? Devo installarlo anche di mio?

Cmq ho cambiato riferimento al file sock in php.ini e ho messo quello che risiede nella cartella MAMP, ora sembra andare.

Codice:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /Users/Marchintosh/Sites/EP/checklogin.php on line 27 Attenzione username o password errati .
Che mi stampi che sono errati mi trovo, ma perchè mi da anche un warning sulla riga :
Codice:
$count=mysql_num_rows($result);
?
 
Ultima modifica:
Basta averlo ovvio, non ne servono due :)
Comunque no se ora lo rileva vuole dire che avevi sbagliato le impostazioni nel php.ini ma l'hai toccato tu?
Sul secondo errore penso sia più che altro dovuto al fatto che non trovi i dati nel database. O cumunque manda sempre il warning al forum se vuoi che ti diamo una mano e non interpretiamo.
 
Ho creato questo script per inviare una form nel database e in un secondo momento tenterò di estrarre i dati registrati dal database, ora devo riuscire prima ad inviarli :).
Codice:
<?PHP
// variabili di connessione
// nome server, nome utente,
// Password, nomedatabase, tabella
$ServerName = "localhost";
$UserName = "root";
$Password = "madara";
$DbName = "EP";
$tbl_name="studente";

// la connessione al database e alla tabella
$conn = mysql_connect($ServerName, $UserName, $Password)
or die("CONNECTION NON RIUSCITA");
mysql_select_db($DbName, $conn);
$nome = $_GET["nome"];
$cognome = $_GET["cognome"];
$universita=$_GET['universita'];
$username = $_GET["username"];
$password = $_GET["password"];
$conferma=$_GET['conferma'];
$email = $_GET["email"];
$universita = $_GET["universita"];



//Verifico il valore di $nome;
 if(chkEmail($email)) {
    if( !empty($password) and !empty($conferma) ){
         if( $password!=$conferma ) echo"<center>le password non corrispondono : ricontrolla i campi password</center>"; 
         else{ 
                if( empty($nome) or empty($cognome) or empty($username) ) 
                    echo"<center>inserire tutti i campi è obbligatorio</center>";    
                else{
                       if($universita=="Salerno" or  $universita=="Londra"){
                           $query="Insert into `$tb1_name` (`nome`,`cognome`,`user_name`,`password`,'e-mail','universita') VALUES ('$nome','$cognome','$username','$password','$email','$universita')";
                           $result=mysql_query($query,$conn); // result ci serve x fare il controllo
                           mysql_close($conn);
                           if ($result)  die("errore registrazione");
                           else echo "<center>"+$nome ." ti sei iscritto, ora sei riconosciuto come ".$username+"</center>";
                       }
                       else{
                               if(empty($universita)) echo"<center>Spiacente se non inserisce la sua universit&agrave non pu&ograve proseguire</center>";
                               else echo"<center>Spiacente la tua universit&agrave non fa parte del progetto European Platform </center>";
                            }
                     }
                }
     }
   else
         echo"<center>campi password non inseriti correttamente</center>";
   }

     

?>
<?php

function chkEmail($email)
{
    // elimino spazi, "a capo" e altro alle estremità della stringa
    $email = trim($email);
    // se la stringa è vuota sicuramente non è una mail
    if(!$email) {
                 return false;
     }
     // controllo che ci sia una sola @ nella stringa
    $num_at = count(explode( '@', $email )) - 1;
    if($num_at != 1) {
                           return false;
    }
     // controllo la presenza di ulteriori caratteri "pericolosi":
    if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) {
             return false;
    }
    // la stringa rispetta il formato classico di una mail?
    if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)) {
                      return false;
     }
     return true;
}

?>
Mi stampa '0' inseriti tutti i parametri corretti. Perchè secondo voi?
 
Ultima modifica:

Discussioni simili