PDA

Visualizza versione completa : run script php


uluzzu
09-07-2006, 18.26.56
Sto facendo il sito ad un amico ed ho pensato di utilizzare php. Ho installato php, mysql e apache con phptriad, per sviluppare utilizzo php designer a mio avviso buoni software. Ho creato una pagina libri.php che contiene una form dalla quale tramite il tag action di un pulsante "submit" richiamo uno script elenca_libri.php nel quale vengono elencati i libri presenti in un archivio mysql.
Il problema mio è che se nella barra degli indirizzi di iexplorer scrivo http://localhost/libri.php funziona tutto a dovere, ma se apro libri.php con iexplorer quando clicco sul pulsante submit, nella pagina generata dallo script elenca_libri.php mi compare tutto il codice php (come se fosse un file di testo) e non i risultati attesi.
Le mie domande sono:
1) dato che non so se iexplorer ha in sè un interprete php come invece succede per javascript, come posso far funzionare in locale su un altro computer, dove non ci sono installati php-apache, gli script php senza passare attraverso localhost? (questa necessità nasce dal fatto che quando mostro il sito al mio amico,sul suo computer non c'è installato apache e quindi non so come mostrarglielo)
Spero di essermi spiegato e vi ringrazio per il tempo dedicato
Qui ci sono i contenuti degli script php:

<----------------- LIBRI.PHP------------------->
<html>
<body>
<FONT COLOR="#280099" SIZE=4 FACE="Monotype Corsiva">
Inserisci i dati dei libri da ricercare:
<form method="post" action="elenca_libri.php">
<table>
<tr>
<td><b> ISDN </td>
<td> <input name="isdn" type="text" value=""></td></tr>
<tr>
<td><b>Titolo </td>
<td><input name="titolo" type="text" value=""> </td></tr>
<tr>
<td><b>Autore </td>
<td><input name="autore" type="text" value=""> </td></tr>
<tr>
<td><b>Editore </td>
<td><input name="editore" type="text" value=""> </td></tr>
<tr>
<td><b>Prezzo</td>
<td><input name="prezzo" type="text" value=""> </td></tr>
<tr>
<td><input type="submit" ></td>
<td><input type="reset" ></td></tr>
</table>
</FONT>
</form>
</body>
</html>

<---------------------- ELENCA_LIBRI.PHP---------------------------->
<html>
<body>
<FONT FACE="Monotype Corsiva" SIZE=3 COLOR="#280099">
Sono stati ricercati i seguenti libri: <br>
<?php
/* Connessione e selezione del database */
$connessione = mysql_connect("localhost", "Administrator","")
or die("Connessione non riuscita: " . mysql_error());

mysql_select_db("db") or die("Selezione del database non riuscita");

/* Esecuzione di una query SQL */
$query = "SELECT * FROM libri";
$risultato = mysql_query($query) or die("Query fallita: " . mysql_error() );

/* Stampa dei risultati in una tabella in HTML */?>

<table border=1>
<?
$colonne = mysql_num_fields($risultato);
echo"<tr>";
for ($i = 0; $i < $colonne; $i++) {
$titolo=mysql_field_name($risultato, $i);
echo "\t\t<th>$titolo</th>\n";}
echo "\t</tr>\n";
while ($linea = mysql_fetch_array($risultato, MYSQL_ASSOC)) {

echo "\t<tr>\n";
foreach ($linea as $valore_colonna) {echo "\t\t<td> $valore_colonna </td>\n";}
echo "\t</tr>\n";
}?>
</table>
<a href="libri.php">Indietro </a>
<?
/* Liberazione delle risorse del risultato */
mysql_free_result($risultato);

/* Chiusura della connessione */
mysql_close($connessione);
?>
</font>
</body>
</html>

Semi.genius
10-07-2006, 20.14.28
Intedi l'etichettta "Indietro" presente nella seconda pagina?
Internet Explorer ha un pochetto di ragione, nel senso che indicando <a href="libri.php">Indietro </a> lui richiama il file presente sull'hard disk.
perché così è implicito il protocollo file://
invece, dovresti mettere <a href="http://localhost/libri.php">Indietro </a>

Penso che sia così.. non ho provato, ma se dici che non funziona, ci provo subito ;)

