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

    Notice: Undefined index

    Ciao a tutti,
    so che sicuramente è una banalità ma ancora non mi sono trovato davanti ad un problema simile. Quando apro la pagina, mi restituisc equesto messaggio di errore:
    codice:
    Notice: Undefined index: searching in /data/vhosts....
    
    Notice: Undefined index: find in /data/vhosts....

    Se eseguo lo script mi restituisce errore 404


    [PHP]
    <h2>Search</h2>
    <form name="search" method="post" action="<?=$PHP_SELF?>">
    Seach for: <input type="text" name="find" /> in
    <Select NAME="field">
    <Option VALUE="fname">First Name</option>
    <Option VALUE="lname">Last Name</option>
    <Option VALUE="info">Profile</option>
    </Select>
    <input type="hidden" name="searching" value="yes" />
    <input type="submit" name="search" value="Search" />
    </form>

    <?
    $searching = $_REQUEST['searching'];
    $find = $_REQUEST['find'];

    //This is only displayed if they have submitted the form
    if ($searching =="yes")
    {
    echo "<h2>Results</h2>

    ";

    //If they did not enter a search term we give them an error
    if ($find == "")
    {
    echo "

    You forgot to enter a search term";
    exit;
    }

    // Otherwise we connect to our Database
    mysql_connect("mysql.yourhost.com", "user_name", "password") or die(mysql_error());
    mysql_select_db("database_name") or die(mysql_error());

    // We preform a bit of filtering
    $find = strtoupper($find);
    $find = strip_tags($find);
    $find = trim ($find);

    //Now we search for our search term, in the field the user specified
    $data = mysql_query("SELECT * FROM users WHERE upper($field) LIKE'%$find%'");

    //And we display the results
    while($result = mysql_fetch_array( $data ))
    {
    echo $result['fname'];
    echo " ";
    echo $result['lname'];
    echo "
    ";
    echo $result['info'];
    echo "
    ";
    echo "
    ";
    }

    //This counts the number or results - and if there wasn't any it gives them a little message explaining that
    $anymatches=mysql_num_rows($data);
    if ($anymatches == 0)
    {
    echo "Sorry, but we can not find an entry to match your query

    ";
    }

    //And we remind them what they searched for
    echo "Searched For: " .$find;
    }
    ?>


    Mi potreste aiutare spiegandomi dove sta il problema?

    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Intanto usa $_POST['find'] e $_POST['searching'], non usare $_REQUEST.

    Le assegnazioni
    $searching = ...
    $find = ...

    vengono tentate anche la prima volta che accedi alla pagina, perché non fai un controllo per vedere se il form è stato inviato o no, quindi ti appaiono i messaggi d'errore, perché la prima volta che apri la pagina find e searching non esistono.

    tutta la parte che elabora i dati del form la devi mettere all'interno di un if, ad esempio
    Codice PHP:
    if (isset($_POST['searching']))
    {
        
    //qui il codice


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