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

    Problemi in php: undefined index

    Salve,

    ho configurato un gestionale in php e l'ho fatto girare su easyphp versione 1.8. Per i database è tutto ok.
    Adesso mi compare questo problema:


    Notice: Undefined index: titolo in c:\programmi\easyphp1-8\www\area-vendo-compro\news_manager.php on line 5

    Notice: Undefined index: notizia in c:\programmi\easyphp1-8\www\area-vendo-compro\news_manager.php on line 6

    Notice: Undefined index: par in c:\programmi\easyphp1-8\www\area-vendo-compro\news_manager.php on line 9

    Ho già provato a definire le variabili ma continua a darmi questi errori. Qualcuno mi puo' aiutare?
    gianluca gradin

  2. #2
    è programmato male lo script.... puoi utilizzarlo su server in cui sia disabilitato l'error reporting dei notice... ma non sarebbe una soluzione rigorosa

  3. #3
    Apri il file php.ini presente nella cartella easyphp/apache e prova a impostare:
    register_globals ON

  4. #4
    Per register_global non funziona!!!



    Avete qualche altra idea?

    Lo script è il seguente:

    <?php
    include 'functions/check_session.php.inc';
    include 'functions/db.php';

    $title_news = $_POST['titolo'];
    $body_news = $_POST['notizia'];


    if ($_POST["par"] != "")
    {
    //caricamento dati news selezionata
    $sql = "SELECT * FROM news WHERE id_news = " . $_POST["par"];
    $query = mysql_query($sql) or die ("Errore nel recupero dei dati!");
    // se trova
    $num = mysql_num_rows($query);
    if ($num >= 1) {
    $row = mysql_fetch_array($query, MYSQL_ASSOC);
    $data_news = $row['data'];
    $giorno = substr($data_news, 8, 2);
    $mese = substr($data_news, 5, 2);
    $anno = substr($data_news, 0, 4);
    $title_news = $row['$titolo'];
    $body_news = $row['notizia'];
    $path1 = $row['path_foto1'];
    $path2 = $row['path_foto2'];
    $doc = $row['link_doc'];
    $enabledCtrl = "disabled";
    }
    else
    {
    $data_news = getdate();
    $giorno = $data_news['mday'];
    $mese = $data_news['mon'];
    $anno = $data_news['year'];
    }
    }
    else
    {
    $data_news = getdate();
    $giorno = $data_news['mday'];
    $mese = $data_news['mon'];
    $anno = $data_news['year'];
    }
    //caricamento dati news
    $sql = "SELECT * FROM news ORDER BY data DESC";
    $query = mysql_query($sql) or die ("Errore nel recupero dei dati!");

    /* se trova
    $num = mysql_numrows($query);
    if ($num >= 1) {
    $row = mysql_fetch_array($query, MYSQL_ASSOC);
    $data_news = getdate($row['data']);
    $title_news = $row['titolo'];
    $body_news = $row['notizia'];
    $path1 = $row['path_foto1'];
    $path2 = $row['path_foto2'];
    }
    else
    {
    // print "recordset vuoto!";
    $data_news = date("d/m/Y");
    }*/
    ?>
    <html>
    <HEAD><title>Pannello di amministrazione area news - soc. coop. ROLS -</title>
    <script>

    function SelectRow(id)
    {
    document.forms[0].par.value = id;
    document.forms[0].action = 'news_manager.php';
    document.forms[0].submit();
    }

    function SaveNews()
    {
    //document.forms[0].par.value = id;

    //controllo campi obbligatori
    if (document.forms[0].txtTitle.value == '')
    {
    alert("Attenzione: il Titolo è obbligatorio!");
    return;
    }

    document.forms[0].action = 'news_save.php';
    document.forms[0].submit();
    }

    function DeleteRow(id)
    {
    document.forms[0].par.value = id;
    document.forms[0].action = 'news_delete.php';
    document.forms[0].submit();
    }

    function Reset()
    {
    document.forms[0].par.value = '';
    document.forms[0].action = 'news_manager.php';
    document.forms[0].submit();
    }

    function GoMain()
    {
    document.forms[0].par.value = '';
    document.forms[0].action = 'accesso.php';
    document.forms[0].submit();
    }

    </script>
    </HEAD>

    <body bgcolor=#D52626>
    <center><img src=testata.jpg><center>
    <table bgcolor=#FFFFFF width=780 height=400 border=0 align=center cellpadding=0 cellspacing=0>
    <tr>
    <td height=1 bgcolor=#D52626><img src=../../../rols/web/44panel32/control/filo.jpg width=780 height=4></td>
    </tr>
    <tr>
    <td height=10 bgcolor=#EAEAEA></td>
    </tr>

    <tr>
    <td height=255><table width=274 border=0 align=center cellpadding=0 cellspacing=0>
    <form enctype="multipart/form-data" name="frmNews" method="post"><center><table>
    <tr><td colspan="2" align="center">- SEZIONE DI GESTIONE DELLE NEWS -

    </td></tr>
    <tr><td><font face="Verdana" size="2">Data:</td><td><font face="Verdana" size="2">
    <?php
    //carica combo giorno
    echo "<select name=\"cboGiorno\">";
    for ($i = 1; $i <= 31; $i++)
    {
    echo "<option value=\"" . $i . "\"";
    if ($i == $giorno)
    echo " selected ";
    echo ">" . $i . "</option>";
    }
    echo "</select>/";

    //carica combo mese
    echo "<select name=\"cboMese\">";
    for ($i = 1; $i <= 12; $i++)
    {
    echo "<option value=\"" . $i . "\"";
    if ($i == $mese)
    echo " selected ";
    echo ">" . $i . "</option>";
    }
    echo "</select>/";

    //carica combo anno
    echo "<select name=\"cboAnno\">";
    for ($i = 2003; $i <= 2013; $i++)
    {
    echo "<option value=\"" . $i . "\"";
    if ($i == $anno)
    echo " selected ";
    echo ">" . $i . "</option>";
    }
    echo "</select>";

    ?>
    </td></tr>
    <tr><td><font face="Verdana" size="2">Titolo:</td><td><font face="Verdana" size="2"><input type="text" size="60" name="txtTitle" value="<? echo $title_news ?>"></td></tr>
    <tr><td valign="top"><font face="Verdana" size="2">Notizia</td>
    <td colspan="2"><font face="Verdana" size="2"><textarea cols="60" rows="5" name="txtBody"><? echo $body_news; ?></textarea></td></tr>
    <tr><td><font face="Verdana" size="2">Foto #1:</td><td><input type="file" size="30" name="filePath1" <? echo $enabledCtrl; ?>><? echo $path1; ?></td></tr>
    <tr><td><font face="Verdana" size="2">Foto #2:</td><td><input type="file" size="30" name="filePath2" <? echo $enabledCtrl; ?>><? echo $path2; ?></td></tr>
    <tr><td><font face="Verdana" size="2">Doc. Word:</td><td><font face="Verdana" size="2"><input type="file" size="30" name="fileDoc" <? echo $enabledCtrl; ?>><? echo $doc; ?></td></tr>
    <tr><td></td><td><font face="Verdana" size="2"><input type="submit" value="Salva" onclick="SaveNews();">
    <input type="reset" value="Nuovo" onclick="Reset();">
    <input type="button" value="Torna a pannello" onclick="GoMain();"></td></tr>
    </table></center><input type="hidden" name="par" value="<? echo $_POST["par"]; ?>"></form>

    <center><table border="1" width="90%">
    <tr><td><font face="Verdana" size="2">Data</td>
    <td><font face="Verdana" size="2">Titolo</td>
    <td><font face="Verdana" size="2">Foto #1</td>
    <td><font face="Verdana" size="2">Foto #2</td>
    <td><font face="Verdana" size="2">Doc</td>
    <td></td>
    </tr>
    <?php
    while ($row = mysql_fetch_array($query, MYSQL_ASSOC))
    {
    echo "<tr><td><font face=\"Verdana\" size=\"2\">";
    //echo date("d/m/Y", $row['data'])."</td>";
    echo substr($row['data'], 8, 2)."/".substr($row['data'], 5, 2)."/".substr($row['data'], 0, 4)."</td>";
    echo "<td><a id=\"".$row['id_news']."\" href=\"#\" OnClick=\"SelectRow(".$row['id_news'].");\"><font face=\"Verdana\" size=\"2\">";
    echo $row['titolo']."</a></td>";
    echo "<td><font face=\"Verdana\" size=\"2\">" . $row['path_foto1'] . "</td>";
    echo "<td><font face=\"Verdana\" size=\"2\">" . $row['path_foto2'] . "</td>";
    echo "<td><font face=\"Verdana\" size=\"2\">" . $row['link_doc'] . "</td>";
    echo "<td><a href=\"#\" OnClick=\"DeleteRow(".$row['id_news'].");\"><font face=\"Verdana\" size=\"2\">Elimina</a>";
    echo "</td></tr>";
    }
    ?>
    </table></center>
    <tr><td>
    </td></tr>

    </td></tr>
    </table>


    </body>
    </html>

    Vi ringrazio per l'aiuto.
    gianluca gradin

  5. #5
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Concordo con Guido, lo script è scritto male e ti da quei messaggi se l'error reporting è su E_ALL.
    In poche parole gli errori che ti stampa significano che le variabili sono utilizzate ma non sono mai stae dichiarate.
    Ad esempio tu scrivi:

    $title_news = $_POST['titolo'];

    Ma se $_POST['titolo'] non esiste ti da l'errore.

    Dovresti cambiarlo ad esempio in questo modo:

    if( isset($_POST['titolo']) ) $title_news = $_POST['titolo'];
    else $title_news = NULL;

  6. #6

    Grazie!!! Il problema è stato risolto!

    E adesso nel caso di questi due errori come si procede?


    Notice: Undefined index: par in c:\programmi\easyphp1-8\www\area-vendo-compro\news_manager.php on line 13

    Notice: Undefined variable: enabledCtrl in c:\programmi\easyphp1-8\www\area-vendo-compro\news_manager.php on line 172
    >
    Notice: Undefined variable: path1 in c:\programmi\easyphp1-8\www\area-vendo-compro\news_manager.php on line 172
    gianluca gradin

  7. #7
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Devi procedere come ti ho spiegato nell'esempio.
    Ti spiego il primo, per gli altri il concetto è lo stesso:

    Al posto di:

    if ($_POST["par"] != "")

    metti:

    if ( isset($_POST["par"]) && $_POST["par"] != "" )

    isset serve per vedere se la variabile esiste. Se non esiste non esegue il secondo controllo dell' and ($_POST["par"] != ""), perchè comunque il risultato è già 0.
    E' un concetto abbastanza importante.

  8. #8

    Ok tutto chiaro

    Ok è tutto chiaro.

    Ho provato a fare le relative modifiche e mi sembra che sia tutto ok.

    Faccio un paio di verifiche poi vi faccio sapere.
    gianluca gradin

  9. #9
    Originariamente inviato da gianluca_75

    Grazie!!! Il problema è stato risolto!
    se ti riferisci al post che ti consiglia di mettere il register global on, non hai risolto il problema ma te ne sei creati per il futuro....

    è bene programmare con register global off ed erro reporting settato al massimo... in modo da prevenire ogni possibile errore logico nell'uso di variabili non esistenti


  10. #10
    No il global l'ho risettato come prima.

    Adesso devo vedere se tutto è apposto.

    gianluca gradin

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 © 2024 vBulletin Solutions, Inc. All rights reserved.