Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente bannato
    Registrato dal
    Dec 2004
    Messaggi
    52

    update query che non modifica

    Salve, io ho un problemino su questi due script:

    in poce parole non mi modifica i record del database.
    come mai ? mi proteste aiutare?.

    grazie



    Codice PHP:
    update.php
    <?
    include ("config.inc.php");
    include (
    "top_foot.inc.php");

    top();
    ?>
    <?
    $db 
    mysql_connect($db_host,$db_user,$db_password);
    if (
    $db == FALSE)  die ( " Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die (
    "errore nella selezione");

    $query "SELECT id,titolo,testo,data,autore,mail FROM news WHERE id='$id'";

    $result mysql_query($query,$db);
    $row mysql_fetch_array($result);


    ?>
    <form method="post" action="upsave.php?id=<?=$row[id];?>">
    Titolo: 

    <input type="text" size="40" name="titolo" value="<?=$row[titolo];?>">



    Data: <select name="giorno">
    <? for ($i=1$i<=31$i++)
    echo 
    "<option value=$i>$i";
    ?>
    </select>
    <select name="mese">
    <option value="1">Gennaio
    <option value="2">Febbraio
    <option value="3">Marzo
    <option value="4">Aprile
    <option value="5">Maggio
    <option value="6">Giugno
    <option value="7">Luglio
    <option value="8">Agosto
    <option value="9">Settembre
    <option value="10">Ottrobe
    <option value="11">Novembre
    <option value="12">Dicembre
    </select>
    <select name="anno">
    <option value="2001">2001
    <option value="2002">2002
    <option value="2003">2003
    <option value="2004">2004
    <option value="2005">2005
    </select>



    Autore:

    <input type="text" size="40" name="autore" value="<?=$row[autore];?>">



    Email:

    <input type="text" size="40" name="mail" value="<?=$row[mail];?>">




    Testo:

    <textarea cols="60" rows="40" name="testo"><?=$row[testo];?></textarea>
     
    <input type="submit" value="Invia"></form>
    <?
    mysql_close
    ($db);
    foot();
    ?>

    ed quell'altro:

    Codice PHP:
     upsave.php
    <?
    include("top_foot.inc.php");
    include(
    "config.inc.php");
    top();
    if (
    trim($titolo) == "" OR Trim($testo) == ""):
    echo 
    " I campi Titolo e Testo devono essere riempiti!";
    else:
    $titolo addslashes(stripslashes($titolo));
    $autore addslashes(stripslashes($autore));
    $mail addslashes(stripslashes($mail));
    $testo addslashes(stripslashes($testo));

    $titolo str_replace("<""&lt;"$titolo);
    $titolo str_replace(">""&gt;"$titolo);
    $autore str_replace("<""&lt;"$autore);
    $autore str_replace(">""&gt;"$autore);
    $testo str_replace("<""&lt;"$testo);
    $testo str_replace(">""&gt;"$testo);
    $testo nl2br($testo);



    $testo stripslashes($testo );
    $testo htmlspecialchars($testo );
    $testo nl2br($testo);

    $data mktime("0","0","0"$mese$giorno$anno);

    $db mysql_connect($db_host,$db_user,$db_password);
    if (
    $db == FALSE)  die ( " Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die (
    "errore nella selezione");

    $query "UPDATE news SET "
                      
    ." titolo=\"".$_POST['titolo']."\""
                      
    .",autore=\"".$_POST['autore']."\""
                      
    .",testo=\"".$_POST['testo']."\""
                      
    .",mail=\"".$_POST['mail']."\""
                  
    ." WHERE ID = '".$_GET['ID']."'";

    if (
    mysql_query($query,$db))
    echo 
    "L'Articolo è stato modificato corretamente";
    else
    echo 
    "Errore durante l'inserimento";
    mysql_close($db); endif;
    foot();
    ?>

  2. #2
    Utente bannato
    Registrato dal
    Dec 2004
    Messaggi
    52

    ciao a tutti

    up, perfavore.

  3. #3
    id e ID sono due variabili diverse perche' i nomi delle variabili sono case sensitive.

    e poi perche' passare l'id che e' un elemento delicato tramite URL, passalo con POST in un campo HIDDEN. Altrimenti un giocherellone ti fa la scansione degli id e ti modifica tutto il db. pensa ad un link

    upsave.php?id=%

    non lo sottoponi ad alcun controllo e metti direttamente il valore nella query.


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

  4. #4
    Utente bannato
    Registrato dal
    Dec 2004
    Messaggi
    52
    [supersaibal]Originariamente inviato da piero.mac
    id e ID sono due variabili diverse perche' i nomi delle variabili sono case sensitive.

    e poi perche' passare l'id che e' un elemento delicato tramite URL, passalo con POST in un campo HIDDEN. Altrimenti un giocherellone ti fa la scansione degli id e ti modifica tutto il db. pensa ad un link

    upsave.php?id=%

    non lo sottoponi ad alcun controllo e metti direttamente il valore nella query.

    [/supersaibal]

    grazie, ora provo però mi protesti copiare il codice ed incollare con quello giusto? grazie.

  5. #5
    <form method="post" action = "upsave.php">
    <input type="hidden" name="id" value ="<?php echo $row['id']; ?>">

    e poi

    ." WHERE id = '".$_POST['id']."'";


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

  6. #6
    Utente bannato
    Registrato dal
    Dec 2004
    Messaggi
    52
    [supersaibal]Originariamente inviato da piero.mac
    <form method="post" action = "upsave.php">
    <input type="hidden" name="id" value ="<?php echo $row['id']; ?>">

    e poi

    ." WHERE id = '".$_POST['id']."'";

    [/supersaibal]
    grazie, ok fatto ed funziona.

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.