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

    undefined index - Perchè?

    Mi sono imbattuto in questi errori:

    Notice: Undefined index: Nome in C:\xampp\htdocs\test2\test\zzz\pagination2\cerca6. php on line 75
    Notice: Undefined index: Numero in C:\xampp\htdocs\test2\test\zzz\pagination2\cerca6. php on line 76
    Notice: Undefined index: city in C:\xampp\htdocs\test2\test\zzz\pagination2\cerca6. php on line 77


    Premetto che ho già cercato qui le soluzioni, ma per qualche ragione mi dà problema di sintassi.

    1 . http://stackoverflow.com/questions/5...d-index-in-php
    2 . http://stackoverflow.com/questions/1...ined-index-why

    Il problema non è quando effettuo una query, ma quando clicco sulle pagine 1 o 2.
    Da quello che ho capito non si tratta proprio di un errore, ma di disabilitare le notifiche. Io ho provato le loro soluzioni, ma per il mio codice mi dà errore di sintassi Parse error: syntax error..

    Come devo modificare il codice per evitare queste fastidiose notifiche? O si tratta di un vero e proprio errore che ho nel codice?



    Codice:

    Codice PHP:
    <head>

        <style type="text/css">
            a:link    {text-decoration: none; color: brown;}
            a:visited {text-decoration: none; color: green;}
            a:hover   {color: red;}
        </style>
        
        <style>
            tr:nth-of-type(odd) { background-color: AZURE; }
            tr:nth-of-type(even) { background-color: CYAN; }
        </style>
        
        <style>
            tr:hover{background-color:DEEPSKYBLUE;}
        </style>


       <link rel="stylesheet" href="style.css" type="text/css" id="" media="print, projection, screen" />
        <script type="text/javascript" src="jquery-latest.js"></script>
        <script type="text/javascript" src="jquery.tablesorter.js"></script>
            
        <script type="text/javascript">
            $(function() {
                $("table").tablesorter({debug: true});
                
            });
        </script>
            

    </head>




          <form action="cerca6.php" method="POST">
        [b]Nome[/b]<input type="text" name="Nome">
        [b]Numero[/b]<input type="text" name="Numero">
        [b]city[/b]<input type="text" name="city">
        <input type="Submit">
        </form>
         

    <?php
         
        
        
    echo "<table id='rowspan' cellspacing='0' class='tablesorter'>";   
        echo 
    "<thead><tr>"
        echo 
    "<th>[i]ID<i/></th>";   
        echo 
    "<th>[i]Artista + Album<i/></th>"
        echo 
    "<th>Genere</th>"
        echo 
    "<th >Download</th>"
        echo 
    "</tr></thead>";

        
        
    define('DB_NAME''forms1');
        
    define('DB_USER''root');
        
    define('DB_PASSWORD''');
        
    define('DB_HOST''localhost');
         
        
    $link mysql_connect(DB_HOSTDB_USERDB_PASSWORD);
        if (!
    $link) {
            die(
    'Could not connect: ' mysql_error());
        }
         
        
    $db_selected mysql_select_db(DB_NAME$link);
         
        if (!
    $db_selected) {
            die(
    'Can\'t use ' DB_NAME ': ' mysql_error());
        }
        
    mysql_query('SET CHARACTER SET utf8');
        
        
    $per_page 5;
        
    $pages_query mysql_query("SELECT COUNT(`Autore`) FROM `demo`");
        
    $pages ceil(mysql_result($pages_query0) / $per_page);
        
        
    $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
        
    $start = ($page 1) * $per_page;
        
        
    $Nome str_replace(' ''%'$_POST['Nome']);
        
    $Numero str_replace(' ''%'$_POST['Numero']);
        
    $city str_replace(' ''%'$_POST['city']);
         
        
    $arNome str_split($Nome);
        
    $arNumero str_split($Numero);
        
    $arcity str_split($city);
         
        
    $Nome='';
        foreach (
    $arNome as $value)
        {
           if (
    $value=='%') continue;
           
    $Nome.=$value.'%';
         
        }
         
        
    $Numero='';
        foreach (
    $arNumero as $value)
        {
           if (
    $value=='%') continue;
           
    $Numero.=$value.'%';
         
        }
         
        
    $city='';
        foreach (
    $arcity as $value)
        {
           if (
    $value=='%') continue;
           
    $city.=$value.'%';
         
        }
         
        
    $sql mysql_query("SELECT * FROM demo WHERE Autore LIKE '%$Nome%' AND Titolo LIKE '%$Numero%' AND cit LIKE '%$city%' ORDER BY Autore LIMIT $start$per_page") or die(mysql_error());
         
         
        
                

        
    $i 0; while($row=mysql_fetch_array($sql)){
            
    $i++;
            
            echo 
    "<tr>";
            echo 
    "<td width='auto' bgcolor=”#FF0000 ″>" """[b]"  $i """<b/>""</td>";
            echo 
    "<td width='auto'>" "" $row[1] . "" "</td>";
            echo 
    "<td width='auto'>"$row[2] . "</td>";
                
            echo 
    "<td><a href=\"".$row[3]."\">".$row[3]."</a></td>";
            echo 
    "</tr>";
        
        
        }
        
        if (
    $pages >= && $page <= $pages) {
        for (
    $x=1$x<=$pages$x++) {
            echo (
    $x == $page) ? '[b][url="?page='.$x.'"]'.$x.'[/url][/b] ' '[url="?page='.$x.'"]'.$x.'[/url] ';
        }
    }
        
        
    mysql_close();
        
    ?>

  2. #2
    Ciao,
    quell'errore (che non è proprio un errore, ma un notifica) ti sta sempliceemente segnalando che le variabili
    $_POST['Nome'];
    $_POST['Numero'];
    $_POST['city'];

    sono vuote....

    ora i casi sono due:
    1) non dovrebbero essere vuote a quel punto dello script, quondi c'è un errore logico da qualche parte a monte che va corretto
    2) è normale che siano vuote, ma allora è meglio gestire quell'eventualità, per esmepio con if(isset())

    più o meno così:
    Codice PHP:
    if(isset($_POST['Nome'])
      
    $Nome str_replace(' ''%'$_POST $_POST['Nome']); 
    else
      
    $Nome ''//qui decidi tu quale deve essere il default se  $_POST['Nome'] è vuoto 
    infine, per quanto riguarda il suggerimento di disabilitare le notifiche è - a mio avviso - errato in un ambiente di sviluppo (ha senso solo in ambiente di produzione), perché le notifiche ti segnalano situazioni anomale che o sono causate da errori a monte (che quindi vanno corretti) o sono volute, ma in quel caso vanno alemno gestisti , come nell'esempio che ti ho fatto.


  3. #3
    se provo a sostituire

    Codice PHP:
    $Nome str_replace(' ''%'$_POST['Nome']); 
    con

    Codice PHP:
    if(isset($_POST['Nome'])   
    $Nome str_replace(' ''%'$_POST $_POST['Nome']); 
    else   
    $Nome ''
    mi restituisce questo errore

    Parse error: syntax error, unexpected '$Nome' (T_VARIABLE) in C:\xampp\htdocs\test2\test\zzz\pagination\cerca6.p hp on line 87

    Ma dove - in che punto del mio codice - devo inserire il tuo codice? Che codice devo sostituire?

  4. #4
    ma dai c'era un errore di copia incolla, no?

    $_POST $_POST['Nome'])

    due volte post...


    e poi scusa io ti solo spiegato la logica dell'errore che ricevevi e ti ho fatto un esempio...
    ma sei tu che ha scritto quel codice (credo!) e saprai tu dove devi mettere if(isset())
    ...sempre che tu lo debba mattere!!!

  5. #5
    grazie per le indicazioni.
    Anche se tolgo un $_POST mi continua a dare l'errore:

    Parse error: syntax error, unexpected '$Nome' (T_VARIABLE)

    In effetti l'ho scritto io il codice e ho capito il funzionamento di if(isset() e so che quell'errore indica che la variabile è vuota, ma non capisco dove inserire if(isset()e perchè mi dà un errore di sintassi.

    il mio codice lo trovi nel primo post, sopra. Scusa se ti chiedo, ma non sono un esperto, sto cercando di capire meglio che posso.

  6. #6
    ad esempio se questa riga è davvero scritta così è un errore:
    Codice PHP:
    die('Can'use ' . DB_NAME . '' . mysql_error()); 
    al massimo avesti dovuto scrivere così:
    Codice PHP:
    die("Can't use " DB_NAME ": " mysql_error()); 

  7. #7
    Io però non capisco perchè le variabili sono considerate vuote tanto da restituirmi Undefined index
    Mi sembra di averle valorizzate nel modo giusto

    Questo errore capita non quando cerco una parola o un termine mediante i form, ma solo quando cambio pagina, ovvero usando l'impaginazione.

    Possibile che l'impaginazione crei qualche conflitto?

    Nel codice originale dell'impaginazione

    Codice PHP:
    while($row=mysql_fetch_array($sql)) 
    era

    Codice PHP:
    while($row=mysql_fetch_assoc($sql)) 
    ma se provavo a inserire questa variante mi dava vari errori di Undefined offset

    Ho cambiato solo questo, il resto è uguale.
    Noti qualcos' altro di errato nel codice?

  8. #8
    Ho risolto il problema (per fortuna).
    La notifica di Undefined Index non veniva mostrata più da quando ho "traslocato" da localhost su un server di altervista.

    Proprio per questo non capisco ancora come mai in localhost veniva mostrato questo errore, ma per il momento va bene cosi.

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.