Repository 32bit  Forum
Repository 64bit  Wiki

Errore apache

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
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 dell'ultima regola 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 17: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: 535
Iscritto il: mar apr 21, 2009 17:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Errore apache

Messaggioda RedSkull92 » mar mar 06, 2012 17: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: 535
Iscritto il: mar apr 21, 2009 17:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Errore apache

Messaggioda targzeta » mar mar 06, 2012 17: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
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: 5907
Iscritto il: gio nov 03, 2005 15: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: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: 535
Iscritto il: mar apr 21, 2009 17:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Errore apache

Messaggioda targzeta » mar mar 06, 2012 17:53

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

Emanuele
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: 5907
Iscritto il: gio nov 03, 2005 15: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: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: 535
Iscritto il: mar apr 21, 2009 17:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Errore apache

Messaggioda targzeta » mar mar 06, 2012 18: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
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: 5907
Iscritto il: gio nov 03, 2005 15: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 18: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: 535
Iscritto il: mar apr 21, 2009 17:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Errore apache

Messaggioda targzeta » mar mar 06, 2012 18: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
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: 5907
Iscritto il: gio nov 03, 2005 15: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 21:17

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


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti