Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema form

  1. #1

    Problema form

    Salve a tutti, in rete ho trovato una rubrica telefonica sviluppata in php.
    Dopo aver installato easy php configurato il db accedo ai file e srgono un po di errori.
    Alcuni riesco a sistemare altri no.
    Non sono ptratico di php.
    Allora nel modulo di ricerca ho queste due notifiche

    Notice: Undefined index: cerca in C:\Programmi\EasyPHP-5.3.3\www\rubrica\cerca.php on line 6

    Notice: Undefined index: dato in C:\Programmi\EasyPHP-5.3.3\www\rubrica\cerca.php on line 7

    $cerca=$_POST['cerca'];
    $dato=$_POST['dato'];

    del resto poi funziona la ricerca la fa e mostra i risultati.(ho inserito manualmente i dati nel db)
    Invece la funzione inserimento non va proprio.

    Notice: Undefined index: nome in C:\Programmi\EasyPHP-5.3.3\www\rubrica\insert.php on line 14

    Notice: Undefined index: cognome in C:\Programmi\EasyPHP-5.3.3\www\rubrica\insert.php on line 15

    Notice: Undefined index: tel_fisso in C:\Programmi\EasyPHP-5.3.3\www\rubrica\insert.php on line 16

    Notice: Undefined index: tel_cell in C:\Programmi\EasyPHP-5.3.3\www\rubrica\insert.php on line 17

    Notice: Undefined index: indirizzo in C:\Programmi\EasyPHP-5.3.3\www\rubrica\insert.php on line 18

    Notice: Undefined index: citta in C:\Programmi\EasyPHP-5.3.3\www\rubrica\insert.php on line 19

    Notice: Undefined index: professione in C:\Programmi\EasyPHP-5.3.3\www\rubrica\insert.php on line 20

    Notice: Undefined index: email in C:\Programmi\EasyPHP-5.3.3\www\rubrica\insert.php on line 21
    Il nome è un campo obbligatorio

    Notice: Undefined index: check in C:\Programmi\EasyPHP-5.3.3\www\rubrica\insert.php on line 31

    questo è il codice corrispondente

    $nome=addslashes($_POST['nome']);
    $cognome=addslashes($_POST['cognome']);
    $tel_fisso=addslashes($_POST['tel_fisso']);
    $tel_cell=addslashes($_POST['tel_cell']);
    $indirizzo=addslashes($_POST['indirizzo']);
    $citta=addslashes($_POST['citta']);
    $professione=addslashes($_POST['professione']);
    $email=addslashes($_POST['email']);


    if($_POST['check']=="0"){


    qualche aiuto?

    grazie mille

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    il problema è che quelle variabili (o meglio quegli indici dell'array POST) non sono stati definiti fino a che non vengono inviati dal form .... quindi hai due soluzioni:

    Codice PHP:
    if(isset($_POST['nome'])){
    $nome=addslashes($_POST['nome']);
    $cognome=addslashes($_POST['cognome']);
    $tel_fisso=addslashes($_POST['tel_fisso']);
    $tel_cell=addslashes($_POST['tel_cell']);
    $indirizzo=addslashes($_POST['indirizzo']);
    $citta=addslashes($_POST['citta']);
    $professione=addslashes($_POST['professione']);
    $email=addslashes($_POST['email']);

    .... bisognerebbe vedere il resto del codice per capire se può andare come soluzione, ma il principio è che prima di usare quegli indici di POST controlli se sono settati (ti basta controllare se è settato nome, perchè vuol dire che il form è stato inviato e quindi sono settati tutti).


    ...... poi ci sarebbe la soluzione più 'barbara' .... ovvero quella di disabilitare le notifiche.

    vai su php.ini, trovi la direttiva display_error=On e la cambi con display_error=Off.

    Questa seconda scelta non piacerà a molti, ma se non si ha la necessità di avere un codice 'strapulito' non è da disdegnare.


  3. #3
    ok posto il codice
    questo è il file ricerca

    <TITLE>Cerca Contatto - </TITLE>
    <?php

    include "index.html";

    $cerca=$_POST['cerca'];
    $dato=$_POST['dato'];

    if($cerca=="zz"){echo "<font color=\"red\">Ricordati che devi selezionare dove cercare</font>
    ";}

    include "connessione.php";
    $server = "localhost";
    $username = "alfredo";
    $password = "alfredo";
    $database = "rubrica";
    $db = mysql_connect("$server", "$username", "$password");
    mysql_select_db("$database",$db);
    echo "<table width=\"100%\">";
    echo "<tr>";
    echo "<form name=cerca action='' method=post>";
    echo "<td >Dato da cercare:<input type=\"text\" name=\"dato\">";
    echo "in <select size=1 name=\"cerca\">
    <option value=\"zz\" >seleziona</option>
    <option value=\"nome\">Nome</option>
    <option value=\"cognome\">Cognome</option>
    <option value=\"tel_fisso\">Telefono Fisso</option>
    <option value=\"tel_cell\">Telefono Cellulare</option>
    <option value=\"indirizzo\">Indirizzo</option>
    <option value=\"città\">Città</option>
    <option value=\"professione\">Professione</option>
    <option value=\"email\">Email</option>
    </select> ";
    echo "<tr><td><input type=\"submit\" value=\"Invia\" name=\"rubrica\">";
    echo "<input type=\"reset\" value=\"RESET\" name=\"rubrica\"></FORM></td></tr></TABLE>";
    if($cerca!="zz" and $dato!=""){
    $cerca=mysql_query("Select * from contatti where $cerca like '%$dato%'");
    echo "
    I risultati ottenuti:

    ";
    while ($data = mysql_fetch_object($cerca))
    {
    $nome=stripslashes($data->nome);
    $cognome=stripslashes($data->cognome);
    $tel_fisso=stripslashes($data->tel_fisso);
    $tel_cell=stripslashes($data->tel_cell);
    $indirizzo=stripslashes($data->indirizzo);
    $citta=stripslashes($data->citta);
    $professione=stripslashes($data->professione);
    $email=stripslashes($data->email);
    echo "
    Nome: $nome
    ";
    if($cognome!=""){echo"Cognome: $cognome
    ";}
    if($tel_fisso!=""){ echo"Telefono fisso: <font color=orange>$tel_fisso</font><img src=\"tel.jpg\" alt=\"Telefono fisso\">
    ";}
    if($tel_cell!=""){ echo"Telefono cellulare: <font color=blue>$tel_cell</font> <img src=\"cell.jpg\" alt=\"CELLULARE\">
    ";}
    if($citta!=""){ echo"Città: $citta
    ";}
    if($indirizzo!=""){ echo"Indirizzo: $indirizzo
    ";}
    if($email!=""){ echo"Email: <font color=green>$email</font> <img src=\"email.jpg\" alt=\"Indirizzo Email\">
    ";}
    if($professione!=""){ echo"Professione: $professione
    ";}
    $immagine = mysql_query("Select Id,Nome,Descrizione from file_binari where id_contatto='$data->id'");
    while ($pic = mysql_fetch_object($immagine)){
    $pic->Descrizione=stripslashes($pic->Descrizione);
    if($pic->Id > 0){echo "<a href=\"actions.php?action=view&Id=$pic->Id\" target=\"_blank\">$pic->Nome <img src=\"foto.jpg\"></a> $pic->Descrizione";}
    }
    echo "

    ";
    }
    }

    ?>

    ed ecco inserimento

    <title>Inserisci</title>
    <?php

    include "connessione.php";
    include "index.html";
    $server = "localhost";
    $username = "alfredo";
    $password = "alfredo";
    $database = "rubrica";
    $db = mysql_connect($server, $username, $password);
    mysql_select_db($database,$db);


    if($nome==""){echo "<font color=\"red\"><tr><td>Il nome è un campo obbligatorio</td></tr></font>
    ";}
    else{

    $insert=mysql_query("insert into contatti (nome,cognome,tel_fisso,indirizzo,città,profession e,tel_cell,email) VALUES (
    '$nome','$cognome','$tel_fisso','$indirizzo','$cit ta','$professione','$tel_cell','$email')");
    echo "
    <font color=\"red\">Inserito con successo</font>
    ";
    $valore =mysql_insert_id();

    }
    if($_POST['check']=="0"){

    // MEMORIZZIAMO NELLA VARIABILE $data IL CONTENUTO DEL FILE
    $data = addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"]));
    $_POST["Descrizione"]=addslashes($_POST["Descrizione"]);
    // ESEGUIAMO LA QUERY DI INSERIMENTO
    $result = @mysql_query("INSERT INTO file_binari (Descrizione, DatiBinari, Nome, Size, Type,id_contatto)
    VALUES ('" . $_POST["Descrizione"] . "','$data','" . $_FILES["file_binario"]["name"] . "',
    '" . $_FILES["file_binario"]["size"] . "','" . $_FILES["file_binario"]["type"] . "','$valore')")
    or die("Query di inserimento fallita !");

    // ESITO POSITIVO
    echo "Il file " . basename($_FILES["file_binario"]["name"]) . " è stato correttamente inserito nel Database.";
    }
    echo "<table width=\"100%\">";
    echo "<tr>";
    echo "<form name=rubrica action='' method=post enctype=\"multipart/form-data\">";
    echo "<td width=\"12%\">Nome:</td><td><input type=\"text\" name=\"nome\"></td></tr>";
    echo "<tr><td width=\"12%\">Cognome:</td><td><input type=\"text\" name=\"cognome\"></td></tr> ";
    echo "<tr><td width=\"12%\">Telefono fisso:</td><td><input type=\"text\" name=\"tel_fisso\"></td></tr> ";
    echo "<tr><td width=\"12%\">Telefono cellulare:</td><td><input type=\"text\" name=\"tel_cell\"></td></tr> ";
    echo "<tr><td width=\"12%\">Indirizzo:</td><td><input type=\"text\" name=\"indirizzo\"></td></tr> ";
    echo "<tr><td width=\"12%\">Città:</td><td><input type=\"text\" name=\"citta\"></td></tr> ";
    echo "<tr><td width=\"12%\">Professione:</td><td><input type=\"text\" name=\"professione\"></td></tr> ";
    echo "<tr><td width=\"12%\">Email:</td><td><input type=\"text\" name=\"email\"></td></tr> ";
    echo"<tr>
    <td valign=\"top\">Descrizione foto </td>

    <td><textarea name=\"Descrizione\" cols=\"40\" rows=\"5\"></textarea></td>
    </tr>
    <tr>
    <td>File</td>
    <td><input name=\"check\" type=checkbox value=0>Checka il quadrato per caricare immagine
    <input type=\"file\" name=\"file_binario\" size=\"40\"></td>
    </tr>
    <tr>";
    echo "<tr><td><input type=\"submit\" value=\"Invia\" name=\"rubrica\">";
    echo "<input type=\"reset\" value=\"RESET\" name=\"invia\"></FORM></td></tr></TABLE>";

    include "basso.php";
    ?>

  4. #4
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Scusa ma in tutta sta roba il pezzo di codice di insert.php che hai postato all'inizio dove è?

    per quanto riguarda il file cerca.php ti basta correggere le due righe iniziali:

    Codice PHP:
    if(isset($_POST['cerca'])){$cerca=$_POST['cerca'];}
    if(isset(
    $_POST['dato'])){$dato=$_POST['dato'];} 
    P.S. se fossi in te correggerei il post cancellando le credenziali di accesso al DB ..... anche se magari questo è solo un esercizio, non mi sembra il caso di comunicarle al mondo intero.

  5. #5
    ecco il codice del file inserimento
    ed ecco inserimento

    <title>Inserisci</title>
    <?php

    include "connessione.php";
    include "index.html";
    $server = "localhost";
    $username = "alfredo";
    $password = "alfredo";
    $database = "rubrica";
    $db = mysql_connect($server, $username, $password);
    mysql_select_db($database,$db);


    if($nome==""){echo "<font color=\"red\"><tr><td>Il nome è un campo obbligatorio</td></tr></font>
    ";}
    else{

    $insert=mysql_query("insert into contatti (nome,cognome,tel_fisso,indirizzo,città,profession e,tel_cell,email) VALUES (
    '$nome','$cognome','$tel_fisso','$indirizzo','$cit ta','$professione','$tel_cell','$email')");
    echo "
    <font color=\"red\">Inserito con successo</font>
    ";
    $valore =mysql_insert_id();

    }
    if($_POST['check']=="0"){

    // MEMORIZZIAMO NELLA VARIABILE $data IL CONTENUTO DEL FILE
    $data = addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"]));
    $_POST["Descrizione"]=addslashes($_POST["Descrizione"]);
    // ESEGUIAMO LA QUERY DI INSERIMENTO
    $result = @mysql_query("INSERT INTO file_binari (Descrizione, DatiBinari, Nome, Size, Type,id_contatto)
    VALUES ('" . $_POST["Descrizione"] . "','$data','" . $_FILES["file_binario"]["name"] . "',
    '" . $_FILES["file_binario"]["size"] . "','" . $_FILES["file_binario"]["type"] . "','$valore')")
    or die("Query di inserimento fallita !");

    // ESITO POSITIVO
    echo "Il file " . basename($_FILES["file_binario"]["name"]) . " è stato correttamente inserito nel Database.";
    }
    echo "<table width=\"100%\">";
    echo "<tr>";
    echo "<form name=rubrica action='' method=post enctype=\"multipart/form-data\">";
    echo "<td width=\"12%\">Nome:</td><td><input type=\"text\" name=\"nome\"></td></tr>";
    echo "<tr><td width=\"12%\">Cognome:</td><td><input type=\"text\" name=\"cognome\"></td></tr> ";
    echo "<tr><td width=\"12%\">Telefono fisso:</td><td><input type=\"text\" name=\"tel_fisso\"></td></tr> ";
    echo "<tr><td width=\"12%\">Telefono cellulare:</td><td><input type=\"text\" name=\"tel_cell\"></td></tr> ";
    echo "<tr><td width=\"12%\">Indirizzo:</td><td><input type=\"text\" name=\"indirizzo\"></td></tr> ";
    echo "<tr><td width=\"12%\">Città:</td><td><input type=\"text\" name=\"citta\"></td></tr> ";
    echo "<tr><td width=\"12%\">Professione:</td><td><input type=\"text\" name=\"professione\"></td></tr> ";
    echo "<tr><td width=\"12%\">Email:</td><td><input type=\"text\" name=\"email\"></td></tr> ";
    echo"<tr>
    <td valign=\"top\">Descrizione foto </td>

    <td><textarea name=\"Descrizione\" cols=\"40\" rows=\"5\"></textarea></td>
    </tr>
    <tr>
    <td>File</td>
    <td><input name=\"check\" type=checkbox value=0>Checka il quadrato per caricare immagine
    <input type=\"file\" name=\"file_binario\" size=\"40\"></td>
    </tr>
    <tr>";
    echo "<tr><td><input type=\"submit\" value=\"Invia\" name=\"rubrica\">";
    echo "<input type=\"reset\" value=\"RESET\" name=\"invia\"></FORM></td></tr></TABLE>";

    include "basso.php";
    ?>



    Non fa nulla per la password, cmq verrà cambiata e poi il programma girera in locale su un pc.

  6. #6
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    questo se non sbaglio mi sembra identico a quello che avevi già postato, il problema è che non c'è questo pezzo di codice:

    Codice PHP:
    $nome=addslashes($_POST['nome']);
    $cognome=addslashes($_POST['cognome']);
    $tel_fisso=addslashes($_POST['tel_fisso']);
    $tel_cell=addslashes($_POST['tel_cell']);
    $indirizzo=addslashes($_POST['indirizzo']);
    $citta=addslashes($_POST['citta']);
    $professione=addslashes($_POST['professione']);
    $email=addslashes($_POST['email']); 
    che è quello che giustamente tu all'inizio hai individuato come il responsabile del problema:

    .... quindi se il file insert.php è quello che hai postato adesso, non c'è da fare nienete e non ti dovrebbe dare nessuno degli errori che hai segnalato in apertura della discussione.

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.