uluzzu
11-07-2006, 10.45.33
Il problema mio è che nn sto riuscendo a mandarvi delle immagini delle pagine web in esecuzione perchè vedendo si capirebbe tutto.
Cerco di spiegarmi meglio. Il problema non è nei link o quant'altro interno alle pagine ma nel run delle pagine stesse o degli script php tanto è uguale.
Se io lavoro con localhost è come se stessi navigando in internet quindi interviene l'interprete php che fa funzionare tuttto a dovere, ma se io,senza usare localhost nella barra indirizzi, apro lo script php, in questo caso libri.php, come un file normale (ovvero vado in c:\cartella\del\file\libri.php>>tasto destro>>apri con>>Internet explorer) la pagina viene visualizzata senza problemi , infatti nella barra indirizzi invece di http://localhost/libri.php compare invece c:\cartella\del\file\libri.php ed eseguita senza problemi perchè contiene solo codice html. A questo punto quando vado ad eseguire l'altro script elenca_libri.php (che prevede una semplice lista di informazioni in una tabella) le istruzioni php non vengono eseguite da iexplorer perchè non c'è l'interprete php, che è attivo solo quando utilizzo localhost, di conseguenza mi mostra il codice php senza eseguirlo, come se avessi aperto elenca_libri.php con notepad.
Domanda: come faccio a far eseguire a iexplorer le istruzioni php senza utilizzare apache? Devo mettere qualche dll particolare nella cartella dove si trovano le pagine del sito o mettere php.exe o fare qualcosa altro affinche iexplorer esegui php IN LOCALE indipendentemente da localhost(apache)?
Spero di essermi spiegato...

uluzzu
12-07-2006, 11.07.33
Qualcuno sa sarmi qualche suggerimento?

Gergio
12-07-2006, 11.24.54
per visualizzare una pagina php DEVI passare attraverso un server, che interpreta il codice php e ti restituisce una pagina html. Altrimenti, come hai gia' sperimentato, visualizzi solo il codice sorgente

Gergio
12-07-2006, 11.30.20
dato che non so se iexplorer ha in sè un interprete php come invece succede per javascript, come posso far funzionare in locale su un altro computer, dove non ci sono installati php-apache, gli script php senza passare attraverso localhost? (questa necessità nasce dal fatto che quando mostro il sito al mio amico,sul suo computer non c'è installato apache e quindi non so come mostrarglielo)

iexplorer (ma anche gli altri browser) non ha un interprete php, ci vuole un server (apache). Se sul pc del tuo amico non c'e' installato un server, hai 3 possibilita':
1. gli installi apache (e tutto il resto), ma da qllo che hai scritto sembra di intuire che nn e' possibile
2. metti il tuo sito su uno spazio web e lo guardate da li' (sempre che il tuo amico abbia almeno una connessione a internet)
3. metti il tuo sito su un portatile (su cui hai installato apache e tutto qllo che ti serve) e lo usi per la tua demo

uluzzu
12-07-2006, 17.55.07
Ci avevo pensato anch'io a fare come suggerito ma credevo che ci fosse una strada meno fastidiosa (non che le 3 opzioni suggerite siano fastidiose anzi molto semplici e banali da attuare)... vabbè... farò come suggerito... grazie per il tempo concesso...

uluzzu
14-07-2006, 11.45.42
Alla fine ho messo il sito su digiland, solo che ho un problema: quando vado su digiland.libero.it/nome_del_sito/index.php la pagina viene caricata senza problemi e naviga tranquillamente in tutte le altre, ma quando, per ognuna di esse, clicco sul pulsante aggiorna, mi mostra tuttto il codice html o php come se fosse notepad.
Perchè? Suggerimenti?
Sto cercando in rete, ma niente...

uluzzu
15-07-2006, 11.10.47
Sapreste aiutarmi per favore?

Orlando
17-07-2006, 17.23.23
- Credo che il server di Libero che stai utilizzando non possa utilizzare script .php ne DBMS come MySQL. Inoltre per poter utilizzare questi servizi in genere si paga, non molto (30, 40 € l'anno) ma si paga.
- Se hai intenzione di provare acquista un dominio su www.aruba.it.