Repository 32bit  Forum
Repository 64bit  Wiki

Errore apache

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Errore apache

Messaggioda RedSkull92 » mar mar 06, 2012 16:15

Ho bisogno di una mano.
Ho appena avviato httpd e ho abilitato php nel file di configurazione, se provo un semplice
Codice: Seleziona tutto
<?php
echo "ciao";
?>

Funziona tutto perfettamente.

Devo fare un esercizio e ho creato un db su mysql contenente questi campi:

mysql> SELECT * FROM prodotti;
+----+---------------+-------------------------------+--------+
| id | nome | descrizione | prezzo |
+----+---------------+-------------------------------+--------+
| 1 | Penna Bic | Normalissima penna bic | 2 |
| 2 | Penna Parker | Una bellissima penna parker | 31 |
| 3 | Gomma Pelikan | Una banalissima gomma pelikan | 0.5 |
+----+---------------+-------------------------------+--------+


e ho creato la pagina cerca.php
Codice: Seleziona tutto

<?php
if(isset($_POST['cerca']))
{
    //Dati
    $db_host = "localhost";
    $pass = "***";
    $user = "root";
    $db = "azienda";

    //Connessione
    $conn = mysql_connect($db_host,$user,$pass) || die("Impossibile stabilire una connessione con il database");
   
    mysql_select_db($db,$conn) || die("Impossibile usare il database.");
   
    $query = "SELECT descrizione FROM prodotti WHERE nome LIKE %$_POST['cerca']%";

    $ris = mysql_query($query,$conn) || die("Errore nella query");
   
    if(count($ris) > 0)
    {
        while($riga = mysql_fetch_assoc($ris))
            echo "Risultato: $riga['descrizione']</br>";
    }
    else
        echo "Nessun elemento trovato</br>"
   
    mysql_close($conn);
}
?>

e l'index
Codice: Seleziona tutto
<html>
    <head>
        <title>Ricerca articoli</title>
    </head>
    <body>
        <form action="cerca.php" method="post">
            Keywords: <input type="text" name="cerca" /></br>
            <input type="radio" name="tipo" value="0" /> Descrizione <input type="radio" name="tipo" value="1" /> Prezzo</br>
            <input type="submit" name="send" value="Cerca" />
        </form>
    </body>
</html>

Ma una volta avviato il submit il server mi restituisce errore 500.
Cosa sbaglio ?
Avatar utente
RedSkull92
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: mar apr 21, 2009 16:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Errore apache

Messaggioda RedSkull92 » mar mar 06, 2012 16:36

Ho tolto tutto il codice e il problema sembra essere nel mysql_select_db.
ecco i database in mysql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| azienda |
| mysql |
+--------------------+
3 rows in set (0.00 sec)

Dove sbaglio ?
Avatar utente
RedSkull92
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: mar apr 21, 2009 16:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Errore apache

Messaggioda targzeta » mar mar 06, 2012 16:40

Se il server gira in locale puoi settare la visualizzazione degli errori impostando:
Codice: Seleziona tutto
error_reporting  =  E_ALL
display_errors = On
controlla che siano decommentate nel file /etc/httpd/php.ini. Questo dovrebbe aiutarti a capire l'errore.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6147
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: Errore apache

Messaggioda RedSkull92 » mar mar 06, 2012 16:45

Mi restituisce:
Warning: mysql_select_db() expects parameter 2 to be resource, boolean given in /var/www/htdocs/cerca.php on line 13
Avatar utente
RedSkull92
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: mar apr 21, 2009 16:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Errore apache

Messaggioda targzeta » mar mar 06, 2012 16:53

Quindi la connect non funziona e ti restituisce FALSE. Inoltre il costrutto '|| die...' evidentemente non funziona.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6147
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: Errore apache

Messaggioda RedSkull92 » mar mar 06, 2012 16:57

Ho modificato il source
Codice: Seleziona tutto
<?php
if(isset($_POST['cerca']))
{
    //Dati
    $db_host = "localhost:3306";
    $pass = "****";
    $user = "root";
    $db = "azienda";

    //Connessione
    $conn = mysql_connect($localhost,$user,$pass) || die("Impossibile stabilire una connessione con il database\n".mysql_error());
   
    $lol = mysql_select_db($db,$conn) ||  die("Errore: ".mysql_error());

    $query = "SELECT descrizione FROM prodotti WHERE nome LIKE %$_POST['cerca']%";

    $ris = mysql_query($query,$conn) || die("Errore nella query");
   
    if(count($ris) > 0)
    {
        while($riga = mysql_fetch_assoc($ris))
            echo "Risultato: $riga['descrizione']</br>";
    }
    else
        echo "Nessun elemento trovato</br>"
   
}
?>


mi restituisce
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/htdocs/cerca.php on line 15
Avatar utente
RedSkull92
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: mar apr 21, 2009 16:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Errore apache

Messaggioda targzeta » mar mar 06, 2012 17:10

Cavolo, pensavo di aver risposto!! Che fine ha fatto la mia risposta ???

Comunque, dicevo che evidentemente la connect non funziona e ti restituisce FALSE invece di una risorsa. Il costrutto '|| die' non funziona perché l'assegnamento ' $conn=mysql_connect()' va a buon fine.

Prova a verificare se username e pass sono corrette, lancia mysql da linea di comando passandogli esattamente gli stessi dati.
Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6147
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: Errore apache

Messaggioda RedSkull92 » mar mar 06, 2012 17:31

in mysql_connect ho inserito direttamente i dati (senza metterli in variabili) e ora funziona.
Codice: Seleziona tutto
<?php
    $link = mysql_connect('localhost:3306', 'root', '***');   
    if (!$link) {
       die('Not connected : ' . mysql_error());
    }

    // make foo the current db
    $db_selected = mysql_select_db('azienda', $link);
    if (!$db_selected) {
       die ('Can\'t use foo : ' . mysql_error());
    }
    echo $_POST['cerca'];
    $cq= mysql_query("SELECT descrizione FROM prodotti WHERE nome LIKE '%".$_POST['cerca']."%'");
    while($ris=mysql_fetch_assoc($cq))
    {
        echo $ris['descrizione']."</br>";
    }

?>
Avatar utente
RedSkull92
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: mar apr 21, 2009 16:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Errore apache

Messaggioda targzeta » mar mar 06, 2012 17:35

RedSkull92 ha scritto:Ho modificato il source
Codice: Seleziona tutto
<?php
if(isset($_POST['cerca']))
{
    //Dati
    $db_host = "localhost:3306";
    $pass = "****";
    $user = "root";
    $db = "azienda";

    //Connessione
    $conn = mysql_connect($localhost,$user,$pass) || die("Impossibile stabilire una connessione con il database\n".mysql_error());

L'errore è qui. Setti $db_host ma usi $localhost. Inoltre, usa sempre l'apice singolo per le stringhe che non devono essere valutate.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6147
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: Errore apache

Messaggioda RedSkull92 » mar mar 06, 2012 20:17

Perfetto, ora va.
Grazie per i chiarimenti.
Avatar utente
RedSkull92
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: mar apr 21, 2009 16:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron