Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: Problema foreach

  1. #1

    Problema foreach

    Ciao a tutti.
    Ho un problema con un ciclo foreach.

    Questo è il codice di partenza:
    Codice PHP:
    $query_select="SELECT referers FROM download WHERE name='" $_GET['action'] . "'";
        
    $esegui_select=mysql_query($query_select) or die(mysql_error());
        
    $referers=mysql_fetch_array($esegui_select);
        
    $refs=explode('^'$referers['referers']);
        
    $act=array_shift($refs);
        
    $refss=array();
        echo 
    '<table width="80%" border="3">
        <tr><th align="left">Pagina di provenienza</th>
        <th align="left">Numero di visitatori</th>'
    ;
            foreach (
    $refs as $ref) {
                if(!
    array_key_exists($ref$refss)) {
                
    $refss[$ref]=1;
                } else {
                ++
    $refss[$ref];
                }
            } 
    A questo, devo aggiungere un altro foreach che mi elenchi bene gli elementi di $refss:
    Codice PHP:
    foreach ($refss as $red) {
    echo 
    '<tr><td>' $red '</td><td>' $refss[$red] . '</td></tr>';

    Il problema è che in $red finisce solo il valore di un indice, senza il nome dell'indice. Come posso fare?

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    nn ho ben capito, in ogni caso ti salvi un array parallelo dove ci metti il valore del nome dell'indice...inoltre la query così scritta è la cosa meno sicura in assoluto che si possa fare

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Originariamente inviato da oronze
    nn ho ben capito, in ogni caso ti salvi un array parallelo dove ci metti il valore del nome dell'indice...inoltre la query così scritta è la cosa meno sicura in assoluto che si possa fare
    Non è di certo questo il problema, è una roba che deve girarmi in locale. Quello che hai dedotto è giusto, io ho una lista di referer nel database separati da ^ e li metto in un array con explode(). Da lì, ho bisogno di contarli facendo rimanere un solo indice per ogni pagina di provenienza incrementando il numero di visitatori da lì provenienti. Questo funziona, e il secondo foreach che non funziona come dovrebbe, perchè foreaccha solo il valore di un elemento e non anche l'indice, che nel mio caso è di importanza fondamentale.

  4. #4
    Originariamente inviato da oronze
    la query così scritta è la cosa meno sicura in assoluto che si possa fare
    Scusate potresti dirmi perchè non è sciuro scrivere uan query direttamente nel codice php? Cosa bisognerebbe fare?

    Grazie

  5. #5
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    la cosa che la rende poco sicura non è che sia scritta nel codice php (altrimenti dove la metti????????) ma che non ci sia alcun controllo sulla variabile $_GET in modo da realizzare facilissimi attacchi semplicemente modificando l'url della pagina web

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  6. #6
    Ok, grazie

  7. #7
    Come ho già detto, non è di certo il lato sicurezza (che so mettere a posto e metterò a posto) che mi interessa.

  8. #8
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    non rispondevo a te ma all'altra domanda...se lo usi in locale non è necessario fare controlli di sicurezza poichè l'utilizzatore sei tu e saresti proprio stupido a distruggerti un database recando danno a te stesso^_^

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  9. #9
    Nessuno sa aiutarmi?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    array_shift mangia un in indice dell'array...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.