Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    53

    modifica campi in una tabella

    nel mio sito per ogni articolo che pubblico ho il seguente url
    http://localhost/sitophp/articolo.php?id=3...
    se volessi avere un pagina: modifica.php la mia intenzione è quella di creare un form in php che mi permette di visualizzare nei relativi campi i dati gia immessi per poterli modificare...

    io avevo scritto

    <html>
    <body>
    <?php

    include('core.php');
    if(isset($_get['Modifica'])){//hai cliccato su MODIFICA
    $art_id=addslashes(htmlspecialchars($_get['Modifica']));//con un po' di protezione al get
    $query="SELECT * FROM articoli WHERE id='$art_id'";
    $estrai=mysql_query($query);
    while($row = mysql_fetch_array($estrai)){
    $art_id = $row['art_id'];
    $autore = stripslashes($row['art_autore']);
    $titolo = stripslashes($row['art_titolo']);
    $data = $row['art_data'];
    $articolo = stripslashes($row['art_articolo']);
    }
    }


    ?>


    <form name="form1" method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']);?>">
    <p>
    <input name="id_nascosto" type="hidden" value="<?php echo $art_id;?>">
    </p>
    <p>
    Autore:
    <input name="autore" type="text" value="<?php echo $autore;?>">
    </p>
    <p>
    Titolo:
    <input name="titolo" type="text" value="<?php echo $titolo;?>">
    </p>
    <p>
    Articolo:
    <input name="articolo" type="text" value="<?php echo $articolo;?>">
    </p>
    <p>
    <input name="data" type="text" value="<?php echo $art_data;?>">
    </p>

    <p>
    <input name="submit" type="submit" id="submit" value="Invia">
    </p>
    </form>
    </body>
    </html>

    ma non funziona... come mai?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    53
    ps ovviamente l' id nell' url cambia!!!

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Non funziona... Per questa frase dovrebbero mettere un filtro sul forum...

    Cosa vedi a schermo? Una pagina bianca? Il form senza campi precompilati? I campi scritti in aramaico antico?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    53
    per ogni campo del form mi compare una scritta simile:: Undefined variable: autore in C:\wampio\www\sitophp\modifica.php on line 35Call Stack#TimeMemoryFunctionLocation10.0000137592{main }( )..\modifica.php:0">

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    credo dipenda dal fatto che cerchi di compilare i campi del form anche se non vero isset($_GET['modifica'])

    prova una cosa di questo tipo
    Codice PHP:
    <html>
    <body>
        <?php
        
    include('core.php');
    if(isset(
    $_get['Modifica'])){//hai cliccato su MODIFICA  
        
    $art_id=addslashes(htmlspecialchars($_get['Modifica']));//con un po' di protezione al get 
        
    $query="SELECT * FROM articoli WHERE id='$art_id'";   
    $estrai=mysql_query($query); 
     while(
    $row mysql_fetch_array($estrai)){
      
    $art_id $row['art_id'];
        
    $autore stripslashes($row['art_autore']);
        
    $titolo stripslashes($row['art_titolo']);
        
    $data $row['art_data'];
        
    $articolo stripslashes($row['art_articolo']);
    }


    ?>


    <form name="form1" method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']);?>"> 
      <p> 
        <input name="id_nascosto" type="hidden" value="<?php echo $art_id;?>"> 
      </p> 
      <p> 
      Autore:
        <input name="autore" type="text"  value="<?php echo $autore;?>"> 
      </p> 
     <p> 
     Titolo:
        <input name="titolo" type="text"  value="<?php echo $titolo;?>"> 
      </p> 
     <p> 
     Articolo:
        <input name="articolo" type="text"  value="<?php echo $articolo;?>"> 
      </p> 
     <p> 
        <input name="data" type="text"  value="<?php echo $art_data;?>"> 
      </p> 
     
      <p> 
        <input name="submit" type="submit" id="submit" value="Invia"> 
      </p> 
    </form>
    </body>
      </html>
    <?php
    }
    else echo 
    "non hai cliccato su modifica";
    ?>

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Comunque tieni presente che $_get != $_GET ... php è case sensitive (per il nome delle variabili)

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    53
    IN PRATICA l ' if non lo fa mai.... esce scritto sempre:"non hai cliccato su modifica"

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    hai corretto $_get con $_GET?
    da dove arriva il campo "Modifica"?

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    53
    si ho corretto ma non va... il campo modifica arriva dal codice per visualizzare l articolo che è il seguente:
    <html>
    <head>
    <title>Il mio Blog</title>
    </head>
    <body background="io6.jpg">
    <?php
    session_start();
    @include "config.php";


    // controlliamo che sia stato inviato un id numerico alla pagina
    if(isset($_GET['id'])&&(is_numeric($_GET['id']))){
    // valorizziamo la variabile relativa all'id dell'articolo e includiamo il file di configurazione
    $art_id = $_GET['id'];
    @include "config.php";


    // selezioniamo dalla tabella i dati relativi all'articolo
    $sql = "SELECT art_autore,art_titolo,art_data,art_articolo FROM articoli WHERE art_id='$art_id'";
    $query = @mysql_query($sql) or die (mysql_error());


    // se per quell'id esiste un articolo..
    if(mysql_num_rows($query) > 0){
    // ...estraiamo i dati e mostriamoli a video
    $row = mysql_fetch_array($query) or die (mysql_error());
    $autore = stripslashes($row['art_autore']);
    $titolo = stripslashes($row['art_titolo']);
    $data = $row['art_data'];
    $articolo = stripslashes($row['art_articolo']);
    echo "<h2>".$titolo."</h2>" . $articolo . "<br><br>";
    $data = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $data);
    echo "Scritto da <b>". $autore . "</b>";
    echo "| Articolo postato il <b>" . $data . "</b>";
    // link alla pagina dei commenti


    @$username = $_SESSION['username'];
    if(isset($_SESSION['username'])) {


    if($username =='root'){
    echo "<br><a href=\"insert_comment.php?id=$art_id\">Commenta</a>";
    echo " | <a href=\"modifica.php?id=$art_id\">Modifica</a>";
    echo " | <a href=\"modifica.php?id=$art_id\">Elimina</a><br>";
    }
    else{ echo "<br><a href=\"insert_comment.php?id=$art_id\">Commenta</a><br><br>";
    }
    } else{
    echo "<br><a href=\"login.php?id=$art_id\">Commenta</a><br><br>";
    }// visualizzianmo tutti i commenti

    $sql_com = "SELECT com_autore, com_testo FROM commenti WHERE com_art='$art_id'";
    $query_com = @mysql_query($sql_com) or die (mysql_error());
    if(mysql_num_rows($query_com) > 0){
    echo "Commenti:<br>";
    while($row_com = mysql_fetch_array($query_com)){
    $com_autore = stripslashes($row_com['com_autore']);
    $com_testo = stripslashes($row_com['com_testo']);
    echo $com_testo . "<br>";
    echo "Scritto da <b>". $com_autore . "</b>";
    echo "<hr>";
    }
    }
    }
    }else{
    // se per l'id non esiste un articolo..
    echo "Nessun articolo trovato.";


    }
    ?>


    </body>
    </html>


    solo il root può modificare ed eliminare... gli utenti che non sono loggati prima di commentare devono loggarsi ecco perchè quando cliccano su"Commenta" sono indirizzati alla pagina di login.
    $_SESSION['username'] deriva dai controlli sul login

    login.php:

    <html>
    <body bgcolor=”#0000ff” background="0240.gif">
    <?php
    include('core.php');
    if(isset($_POST['login'])) {// se login è stato premuto
    $username = isset($_POST['username']) ? clear($_POST['username']) : false;
    $password = isset($_POST['password']) ? clear($_POST['password']) : false;
    /*
    //oppure
    $username =clear($_POST['$username']);
    if(empty($username)){
    $username=false;} // azzera i campi appena digitati
    */


    if(empty($username) || empty($password)) {// se almeno uno dei due è verificata
    echo 'Riempi tutti i campi.<br /><br /><a href="javascript:history.back();">Indietro</a>';
    } elseif(mysql_num_rows(mysql_query("SELECT * FROM users WHERE username LIKE '$username'")) == 0) {
    // mysql query invia una query al database
    //attualmente attivo sul server associato all'identificativo di conmnessione specificato. Se identificativo_connessione non è specificato,
    //viene considerata l'ultima connessione aperta, restituisce false se la query non è stata eseguita correttamente
    echo 'Username non trovato.<br /><br /><a href="javascript:history.back();">Indietro</a>';
    } else {
    $password = md5($password);
    $ip = $_SERVER['REMOTE_ADDR'];//restituisce id
    if(mysql_num_rows(mysql_query("SELECT * FROM users WHERE username LIKE '$username' AND password='$password'")) > 0) {
    //non mettiamo like alla password
    $username = mysql_result(mysql_query("SELECT username FROM users WHERE username LIKE '$username'"), 0);
    $userid = mysql_result(mysql_query("SELECT id FROM users WHERE username LIKE '$username'"), 0);
    mysql_query("UPDATE users SET last_login='".time()."', last_ip='$ip' WHERE id='$userid'") or die(mysql_error());
    $_SESSION['username'] = $username;
    $_SESSION['userid'] = $userid;
    if($userid==1){
    header('Location: index.php');
    }
    else{
    header('Location: index12.php');
    }
    }
    }
    }
    else {
    ?><center>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <label>Username: <input type="text" name="username" required maxlength="16" /></label><br />
    <label>Password: <input type="password" name="password" required maxlength="20" /></label><br />

    <input type="submit" name="login" value="Accedi" />
    <input type="reset" name="register" value="Annulla" />
    </center></form>
    <?php
    }
    ?>
    </body>
    </html>

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    53
    hai ragione... ho cambiato ma continua a darmi errore!!!
    errore:
    mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wampio\www\sitophp\modifica.php

    e poi per ogni campo input ho lo stesso errore di prima ,...

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.