• User Newbie

    dritta php x sito

    ciao a tutti.
    vorrei ristrutturare un mio sito che è mini guida on line x ristoranti.
    era stato creato in html e per ogni scheda ho fatto una singola pagina che come potrete ben immaginare non è x niente facile da gestire nel momento in cui si vogliano fare modifiche.
    tempo fa avevo scoperto il comando include di php. premetto che non ho idea su come usare un DB volevo sapere se tramite include potevo comunque semplificare la gestione del sito da come è adesso.
    strutturando la pagina nel seguente modo:

    div header (con include header.php)
    div nav (nav.php)
    div body (che conterrebbe la parte che cambia x ogni pagina con include pagina.php)
    div footer (footer.php)

    è possibile richiamare la scheda x ogni ristorante?

    nel div nav ci sarebbe il menu con: home, contatta e lista locali
    cliccando su lista locali vorrei che in body si includesse la lista di tutti locali e che una volta selezionato uno mi si aprisse la scheda sempre in body.

    spero di essermi spiegato decentemente e che mi possiate aiutare con qualche dritta e/o critica al modo in cui voglio organizzare il sito.

    grazie
    ciao


  • Super User

    Si certo che puoi usare gli include 🙂

    Non ho capito invece la parte di pagina.php e della lista...
    Se la lista la fai tu ok, va bene, nel corpo della pagina ci metti un <? include "lista.html"; ?> e poi devi creare tutte le pagine per ogni albergo.

    In alternativa usi un database, una pagina e una tabella.


  • User Newbie

    ok, quindi se decido di usare gli include mi tocca fare una pagina x ogni locale che e' la cosa che vorrei evitare.

    la soluzione database mi sembrerebbe la migliore visto che mi faciliterebbe non poco la manutenzione del sito. il problema e' proprio come iniziare.

    io ho in mente una struttura a blocchi del sito in linea di massima ma non so come mettere in pratica la cosa.

    tu ha i dette una pagina, un db e una tabella. di articoli su inet ce n'e' una marea di info ma non ho mai trovato qualcosa che rispondesse alle mie esigenze. non cerco qualcosa di gia' fatto ma qualcosa che mi potesse indirizzare solidamente sulla linea da seguire per lo sviluppo di un sito del genere.

    il sito a cui mi ero inspirato coem idea e' [url=http://www.london-eating.co.uk]London Eating - London Restaurants Guide

    ma con le poche conoscenze di db che ho la cosa e' poco fattibile.

    dovessi creare un sito del genere, da dove partiresti? quali sarebbere i primissimi passi da seguire?

    ciao:)


  • User Attivo

    il discorso interessa molto anche me,
    sono ai primi passi col php xò...

    creo una tabella con i seguenti campi:
    id
    nome
    località
    dati
    tipologia
    prezzi
    descrizione

    una volta creata la struttura della tabella salvo il database,
    come faccio ad estrapolare i dati senza dover scrivere a mano le pagine e intrfacciandole ad un menu?

    Anche il link di una guida va bene copme risposta 🙂
    Ho cercato ma trovo tutte cose molto tecniche e senza esempi di codice... da novello mi perdo...


  • Super User

    @spidermassi said:

    dovessi creare un sito del genere, da dove partiresti? quali sarebbere i primissimi passi da seguire?

    Il database è l'ultima cosa.

    Per farti un'idea guarda questa discussione [url=http://www.giorgiotave.it/forum/php-mysql/13107-script-per-database.html]"Script Per database"


  • User Newbie

    allora, innanzitutto grazie x la risposta.
    io non ho intenzione al momento di avere utenti registrati, quindi la mia idea è che tu vai sul sito, aggiungi un tuo commento ai locali già presenti o ne aggiungi uno tramite il modulo (che al momento mi manda una mail con tutti i dati e commentio del locale e io smanetto un po una volta ricevuta la mail x creare una pagina nuova html.
    ora io vorrei fare si che al posto di inviarmi la mail il form inviasse le info a un data base che come per magia mi aggiorna la pagina.
    quindi presumo che l'install.php del 3d che mi hai fatto guardare non dovrebbe avere il settaggio con user, password ecc. giusto?
    poi siccome ho 4 criteri di valutazione (al momento da uno a 4 ma vorrei farli da 1 a 10, anche questo non lo vedo troppo semplice da gestire...)

    quindi diciamo che non parto proprio da zero visto che il form c'è giù e funzione pure:D..


  • Super User

    @spidermassi said:

    allora, innanzitutto grazie x la risposta.

    Figurati 😄

    @spidermassi said:

    io non ho intenzione al momento di avere utenti registrati, quindi la mia idea è che tu vai sul sito, aggiungi un tuo commento ai locali già presenti o ne aggiungi uno tramite il modulo (che al momento mi manda una mail con tutti i dati e commentio del locale e io smanetto un po una volta ricevuta la mail x creare una pagina nuova html.
    ora io vorrei fare si che al posto di inviarmi la mail il form inviasse le info a un data base che come per magia mi aggiorna la pagina.

    Un form che inserisca un locale in automatico.
    Io lo so fare, ma pecco in sicurezza, dato che non so mettere un captcha 😞 [di norma infatti faccio con registrazione 😛 ]

    @spidermassi said:

    quindi presumo che l'install.php del 3d che mi hai fatto guardare non dovrebbe avere il settaggio con user, password ecc. giusto?

    Che campi vuoi?

    @spidermassi said:

    poi siccome ho 4 criteri di valutazione (al momento da uno a 4 ma vorrei farli da 1 a 10, anche questo non lo vedo troppo semplice da gestire...)

    Dici? 🙂
    Io uso un sistema di valutazione decimale nel mio sito. (lo vedi solo se registrato 😄 )

    Spiega meglio 🙂

    :ciauz:


  • User Newbie

    rieccoci!
    anche con meno sicurezza prediligo la non registrazione perche' io personalemte come utente la trovo fastidiosa. io personalmetne non ho voglia di dovermi registrare a ogni sito che visito.. quindo magari il discorso sicurezza potrebbe essere migliorato una volta che modifico il sito.
    la valutazione in deciamale la vedo bene anch'io ma non volevo avere dei numeri che mostrassero la valutazione ma dei simboli (adesempio le classiche stelline)

    i campi che vorrei utilizzare sarebbero:
    nome
    indirizzo
    citta (la citta la metterei separata visto che sarebbe poi un criterio di ricerca ax zona
    telefono, indirizzo web
    tipologia locale
    costo medio
    e poi i 4 criteri di valutazione

    • una possibile descrizione del locale (giusto 2 righe)

    poi ci sarebbe (se visitato da me personalmente) un commento del sito

    e poi tutti i vari commenti degli utenti.

    esempio:
    nome locale

    indirizzo (via , num civico)
    citta paperopoli
    tel. 02125411255
    tipo: ristorante Marocchino
    costo medio: 25 euro portata pricipale + vino; 35 euro inclusi anche gli antipasti
    **mini descrizione (facoltativa)**Ristorante tipico marocchino situato a due passi dal porto.

    **qualità cibo:**x x x x x
    **servizio:**x x x x x
    **atmosfera:**x x x x x
    rapporto qualità prezzo: x x x x x

    i ns commenti
    bla gfsdjfhsh dgjishyiotryy
    tyyutryu bla bla

    **i vostri commenti **bla bla bla bla
    blabbdjghdfh hihgifhgifghf
    13-06-05 da: Pippo

    bla bla bla bla
    blabbdjghdfh hihgifhgifghf
    15-06-06 da: Pluto

    mi sono spiegato meglio? 🙂 che dici?


  • User Attivo

    @Il_Rappo said:

    Il database è l'ultima cosa.

    Perchè dici che il DB è l'ultima cosa?
    Secondo me è la prima,
    un buon database strutturato permette
    di creare poi anche un sito altrettanto organico non credi?

    Tornando a noi:
    Io creerei 3 Tabelle,

    Ristorante
    ( id_Ristorante
    nome
    ...
    )

    Commenti_utenti
    (
    id_commento_utenti
    id_Ristorante
    Commento
    Autore
    Data
    ...
    )

    Commenti_webmaster
    (
    id_commento_webmaster
    id_Ristorante
    Commento
    Autore
    Data
    ...
    )

    Per scrivere nei database dovresti imparare l'SQL...
    o in alternativa usare Dreamweaver o tools di autocomposizione...
    ma se non sai programmare i PHP è un po'lunghetta anche
    se non impossibile...


  • Super User

    @Dusy said:

    Perchè dici che il DB è l'ultima cosa?
    Secondo me è la prima,
    un buon database strutturato permette
    di creare poi anche un sito altrettanto organico non credi?

    Beh, io di solito prima costruisco sito e poi faccio tutto il database 😄

    Per il caso in questione bastano due tabelle 🙂

    @spidermassi said:

    i campi che vorrei utilizzare sarebbero:
    nome
    indirizzo
    citta (la citta la metterei separata visto che sarebbe poi un criterio di ricerca ax zona
    telefono, indirizzo web
    tipologia locale
    costo medio
    e poi i 4 criteri di valutazione

    • una possibile descrizione del locale (giusto 2 righe)

    poi ci sarebbe (se visitato da me personalmente) un commento del sito

    e poi tutti i vari commenti degli utenti.

    Ok, al posto di quell'install.php quando compare

    
    $sql = 'CREATE TABLE `contatti` ('
            . ' `idc` int(11) NOT NULL default \'0\','
            . ' `nome` varchar(100) NOT NULL default \'\','
            . ' `cognome` varchar(100) NOT NULL default \'\','
            . ' `email` varchar(100) NOT NULL default \'\','
            . ' PRIMARY KEY (`idc`)'
            . ' ) TYPE=MyISAM';
    

    Tu metti questo

    
    $sql = 'CREATE TABLE `locale` ('
            . ' `idl` int(11) NOT NULL default \'0\','
            . ' `nome` varchar(250) NOT NULL default \'\','
            . ' `indirizzo` varchar(250) NOT NULL default \'\','
            . ' `citta` varchar(200) NOT NULL default \'\','
            . ' `telefono` varchar(200) NULL default \'\','
            . ' `web` varchar(200) NULL default \'\','
            . ' `tipo` varchar(200) NOT NULL default \'\','
            . ' `costo` varchar(200) NOT NULL default \'\','
            . ' `valutazione` varchar(200) NOT NULL default \'\','
            . ' `descrizione` text,'
            . ' `commento` text,'
            . ' PRIMARY KEY (`idl`)'
            . ' ) TYPE=MyISAM';
    
    	'CREATE TABLE `commenti` ('
            . ' `nick` varchar(20) NOT NULL default \'\','
            . ' `data` datetime NOT NULL default \'0000-00-00 00:00:00\','
            . ' `testo` text NOT NULL,'
            . ' `voto` int(11) NOT NULL default \'0\','
            . ' `mail` varchar(50) default NULL,'
            . ' `ip` varchar(20) NOT NULL default \'\','
            . ' `locale` int(11) NOT NULL default \'0\','
            . ' PRIMARY KEY (`nick`,`data`)'
            . ' ) TYPE=MyISAM';
    
    
    

    Dovrebbe funzionare 🙂


  • User Attivo

    Bene ma se usi due tabelle e non vuoi utilizzare i log-in
    aggiungi il campo tipo_commento (Commento Utente o Commento Interno)

    'CREATE TABLE commenti ('
    . ' nick varchar(20) NOT NULL default '','
    . ' tipo_commento varchar(1) default NULL,'
    . ' data datetime NOT NULL default '0000-00-00 00:00:00','
    . ' testo text NOT NULL,'
    . ' voto int(11) NOT NULL default '0','
    . ' mail varchar(50) default NULL,'
    . ' ip varchar(20) NOT NULL default '','
    . ' locale int(11) NOT NULL default '0','
    . ' PRIMARY KEY (nick,data)'
    . ' ) TYPE=MyISAM';


  • Super User

    🙂

    Dusy avevo messo questo campo

        . ' `commento` text,'
    

    apposta per il commento da parte dell'autore 🙂

    E l'altra tabella per gli altri commenti


  • User Attivo

    Allora siamo d'accordo 😄


  • User Newbie

    allora,
    vediamo se ho capito..
    creo il mio file install.php

    al momento ho questa pagina per il form:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>segnala locale</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="style.css" rel="stylesheet" type="text/css">
    </head>
    
    <body>
    <table width="850" border="0" align="center" cellpadding="0" cellspacing="0" id="main">
      <tr>
        <td class="main_table"><table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td class="table_spacer">&nbsp;</td>
          </tr>
          <tr>
            <td class="header">&nbsp;</td>
          </tr>
          <tr>
            <td class="table_spacer">&nbsp;</td>
          </tr>
          <tr>
            <td class="menu"><table width="800" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="28">&nbsp;</td>
                <td width="65"><a href="main.htm" target="_self">home</a></td>
                <td width="65"><a href="lista.htm" target="_self">locali</a></td>
                <td width="105"><a href="offerte.htm" target="_self">promozioni</a></td>
                <td width="100"><a href="ristoratori.htm" target="_self">ristoratori</a></td>
                <td width="65"><a href="about.htm" target="_self">about</a></td>
                <td width="405">segnala</td>
                <td width="31">&nbsp;</td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td class="table_spacer">&nbsp;</td>
          </tr>
          <tr>
            <td class="titolo_pag_segnala">&nbsp;</td>
          </tr>
          <tr>
            <td><table width="800" border="0" cellpadding="0" cellspacing="0" id="testo">
              <tr>
                <td class="testo"><table width="750" border="0" cellspacing="1" cellpadding="0">
                  <tr>
                    <td colspan="5">&nbsp;</td>
                    </tr>
                  <form method="POST" action="./mail/mail.php">
                  <tr>
                    <td width="184">nome locale *</td>
                    <td colspan="2"><input name="nomelocale" type="text" class="testobox" id="nomelocale" size="55">                </td>
                    <td width="24">&nbsp;</td>
                    <td width="42">&nbsp;</td>
                  </tr>
                  <tr>
                    <td>indirizzo * </td>
                    <td colspan="2"><input name="indirizzo" type="text" class="testobox" id="indirizzo" value="" size="55">
                      </td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>citt&agrave; * </td>
                    <td colspan="2">
                      <input name="citta" type="text" class="testobox" id="citta" size="40">                </td><td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>tel</td>
                    <td colspan="2"><input name="tel" type="text" class="testobox" id="tel"></td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>tipologia locale*</td>
                    <td colspan="2" bgcolor="#E7E3DE"><select name="tipo" class="testobox" id="tipo">
                      <option>seleziona tipologia</option>
                      <option>---------------------------</option>
                      <option>ristorante</option>
                      <option>trattoria/osteria</option>
                      <option>pizzeria</option>
                      <option>agriturismo</option>
                      <option>bar</option>
                      <option>enoteca</option>
                          </select></td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>costo medio per persona * </td>
                    <td colspan="2"><input name="costomedio" type="text" class="testobox" id="costomedio" size="10"> 
                      <strong>?</strong></td><td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>voto * </td>
                    <td colspan="2" bgcolor="#E7E3DE"><select name="qualita" class="testobox" id="qualita">
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                      </select>
                        <strong>qualit&agrave; cibo</strong></td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td colspan="2">                  
                      <select name="servizio" class="testobox" id="servizio">
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                      </select>
                      <strong>servizio</strong></td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td colspan="2">                  
                      <select name="atmosfera" class="testobox" id="atmosfera">
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                      </select>
                      <strong>atmosfera</strong></td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td colspan="2">                  
                      <select name="rapporto" class="testobox" id="rapporto">
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                      </select>
                      <strong>rapporto qualit&agrave; prezzo</strong></td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>commento * 
                      <p>&nbsp;</p>
                      <p>&nbsp;</p>
                      <p>&nbsp;</p></td>
                    <td colspan="2"><textarea name="commento" cols="40" rows="5" class="testobox" id="commento"></textarea>
                    </td><td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>tuo nome * </td>
                    <td colspan="2"><input name="nomeutente" type="text" class="testobox" id="nomeutente">
                    </td><td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>tua email * </td>
                    <td colspan="2"><input name="mailutente" type="text" class="testobox" id="mailutente">
                        (che non verr&agrave; pubblicata sul sito) </td><td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td colspan="2">&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td width="190"><input type="submit" name="Submit" value="Invia"></td>
                    <td width="304">&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td colspan="5" class="spacer_lista_locali">&nbsp;</td>
                    </tr>
                </table>            
                </td>
              </tr>
            </table>          </td>
          </tr>
          <tr>
            <td class="testo"><p><strong>* campi obbligatori</strong></p>          </td>
            </tr>
          <tr>
            <td class="table_spacer">&nbsp;</td>
          </tr>
          <tr>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td><div align="center"><img src="pics/bottom_page.jpg" width="848" height="14"></div></td>
      </tr>
      </form>
    </table>
    </body>
    </html>
    

    non guardate le tabelle xchè quando avevo fatto la pagina un anno fa non ero molto pratico con i css....:D

    e poi ho il file che mi prende i dati e me li manda via mail.

     <?php
    
    // DESTINATARIO MAIL
    $to = "[email protected]";
    
    // SOGGETTO MAIL
    $subject = "CONTACT FORM FOR $nomelocale - $citta";
    
    // BODY
    $body .= "DETTAGLI LOCALE:\n\n";
    $body .= "NOME LOCALE: " . trim(stripslashes($_POST["nomelocale"])) . "\n";
    $body .= "INDIRIZZO: " . trim(stripslashes($_POST["indirizzo"])) . "\n";
    $body .= "CITTA': " . trim(stripslashes($_POST["citta"])) . "\n";
    $body .= "TEL.: " . trim(stripslashes($_POST["tel"])) . "\n";
    $body .= "TIPOLOGIA: " . trim(stripslashes($_POST["tipo"])) . "\n";
    $body .= "COSTO MEDIO: " . trim(stripslashes($_POST["costomedio"])) . "\n";
    $body .= "---------------------------------------------------\n";
    $body .= "QUALITA' CIBO: " . trim(stripslashes($_POST["qualita"])) . "\n";
    $body .= "SERVIZIO: " . trim(stripslashes($_POST["servizio"])) . "\n";
    $body .= "ATMOSFERA: " . trim(stripslashes($_POST["atmosfera"])) . "\n";
    $body .= "RAPPORTO QUALITA' PREZZO: " . trim(stripslashes($_POST["rapporto"])) . "\n";
    $body .= "---------------------------------------------------\n";
    $body .= "COMMENTO: " . trim(stripslashes($_POST["commento"])) . "\n";
    $body .= "---------------------------------------------------\n";
    $body .= "NOME UTENTE: " . trim(stripslashes($_POST["nomeutente"])) . "\n";
    $body .= "MAIL UTENTE: " . trim(stripslashes($_POST["mailutente"])) . "\n\n";
    
    // INTESTAZIONI SUPPLEMENTARI
    $headers = "From: sito.COM>";
    
    if (empty($nomelocale) || empty($indirizzo) || empty($citta) || empty($tipo) || empty($costomedio) || empty($qualita)
     || empty($servizio) || empty($atmosfera) || empty($rapporto) || empty($commento) || empty($nomeutente) || empty($mailutente)) {
    
    // BLOCCO XCHE ALCUNI CAMPI SONO VUOTI
    header('Location: back.htm');
    exit();
    
    }
    
    // INVIO MAIL
    
    
    if(@mail($to, $subject, $body, $headers)) { // SE INOLTRO OK...
    
    header('Location: http://www.sito.com/conferma.htm');
    } else {// sennò...
    
    echo "A problem occurred while sending the email.";
    
    }
    
    ?>
    

    come faccio interagire questa pagina con il db e fare creare dinamicamente le pagine?

    e a sto punto pure la pagina con la lista dovrebbe crearsi dinamicamente...
    mi sto perdendo..:?


  • Super User

    come faccio interagire questa pagina con il db e fare creare dinamicamente le pagine?

    L'interazione con la mail non la so fare, e ora ho a malapena il tempo di respirare 😞

    e a sto punto pure la pagina con la lista dovrebbe crearsi dinamicamente...
    mi sto perdendo..image

    È sempre la stessa pagina 🙂
    Ora però non ho il tempo di scrivertela 😞

    Se io ti dò una pagina base, poi tu sei in grado di modificarla?


  • User Newbie

    ciao Rappo,
    eccomi di nuovo qui.

    ** È sempre la stessa pagina**> in che senso è la stessa pagina?

    ** Se io ti dò una pagina base, poi tu sei in grado di modificarla?> **posso provare ma non ne sono troppo sicuro... proviamo...:(

    grazie ancora!