• User Attivo

    Non ci riesco proprio.
    Forse dovrei cambiare strategia, ritorno al concetto iniziale:
    cioe quello di creare uno script che crei realmente le pagine e passare tutte le variabili che mi servono con la funzione globale session_start().
    Però il dubbio è che i files creati sul server dovrebbero essere impostati a chmod 755 per lo meno; se così non fosse quando si andrebbe a cliccare sul link NEXT oppure PREV verrebbe visualizzato il classico errore INTERNAL SERVER ERROR 500.

    Che ne dite provo a fare così o è inutile?


  • Super User

    no!!!

    fai le cose fatte per bene.

    anche a me è capitato di far generare ad uno script centinaia di pagine per risolver eun problema. poi ho trovato la soluzione ed ho dovuto perdere parecchio tempo a cancellare gli strafalcioni (rrighe e righe di strafacioni) e sostituirle con la piccola manciata di codice che costituiva la soluzione.

    se non hai estrema fretta prova e segui i consigli che ti danno su questo forum e vedrai che arriverai alla soluzione più elegante e performante. :fumato:


  • User Attivo

    Non ho nessuna fretta, io non faccio questo per professione e semplicemente una cosa che mi piace e basta. Vorrà dire che dovrò meglio vedere come avviene il passaggio delle variabili con il method GET. Forse è lì il problema 😄

    faccio un esempio pagina1.php e pagina_2.php

    
    pagina1.php
    
    $testo="ciao";
    print&#40;"<a href=\"pagina_2.php\"?testo=$testo\">vai alla pagina 2</a>"&#41;;
    
    
    pagina_2.php
    print&#40;"la variabile è:$testo"&#41;;
    
    

    I 2 files ovviamente sono inseriti nei tag PHP.
    Quando clicco sul link (vai alla pagina 2) dovrei visualizzare LA VARIABILE E' CIAO.

    Ma nulla non va.


  • Bannato Super User

    Hai degli apici di troppo:

    
    print&#40;"<a href=\"pagina_2.php\"?testo=$testo\">vai alla pagina 2</a>"&#41;;
    
    

    deve diventare

    
    print&#40;"<a href=\"pagina_2.php?testo=$testo\">vai alla pagina 2</a>"&#41;;
    
    

    Non ho avuto il tempo di controllare ma mi sembra dovrebbe essere giusto quello che ho scritto io.


  • User Attivo

    intanto emmebar ha ragione per gli apici

    inoltre nel file 2 è meglio usare (per ragioni di sicurezza e anche perchè con certe configurazioni di server fatto così non va):

    print("la variabile è:$_GET[testo]");

    invece di

    print("la variabile è:$testo");


  • Super User

    oppure:

    
    isset&#40;$_GET&#91;'var'&#93;&#41;$variabile=$_GET&#91;'var'&#93;:$variabile=0;
    
    if &#40;$variabile!=0&#41;
    &#123;
    print&#40;'[url="pagina.php?var='.$variabile.'"]testo'&#41;;
    &#125;
    
    

    io uso sempre questo sistema. è sicuramente un discorso di abitudine nella programmaizone ma in questo modo vedo il codice più chiaro.

    p.s. la prima riga serve per controllare se la variabile passata via get esiste.


  • User Attivo

    @riky78 said:

    Ti conviene accodare ai link alle pagine tutti parametri che ti servono (per semplificare ti converrebbe usare sempre il GET anche dal form inziale)

    Ecco la risoluzione del problema. Ho semplicemente tolto il method _POST ed inserito _GET e la variabile passa.

    😉


  • Super User

    :arrabbiato: :arrabbiato:

    non avevo capito che erano parametri che venivano inviati da un form altrimenti te l'avrei detto subito.
    cmq l'importante è che hai risolto :vai:


  • User

    Salve a tutti ... in riferimento al codice postato prima ....

    
    <?php
    $count = mysql_query("SELECT COUNT(*) FROM utenti");
    $res_count = mysql_fetch_row($count);
    $tot_records = $res_count[0];
    $per_page = 10;
    $tot_pages = ceil($tot_records / $per_page);
    $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
    $primo = ($current_page - 1) * $per_page;
    $query_limit = mysql_query("select user_name,citta from utenti LIMIT $primo, $per_page");
    print("<div align=\"center\"><table border=\"0\" cellpadding=\"2\" cellspacing=\"2\" width=\"420\">\n");
    print("<tr><td height=\"30\"  bgcolor=\"#FFFFC8\"><font size=\"1\">**User-name**</font></td>
            <td height=\"30\"  bgcolor=\"#FFFFC8\"><font size=\"1\">**località**</font></td></tr>\n");
     
    while($results = mysql_fetch_array($query_limit))
    {
    print("<tr>\n");
    print("<td height=\"30\"  bgcolor=\"#B9DCDC\"><font size=\"1\">$results[user_name]</font></td>
            <td height=\"30\"  bgcolor=\"#B9DCDC\"><font size=\"1\">$results[citta]</font></td>\n");
    include("pag.php");
    print(" </tr>\n </table><tr><td height=\"50\" align=\"center\">$pag</td></tr></table><td height=\"50\" valign=\"bottom\" align=\"center\"></td>\n");
     
    print(" </tr>\n</table>\n</div>\n");
    ?>
    
    
    
    <?php
     $pag = "Risultati " . $tot_pages . "
    [";
     for($i = 1; $i <= $tot_pages; $i++) {
     if($i == $current_page) {
     $pag .= $i . " ";
     } else {
     $pag .= "<a href=\"?page=$i\" title=\"Vai alla pagina $i\">$i</a> ";
     }
     }
     $pag .= "]";
    ?> 
    
    

    [/quote]

    mi riferisco a

    $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];

    devo sostituire il valore page esattamente con cosa ?

    Questo perchè , (divide i risultati correttamente in varie pagine ) , ma quando andiamo alla pagina seguente o 2 - 3 che dir si voglia non la trova .

    Per capire meglio il problema vi rimando alla pagina in questione : http://www.rivamania.it/modules.php?name=Uomini che in effetti è un modulo 🙂
    Ringrazio anticipatamente per l'aiuto :fumato:


  • Super User

    Il link è errato: http://www.rivamania.it/modules.php?page=2

    non specifica ?name=Uomini (che penso dovrai aggiungere)


  • User

    Si in effetti avevo provato anche a sostituire '?page' con name=Uomini , ma non lo trova ugualmente 😞
    Evidentemente i moduli puntano a qualcosa che mi sfugge o non so ...

    La domande specifiche sono queste (per chi ha provato questo genere di paginazione) :
    La pagina in cui si trova il codice deve ripuntare a se stessa ?
    In un modulo ci sono degli accorgimenti o modifiche da fare ?

    Ringrazio anticipatamente . Chiedo inoltre scusa , ma sono novello :fumato:


  • Super User

  • User

    Infatti .... ma posto per tutti il risulato dovesse servire a qualcuno

    Innanzi tutto le due prime 'page' vanno lasciate intatte in quanto non interessa più di tanto ... lo script verifica in che pagina si trova e decide di portare i risultati nelle pagine successive (sembra vedersela lui)
    Da modificare eventualmente c'è <a href '?page' nella paginazione.php che scegliete.
    Trattandosi di un modulo avendo una restituzione già complessa '?' al posto del secondo '?' sostituite &.
    Comunque ripeto , a me funziona così anche perchè del codice principale ho cambiato molto, ma magari a voi potrebbe non andare :nonono:

    Ps altra constatazione ... nella prima query SELECT COUNT(id) from nome:tabella WHERE ... tendete a specificare un campo e non (*) ci si guadagna un po' e mi dà la senzazione di maggiore correttezza.

    Ringrazio infine Gorka per la gentilezza e l'aiuto :ciaosai: