Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 59

Discussione: Php in locale

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    64

    Php in locale

    Buongiorno a tutti.
    Sono nuova del forum e abbastanza neofita di php ("abbastanza" nel senso che lavorando con Joomla - non insultatemi - ogni tanto mi è capitato di mettere le mani in php, ma mai cose troppo complicate...)

    Ultimamente mi è stato chiesto di fare delle modifiche ad un sito realizzato in php. Allora, per vedere se sono in grado di realizzarle, ho preso il sito e messo in locale. Ho preso il db e importato in locale in un db precedentemente creato con lo stesso nome e le stesse credenziali di quello in remoto (per non fare troppi cambiamenti!).

    Il sito si vede, ma avrei un paio di problemi con alcune pagine:
    - una delle pagine raccoglie articoli da vendere che il cliente inserisce nel db tramite una zona amministrativa. Beh, se carico quella pagina non visualizza gli articoli caricati, ma solo la parte di testo.

    - il sito ha al suo interno una zona amministrativa, dalla quale il cliente riesce a gestire il sito (inserisce gli articoli da vendere, gli eventi, etc...): quando provo ad effettuare il login, invece che andare alla pagina di amministrazione, mi appare una pagina bianca e basta. Però se provo ad aprire il file che corrisponde alla pagina di amministrazione, si apre tranquillamente.

    Da quel poco che so di php, mi sembra che ci sia qualche tipo di problema con il collegamento al DB o nell'impostazione del server in locale...
    Per la precisione lavoro su mac con MAMP.
    Sapreste darmi qualche indicazione in merito? Vi serve qualche altro dato in particolare di cosa uso in locale per capire meglio la situazione?

    Grazie mille a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    dovresti attivare la visualizzazione di TUTTI gli errori/warning in php (cerca info "php.ini", p.es.)... la pagina bianca è probabile sia un errore non visualizzato... poi parti da lì

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    64
    Ciao eiyen,
    grazie del consiglio.
    Allora, nella cartella di riferimento alla versione php in uso su Mamp (Application/MAMP/conf) ho 2 cartelle di versioni php: php5.2 e php 5.3.
    Ho controllato i file php.ini di entrambe le cartelle e alla voce "Error handling and logging", che credo si quella di cui mi hai parlato, è già settato "E_ALL" che alla legenda dice "All errors and warnings".
    EDIT: Ho messo anche ON alla voce display_errors

    Per precisione: prima di riuscire a collare il DB al sito ho fatto diverse prove perché mi diceva che non riusciva a connettersi al DB (se non ricordo male per via del server).

    Quindi è già settato per mostrare tutti gli errori, giusto? C'è qualche altra voce che devo controllare in riferimento a quello che mi dici tu?

    EDIT: Ok, dovevo riavviare il server per apportare le modifiche alla voce: display_errors che avevo messo su "ON".
    Nella pagina di login:
    Ora a parte un warning sui coockie e uno sulla cache, credo che il warning più importante tra quelli visualizzati sia il terzo:
    mysql_fetch_array() expects parameter 1 to be resource, boolean given in (percorso file in locale)/login.php on line 18

    Lo stesso tipo di errore anche nella pagina degli articoli.

    Provo a fare qualche ricerca al riguardo in rete, se magari qualcuno può darmi qualche dritta, lo apprezzei molto.
    Grazie mille.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    posta la riga incriminata e quelle circostanti (prima e dopo): stai richiamando la funzione passando un valore booleano anzichè una risorsa MySQL, probabilmente perchè la risorsa non c'è e il valore è "false"... parrebbe dunque un errore di connessione con il db (magari è sbagliata l'apertura o il riferimento al server)

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    64
    Grazie mille.
    Il fatto comunque strano è che il sito online lo vedo senza problemi, è in locale che mi da questi problemi. E Dato dovrei fare delle modifiche in questo genere di pagine, vorrei vedere se le modifiche vanno a buon fine.

    Dunque, per quanto riguarda la pagina login.php posto dalla riga 15:
    codice:
    $result=mysql_query($query_log);
    mysql_close($link);
    
    while($row = mysql_fetch_array($result)){
    	if(($row[0]==$user)&&($row[1]==$psw)){
    		$_SESSION['userses_CM'] = $user;
    		header("Location: http://www.xxxxxxx.com/index.php");
    		echo($user);
    	}else{
    	  if($_SESSION['userses_CM'] == ''){
            header("Location: http://www.xxxxxxx.com/index.php");
        }
    	}
    }
    
    
    ?>
    Discorso simile per quanto riguarda la pagina degli articoli, dove vedo solamente la scritta di testo.
    Quella pagina dovrebbe caricare un iframe, da quanto mi sembra di capire, e, se carico la pagina, vedo solo la scritta, se carico il file iframe(etc).php oltre ai due errori di cache e cookie, mi viene fuori un errore con la stessa dicitura di quello della pagina di login, ovvero:
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in (percorso file in locale)iframeUsato.php on line 174.
    ergo, posto il codice intorno a quella linea di quel file, partendo dalla linea 171:

    codice:
    	$qr1 = "SELECT * FROM `usato`;";
    	$qury1 = mysql_query($qr1);
    	
    	while ($row1 = mysql_fetch_array($qury1)) 
    	{ 
    			if($acapo<2){
    				$acapo++;
    				echo("<td height=\"124\" width=\"194\">");
    				if($row1[5]==1){
    					echo("<h3>".$row1[1]."</h3><img src=\"img/prodotti/usato/".$row1[4]."\" border=\"0\" width=\"110\" /><img id=\"vendu\" src=\"img/venduto.png\" border=\"0\" width=\"110\" >
    ".$row1[3]."</td>");
    				}else{
    					echo("<h3>".$row1[1]."</h3><img src=\"img/prodotti/usato/".$row1[4]."\" border=\"0\" width=\"110\" />
    ".$row1[3]."</td>");		
    				}
    			}else{
    				$acapo = 0;
    				echo("<td height=\"124\" width=\"194\">");
    				if($row1[5]==1){
    					echo("<h3>".$row1[1]."</h3><img src=\"img/prodotti/usato/".$row1[4]."\" border=\"0\" width=\"110\" /><img id=\"vendu\" src=\"img/venduto.png\" border=\"0\" width=\"110\" >
    ".$row1[3]."</td>");		
    					echo("</tr><tr>");	
    				}else{
    					echo("<h3>".$row1[1]."</h3><img src=\"img/prodotti/usato/".$row1[4]."\" border=\"0\" width=\"110\" />
    ".$row1[3]."</td>");		
    					echo("</tr><tr>");
    				}	
    			}
    	}
    	unlink_db();
    ?>
    Spero sia materiale utile.

    Grazie mille dell'aiuto!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    prima di while ($row1 = mysql_fetch_array($result)) si deve inserire un controllo sulla variabile, quindi:

    Codice PHP:
    $result=mysql_query($query_log);
    // mysql_close($link); // può servire ancora per controlli/azioni successive

    // CONTROLLO:
    if ($result) {

      while(
    $row mysql_fetch_array($result)){

      
    // .... tutto il ciclo while ....

      
    }

    } else {
      
      print 
    mysql_errno($link) . ": " mysql_error($link). "\n";
      
    };

    mysql_close($link); // se vuoi, ma è automatico in chiusura script 
    prova e posta..

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    64
    Eccola!

    Dunque, nel codice del file del login.php ho inserito il codice che mi hai consigliato e questo è l'errore che dà ora (a parte soliti su cookie e cache):

    Warning: mysql_errno(): 2 is not a valid MySQL-Link resource in (percorso file in locale)login.php on line 33
    Warning: mysql_errno(): 2 is not a valid MySQL-Link resource in (percorso file in locale)login.php on line 33
    Warning: mysql_errno(): 2 is not a valid MySQL-Link resource in (percorso file in locale)login.php on line 37

    Precisazione: alla riga 33 c'è il codice che mi hai dato tu dopo il ciclo di while, ovvero
    codice:
    print mysql_errno($link) . ": " . mysql_error($link). "\n";
    Alla riga 37, la chiusura
    codice:
    mysql_close($link);
    Se non ho capito male, con i comandi che mi hai fatto inserire abbiamo visto che se il ciclo di while andava male, doveva scrivere qualcosa, giusto? Che sarebbe questo "mysql_errno()"...ma cosa significa?

    Grazie, faccio una ricerchina sull'argomento intanto...

    EDIT: Ora ho notato una cosa: quando provo a fare il login, mi va al sito in remoto e mi appare la pagina dopo il login effettuato correttamente.
    Dipende mica da questo che è nel ciclo di while?
    codice:
    header("Location: http://www.xxxxxxx.com/index.php");
    Ma perché prima mi dava errore e adesso fa così?
    Grazie mille.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma $link dove lo definisci?

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    64
    MMhhhh...domanda interessante...

    Ti posto l'intero codice della pagina di login.php, compreso il codice che mi hai dato.
    Tra parentesi ora nn mi si collega più al sito in remoto...

    codice:
    <?php
    session_start();
    $user = $_POST['user'];
    $psw = $_POST['psw'];
    //------------------------Login------------------------------------
    $query_log = "SELECT `user`,`passwd` FROM `admins`;";
    $link=mysql_connect('localhost' (<-questo l'ho messo io, nel file originale c'era il numero del server),'(nome_utente)','(password)');
    if(!$link){
    	die("Could not connect:".mysql_error());
    }
    mysql_select_db("(nome del db");
    
    $result=mysql_query($query_log);
    mysql_close($link);
    
    if ($result) { 
    
    while($row = mysql_fetch_array($result)){
    	if(($row[0]==$user)&&($row[1]==$psw)){
    		$_SESSION['userses_CM'] = $user;
    		header("Location: http://(nome del sito in remoto)/index.php");
    		echo($user);
    	}else{
    	  if($_SESSION['userses_CM'] == ''){
            header("Location: http://(nome del sito in remoto)/index.php");
        }
    	}
    }
    } else {
      
      print mysql_errno($link) . ": " . mysql_error($link). "\n";
      
    };
    
    mysql_close($link);
    
    ?>
    A quale $link ti riferisci? Come detto, non sono molto pratica...

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    potrebbe andare... devi togliere - come avevo detto - mysql_close($link); dal mezzo dello script, perchè serve anche dopo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.