Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    [PHP & MySql]Problema grave con PhpMyAdmin

    Ciao a tutti,
    premetto che ho hosting aruba, cosi magari circoscrivo il problemia,
    cmq ho un gravissimo problema, ho creato una tabella in questo modo

    Codice PHP:
    CREATE TABLE `articoli` (
      `
    idint(11NOT NULL auto_increment,
      `
    chiavitext NOT NULL,
      `
    headertext NOT NULL,
      `
    titolotext NOT NULL,
      `
    articolomediumtext NOT NULL,
      `
    aut_nametext NOT NULL,
      `
    aut_mailtext NOT NULL,
      `
    protext NOT NULL,
      `
    controtext NOT NULL,
      
    KEY `id` (`id`)
    TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=
    e tutto va bene, poi ho creato un pannello di amministrazione che mi permette di inserire in questa tabella diversi articoli ( i record ) che vengono numerati con un id progressivo...

    il problema è che quando vado a modificare uno di questi record tramite il pannello di controllo di aruba PhpMyAdmin la maggior parte dei record non sono modificabili...
    ovvero:
    io clicco sull'immaginina che simboleggia la modifica di un suddetto record , o id , ma mi carica solo il nome dell'host e della tabella...

    ho provato ad aggirare questo problema creando un sistema di pagine php che mi modificano il db tramite la funzione

    Codice PHP:
    $query "UPDATE articoli SET chiavi='$chiavi', header='$header_form', titolo='$titolo', articolo='$articolo_form', aut_name='$aut_name', aut_mail='$aut_mail', pro='$pro', contro='$contro' WHERE id=$idarticolo"
    ma mi succede la stessa cosa, cioè alcuni id , o record li modifica , mentre altri no , proprio come fa sul phpmyadmin...

    sono giunto alla conclusione che :

    1-o è il servizio di aruba che è fallato, come tanti altri
    2-o la tabella che ho creato crea dei problemi... anche se sono scettico... xkè nn capisco xkè alcuni record sono modificabili.. mentre altri no...

    bah...

    help plzzzzzzzz

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    è probabile che alcuni campi contengano apici o virgolette che danno fastidio alle query, sia tue sia di phpmyadmin.
    think simple think ringo

  3. #3
    prova cosi:

    Codice PHP:
    $query "INSERT INTO tabella (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')"
    ovviamente devi adattare le tue voci...

    $query = "UPDATE articoli SET chiavi='$chiavi', header='$header_form', titolo='$titolo', articolo='$articolo_form', aut_name='$aut_name', aut_mail='$aut_mail', pro='$pro', contro='$contro' WHERE id=$idarticolo";

    fammi sapere!!

    ciao
    Francesco
    Ciao!

  4. #4
    ragazzi ammesso che siano le virgolette o gli apici , facendo una cosa del genere non risolvo?

    $articolo = str_replace ( '"','\"', $articolo);


    e poi nella pagina che prende i dati dico il contrario , cioè

    $articolo = str_replace ( '\"','"', $articolo);

    dite che va?

  5. #5
    Verificherei per prima cosa se sono presenti i parser aggiunti da addslashes o magic_quote. Poi metterei le virgolette anche al valore che passi in WHERE, potrebbe essere considerato una stringa.

    ... WHERE id = '$idarticolo'";

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    cioè ?



    cmq ho notato che nell'altro db che ho in una tabella c'è un template di invision con tanto di " tranquillamente ... senza slashes... cmq ti posto il codice della pagina che immette i dati nel db sql


    Codice PHP:
    <?php
    //inculdo la configurazione
    include 'config.inc.php';
    //includo il parser BB
    include 'cbparser.php';
    //connetto al myql
    $db mysql_connect($db_host$db_user$db_password) or die ('Problema nella connessione al database');
    //controllo
    if ($db == FALSE){
    echo 
    "<center>Problema nella connessione al database</center> 
    "
    ;
    } else {
    echo 
    "<center>connessione avvenuta</center> 
    "
    ;
    }
    //chiedo il responso
    //connetto al db
    $sel_db mysql_select_db($db_name$db)
    or die (
    "<center>Errore nella selezione del database. Verificare i parametri nel file config.inc.php</center>");
    if (
    $sel_db == FALSE){
    echo 
    "<center>Db nn trovato </center> 
    "
    ;
    } else {
    echo 
    "<center>Db trovato </center> 
    "
    ;
    }
    //controllo delle cosette
    if ( trim($titolo) == "" OR trim($articolo_form) == "" OR trim($aut_name) == "" OR trim($aut_mail) == ""){
    echo 
    "<center>I campi obbligatori devono essere riempiti!</center>";
    echo 
    "<meta http-equiv=\"refresh\" content=\"2;URL=index.php\">";
    }
    else {
    //pro e contro
    if ($pro_form != ""){
    $pro='<center><table width="10%"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="12%">[img]pro_contro_r2_c1.gif[/img]</td>
        <td width="58%">[img]pro_contro_r2_c2.gif[/img]</td>
        <td width="30%">[img]pro_contro_r2_c3.gif[/img]</td>
      </tr>
      <tr>
        <td background="pro_contro_r3_c1.gif"></td>
        <td background="pro_contro_r3_c2.gif">'
    .$pro_form.'</td>
        <td background="pro_contro_r3_c3.gif"></td>
      </tr>
      <tr>
        <td>[img]pro_contro_r4_c1.gif[/img]</td>
        <td>[img]pro_contro_r4_c2.gif[/img]</td>
        <td>[img]pro_contro_r4_c3.gif[/img]</td>
      </tr>
    </table></center>'
    ;
    }else{
    $pro="";
    }
    if (
    $contro_form != ""){
    $contro='<center><table width="10%"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="12%">[img]pro_contro_r2_c1.gif[/img]</td>
        <td width="58%" valign="bottom">[img]pro_contro_r6_c2.gif[/img]</td>
        <td width="30%">[img]pro_contro_r2_c3.gif[/img]</td>
      </tr>
      <tr>
        <td background="pro_contro_r3_c1.gif"></td>
        <td background="pro_contro_r3_c2.gif">'
    .$contro_form.'</td>
        <td background="pro_contro_r3_c3.gif"></td>
      </tr>
      <tr>
        <td>[img]pro_contro_r4_c1.gif[/img]</td>
        <td>[img]pro_contro_r4_c2.gif[/img]</td>
        <td>[img]pro_contro_r4_c3.gif[/img]</td>
      </tr>
    </table></center>'
    ;
    }else{
    $contro="";
    }

    $articolo=bb2html($articolo_form"");
    $header$header_form ;

    $query "INSERT INTO articoli (chiavi,header,titolo,articolo,aut_name,aut_mail,pro,contro) VALUES ('$chiavi','$header','$titolo','$articolo','$aut_name','$aut_mail','$pro','$contro')";
    //controllo che sia stato aggiunto 
    if (mysql_query($query$db)) {
        echo 
    "<meta http-equiv=\"refresh\" content=\"5;URL=index.php\"><center>L'articolo è stato inserito correttamente, attendi pochi secondi e verrai reindirizzato</center>";
        
    $sql "select max(id) as 'last_id' from articoli";
        
    $cmd mysql_query ($sql);
        
    $last_id mysql_fetch_assoc ($cmd);
        echo 
    "<center>L'url del tuo articolo &egrave; <a href=\"index.php?idarticolo=".$last_id['last_id']."\">index.php?idarticolo=".$last_id['last_id']."</a></center>";
    }
    else
    echo 
    "<center>Errore durante l'inserimento</center> 
    "
    ;
    }
    mysql_close($db); 
    ?>
    e della index che li riceve

    Codice PHP:
    <?php
    //configurazione
    include 'config.inc.php';
    //if iniziale
    if ($idarticolo == ""){
    include 
    'cutenews/show_news.php';
    } else {
    //connessione
    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE){
    echo 
    "<center>connessione fallita su $db_host</center> 
    "
    ;
    } else {
    //selezione db
    mysql_select_db($db_name$db)
    or die (
    "<center>Errore nella selezione del database. Verificare i parametri nel file config.inc.php</center>");
    //cerca i risultati
    $result mysql_query("SELECT * FROM $nome_tabella WHERE id='$idarticolo'"
    or die(
    mysql_error());
    //controllino
    if(mysql_num_rows($result)){
    //e da i risultati
    while($record mysql_fetch_array($result)) {
    $titolo_alto=$record['titolo'];
    //template dell'articolo:
    echo $record['header'];
    echo 
    '<table border="0" cellpadding="0" cellspacing="0" width="558">
      <tr>
       <td width="37">[img]spacer.gif[/img]</td>
       <td width="486">[img]spacer.gif[/img]</td>
       <td width="34">[img]spacer.gif[/img]</td>
       <td width="10">[img]spacer.gif[/img]</td>
      </tr>

      <tr>
       <td colspan="3">[img]articoli_r2_c4.jpg[/img]</td>
       <td>[img]spacer.gif[/img]</td>
      </tr>
      <tr>
       <td>[img]articoli_r3_c4.jpg[/img]</td>
       <td background="articoli_r3_c5.jpg">[b]'
    .$record['titolo'].'[/b]</td>
       <td>[img]articoli_r3_c8.jpg[/img]</td>
       <td>[img]spacer.gif[/img]</td>
      </tr>
      <tr>
       <td>[img]articoli_r5_c4.jpg[/img]</td>
       <td>[img]articoli_r5_c5.jpg[/img]</td>
       <td>[img]articoli_r5_c8.jpg[/img]</td>
       <td>[img]spacer.gif[/img]</td>
      </tr>
      <tr>
       <td background="articoli_r6_c4.jpg"></td>
       <td background="articoli_r5_c3.jpg">

    <div align="justify">'
    .$record['articolo'].'</div></p>
          

    [b]A cura di [/b][email="'
    .$record['aut_mail'].'"]'.$record['aut_name'].'[/email]</p></td>
       <td background="articoli_r7_c4.jpg"></td>
       <td>[img]spacer.gif[/img]</td>
      </tr>
      <tr>
       <td>[img]articoli_r7_c2.jpg[/img]</td>
       <td>[img]articoli_r7_c3.jpg[/img]</td>
       <td>[img]articoli_r9_c4.jpg[/img]</td>
       <td>[img]spacer.gif[/img]</td>
      </tr>
    </table>'
    ;
    echo 
    $record['pro'];
    echo 
    "
    "
    ;
    echo 
    $record['contro'];
    }
    }else{
    echo 
    "<center><img src=\"errore_articolo.jpg\" border=\"0\" alt=\"Errore\"></center>";
    }
    }
    //chiude la comunicazione con mysql
    mysql_close($db);
    }

    ?>

    raga posso solo che contare su di voi

  7. #7
    questi sono i file a cui dovrebbero essere applicate le modifiche di stripslashes e addslashes e le altre modifiche che diceva piero...

  8. #8
    Originariamente inviato da mafeldj
    questi sono i file a cui dovrebbero essere applicate le modifiche di stripslashes e addslashes e le altre modifiche che diceva piero...
    Posso mica leggere tutta sta roba....

    metti la segnalazione di errore, se e' un problema di parser te lo dice... Ovviamente metti dati che abbiano l'apostrofo....

    //controllo che sia stato aggiunto
    if (mysql_query($query, $db)) or die(mysql_error()) {

    vedi che fa....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Qui hai un errore.

    $sql = "select max(id) as 'last_id' from articoli";

    metti l'alias tra apici. L'alias corrisponde al nome di una colonna e non ad una stringa.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    ok l'ho fatto ma il problema resta, guarda ti linko

    http://lnx.residentevilsaga.it/porco...p?idarticolo=2

    allora questa è una pagina che restituisce l'id numero 2 che noi riusciamo a vedere , ma nn a modificare da sql

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.