Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Problema di inserimento

    Ciao ragazzi...vengo a voi per chiedervi un aiutino...
    Allora, voglio implementare al mio sito un sistema che permetta agli utenti di inserire degli script da loro creati. Ho deciso di usare il PHP per salvare gli script sul database e richiamarli dipendentemente dalla situazione...
    Ho una pagina che mostra il titolo dello script, l'autore, una breve descrizione dello script stesso, e che rimanda ad un'ulteriore pagina in cui puoi visualizzare lo script vero e proprio.

    Questa è la pagina di smistamento (ometto la parte del collegamento al database):
    codice:
    $result = @mysql_query('SELECT nome_utente, tipo_script, descrizione, titolo, id FROM scripts');
    	if(!$result) {
    		exit("
    
    Errore nell'invio della query ". mysql_error() . '</p>');
    }
    
    echo "<ul>";
    
    while($row = mysql_fetch_array($result)) {
    	$nome = $row['nome_utente'];
    	$titolo = $row['titolo'];
    	$tipo = $row['tipo_script'];
    	$descript = $row['descrizione'];
    	$id = $row['id'];
    
    		echo"<font face='calibri' color='#999'>$titolo - script in $tipo da $nome 
    
    		<font color='#0000FF'>Descrizione fornita</font>: $descript
     </font>
    		
    
    ";
    }
    
    		
    echo '[/list]';
    E fin qui tutto bene...vengono visualizzati sia il link che le varie informazioni inerenti allo script...adesso, io invio tramite una query, come avete visto, informazionmi riguardanti il titolo dello script ed il suo id nel database. Questa è la pagina che riceve i dati (anche qui ometto la parte relativa al collegamento al database):

    codice:
    $id = $_GET['id'];
    
    	$result = @mysql_query('SELECT script, id FROM scripts WHERE id="$id"');
    	if(!$result) {
    		exit("
    
    Errore nell'invio della query ". mysql_error() . '</p>');
    }
    
    
    while($row = mysql_fetch_array($result)) {
    	$script = $row['script'];
    	$script2 = htmlspecialchars($script);
    
    
    		print "<div id='inform'><font face='calibri' color='#999'>$script2</font></div>";
    }
    Ora, il titolo viene visualizzato correttamente, ma lo script viene completamente trascurato...voi che ne dite? vedete qualche errore? Grazie mille per l'aiuto!
    {}\"$y|\/|0"/{}

  2. #2
    Non hai bisogno di usare un ciclo di WHILE, visto che sai in anticipo che il dato estrapolato dal DB è su un solo record, né di passarti il titolo dell'articolo via URL.

    Guarda come devi fare. :::::::::::::
    Codice PHP:
    // link nella pagina con la lista dei titoli
    [url='script_result.php?id=$id']$titolo[/url
    Questo è invece il codice per la pagina che visualizza tutto il singolo articolo.
    Codice PHP:
    $id $_GET['id'];

    $sql "SELECT script, titolo FROM scripts WHERE id=$id ";
    // non ti servono gli apici per $id nella query,
    // visto che il campo ID nella tabella è per certo un INT

    $result = @mysql_query($sql) OR DIE("


    Errore nell'invio della query.

    Errore Numero: "
    mysql_errno() . "

    Tipo di errore: " 
    .mysql_error() . "
    </p>
    "
    );

    $row mysql_fetch_array($result);

    $testo $row['script'];
    $titolo $row['titolo'];

    // riscrivo parte del tuo codice, ma secondo me
    // il controllo htmlspecialchars andrebbe messo nel 
    // momento in cui vai ad inserire i testi nel DB.
    // nl2br() trasforma tutti gli a-capo della form in tag 

    $script nl2br(htmlspecialchars($script));

    // qui te lo formatti come ti pare
    echo "
    $titolo


    $script2
    "
    ;

    Naturalmente, lo script può essere molto migliorato ma così è come devi lavorare.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Grazie mille per l'aiuto!!
    {}\"$y|\/|0"/{}

  4. #4
    Ho provato con lo script che hai postato ma, purtroppo, lo script continua a non venire visualizzato...come mai? solo quello, perchè il titolo si vede eccome...ho effettuato, come mi hai consigliato tu, l'htmlspecialchars ancora prima di inserire lo script nel database...e comunque non funziona nulla...
    qualcuno sa dirmi il motivo?

    Grazi mille...
    {}\"$y|\/|0"/{}

  5. #5
    Scrivere
    lo script continua a non venire visualizzato
    purtroppo non significa nulla!!!!
    Cerca di essere più preciso.
    Posta sia il codice della pagina principale (quella con i semplici link) sia quello della pagina che apre lo script.

    Ci deve essere un errore stupido in una di queste due, secondo me di parsing o di sintassi, ma in tal caso dovrebbe restituirti un errore.

    Ultima cosa: apri il codice sorgente della seconda pagina, anche se apparentemente vuota e facci sapere se trovi scritto qualcosa dentro.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Originariamente inviato da alcio74
    Scrivere purtroppo non significa nulla!!!!
    Cerca di essere più preciso.
    Posta sia il codice della pagina principale (quella con i semplici link) sia quello della pagina che apre lo script.

    Ci deve essere un errore stupido in una di queste due, secondo me di parsing o di sintassi, ma in tal caso dovrebbe restituirti un errore.

    Ultima cosa: apri il codice sorgente della seconda pagina, anche se apparentemente vuota e facci sapere se trovi scritto qualcosa dentro.

    Quello che ho scritto signifiica che, visto che, come ho detto all'inizio, sto cercando un sistema per permettere agli utenti di inserire degli script a loro piacimkento nel mio sito, lo script che dovrebbe comparire in realtà non viene stampato a video...più chiaro adesso?

    allora...quello qui sotto è il link che porta alla pagina, comprensivo di tutte le varie formattazioni...
    codice:
    echo"<font face='calibri' color='#999'>$titolo - script in $tipo da $nome 
    
    		<font color='#0000FF'>Descrizione fornita</font>: $descript
     </font>
    		
    
    ";
    e fin qui, mi è parso di capire, tutto ok...
    Ritengo che il problema si nasconda dopo...questa è la pagina incriminata:

    codice:
    $id = $_GET['id'];
    
    $sql = "SELECT script, titolo FROM scripts WHERE id=$id ";
    // non ti servono gli apici per $id nella query,
    // visto che il campo ID nella tabella è per certo un INT
    
    $result = @mysql_query($sql) OR DIE("
    
    
    Errore nell'invio della query.
    
    Errore Numero: ". mysql_errno() . "
    
    Tipo di errore: " .mysql_error() . "
    </p>
    ");
    
    $row = mysql_fetch_array($result);
    
    $testo = $row['script'];
    $titolo = $row['titolo'];
    
    $script = nl2br(htmlspecialchars($script));
    
    echo "
    $titolo
    
    
    $script
    ";
    
    ?>
    paro paro lo script che hai postato tu...non l'ho minimamente sfiorato (a parte cancellare i commenti), per vedere se il problema risiedeva in un precedente errore di digitazione, ma nulla...ditemi voi...io non vedo errori...
    sono andato a controllare sul database e non vi è nessun problema di inserimento dei dati in esso: lo script che dovrebbe essere stampato a video c'è...quindi proprio non capisco...
    {}\"$y|\/|0"/{}

  7. #7
    Hai provato a stampare la stringa SQL????
    Ad occhio, non mi piace come è scritto il link nella pagina precendente e penso non passi la variabile ID.
    Se è come penso io ce ne accorgiamo subito.

    Fai così:
    Codice PHP:
    <?php

    $id 
    $_GET['id'];

    $sql "SELECT script, titolo FROM scripts WHERE id=$id ";

    echo 
    $sql;

    /* Commento per debug
    $result = @mysql_query($sql) OR DIE("


    Errore nell'invio della query.

    Errore Numero: ". mysql_errno() . "

    Tipo di errore: " .mysql_error() . "
    </p>
    ");

    $row = mysql_fetch_array($result);

    $testo = $row['script'];
    $titolo = $row['titolo'];

    $script = nl2br(htmlspecialchars($script));

    echo "
    $titolo


    $script
    ";
    */
    ?>
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    grazie comunque...ma menter aspettavo che mi postassi un codice risolutivo sono riuscito a risolvere per conto mio...
    non so come mai, ho riscritto il codice, modificandolo in maniera, a mio parere, del tutto ininfluente e adesso funziona tutto.

    Posto il codice, così che, in caso dovesse servire a qualcuno, sia disponibile:

    Codice PHP:
    <?php
    $id 
    $_GET['id'];


    $sql = @mysql_query("SELECT titolo, script FROM scripts WHERE id=$id");
        if(!
    $sql) {
            exit(
    'Impossibile rintracciare i titoli dei testi');
    }

    while(
    $result = @mysql_fetch_array($sql)) {
        
    $titolo $result['titolo'];
        
    $testo $result['script'];
        
        
    $script2 nl2br($testo);
    echo 
    "

    <h2><font face='calibri' color='#09c'>
    $titolo</font></h2>



    <div id='inform'>
        
    $script2
        </div>
          </p>

    "
    ;
    }

    ?>


    ciao ciao
    {}\"$y|\/|0"/{}

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.