Rezultate 1 la 10 din 10

Subiect: Cod php introducere prin formular date in tabel mysql

Afișare hibrid

  1. #1
    Avatarul lui websiteanunturi
    websiteanunturi este deconectat Junior SeoPedia
    Reputatie:
    0
    Data înscrierii
    14th March 2011
    Posturi
    119
    Putere Rep
    0


    Implicit Cod php introducere prin formular date in tabel mysql

    Va rog sa-mi explicati si mie de ce nu-mi functioneaza urmatorul cod creat:
    Am revizuit codul de cel putin 10 ori si nu-mi dau seama unde greasesc.
    Cod:
    <?php
    include('../include/db.php');
    
    if (isset($_POST['sub']))
    		{
    		if ($_POST['categorie']=="")  echo "Alege o categorie"; 
    		elseif (strlen(trim($_POST['titlu']))<1) echo "Scrie titlu"; 
    		else {
    			  $anunt=mysql_query("insert into anunturi (categorie,titlu) values ('{$_POST['categorie']},{$_POST['titlu']}')");
    			  }
    		}
    
    ?>
    <form method="post" action="adauga-anunt.php" >
    Insereaza titlul<br />
    <input type="text" name="titlu" value=""><br /><br />
    <select name="categorie" >
    					<option  value="">Selecteaza categoria</option>
                                            <?php
    					$categorie=mysql_query("select * from categorii order by categorie asc");
    					while($categ = mysql_fetch_array($categorie))
    					{
    					echo"<option  value=\"$categ[1]\">$categ[1]</option>";
    					}
    					?>
                                          
    </select>
    <input type="submit" name="sub" value="Trimite">
    
    </form>
    Am o baza de date si vreau sa introduc in tabelul "anunturi" valori preluate printr-un formular cu un input si un select
    Coloanele din tabel sunt: id, titlu,categorie

  2. #2
    Avatarul lui IoanDorneanu
    IoanDorneanu este deconectat Membru SeoPedia
    Reputatie:
    32
    Data înscrierii
    16th April 2009
    Locaţie
    Bucuresti
    Posturi
    112
    Putere Rep
    32


    2 out of 2 members found this post helpful.

    Implicit

    Ai o eroare la query-ul de aici:
    $anunt=mysql_query("insert into anunturi (categorie,titlu) values ('{$_POST['categorie']},{$_POST['titlu']}')");
    Mai exact nu ai inchis bine ghilimelele.

    Incearca codul asta pentru insert:
    $anunt = mysql_query("INSERT INTO `anunturi` (`categorie`, `titlu`) values ('".$_POST['categorie']."', '".$_POST['titlu']."')");
    Dar atentie la ghilimele.

    Numai bine!

  3. #3
    Avatarul lui websiteanunturi
    websiteanunturi este deconectat Junior SeoPedia
    Reputatie:
    0
    Data înscrierii
    14th March 2011
    Posturi
    119
    Putere Rep
    0


    Implicit

    ai avut dreptate, trebuie sa fiu mai atent cu aceste carectere pana nu am dat copy>paste la ce ai scris nu am resusit

  4. #4
    Avatarul lui Toto
    Toto este deconectat Ambasador
    Reputatie:
    48
    Data înscrierii
    14th June 2005
    Locaţie
    Bucuresti
    Posturi
    1.905
    Putere Rep
    48


    1 out of 1 members found this post helpful.

    Implicit

    Eu as pune ceva de genul:
    $categorie = strip_tags($_POST['categorie']);
    $titlu = strip_tags($_POST['titlu']);
    $anunt = mysql_query('INSERT INTO `anunturi` (`categorie`, `titlu`) values ('.$categorie.', '.$titlu.')');
    Tre sa si cureti variabilele trimise din formular ... Vezi ce face strip_tags() aici: PHP: strip_tags - Manual

    Daca nici asa nu merge, verifica ce eroare ai... Poate nu se conecteaza la baza de date...

    verifici modificand linia
    $anunt = mysql_query('INSERT INTO `anunturi` (`categorie`, `titlu`) values ('.$categorie.', '.$titlu.')');
    cu
    $anunt = mysql_query('INSERT INTO `anunturi` (`categorie`, `titlu`) values ('.$categorie.', '.$titlu.')') or die(mysql_error());
    Ultima modificare făcută de Toto; 13th December 2012 la 11:42. Motiv: completari

  5. #5
    Avatarul lui websiteanunturi
    websiteanunturi este deconectat Junior SeoPedia
    Reputatie:
    0
    Data înscrierii
    14th March 2011
    Posturi
    119
    Putere Rep
    0


    Implicit

    Citat Postat în original de Toto Vezi Post
    Eu as pune ceva de genul:


    Tre sa si cureti variabilele trimise din formular ... Vezi ce face strip_tags() aici: PHP: strip_tags - Manual

    Daca nici asa nu merge, verifica ce eroare ai... Poate nu se conecteaza la baza de date...

    verifici modificand linia
    cu

    Foarte buna completarea ta!

    Incep sa invat

  6. #6
    Avatarul lui puthre
    puthre este deconectat Ambasador
    Reputatie:
    83
    Data înscrierii
    21st February 2011
    Locaţie
    București
    Posturi
    2.154
    Putere Rep
    83


    Implicit

    Citat Postat în original de Toto Vezi Post
    Eu as pune ceva de genul:
    $categorie = strip_tags($_POST['categorie']);
    $titlu = strip_tags($_POST['titlu']);
    $anunt = mysql_query('INSERT INTO `anunturi` (`categorie`, `titlu`) values ('.$categorie.', '.$titlu.')');
    Nu e suficient, ca daca $titlu e "');drop table anunturi;/*" s-a terminat cu jucaria ta.
    Caut cu jingle.ro.

  7. #7
    Avatarul lui websiteanunturi
    websiteanunturi este deconectat Junior SeoPedia
    Reputatie:
    0
    Data înscrierii
    14th March 2011
    Posturi
    119
    Putere Rep
    0


    Implicit

    Citat Postat în original de puthre Vezi Post
    Nu e suficient, ca daca $titlu e "');drop table anunturi;/*" s-a terminat cu jucaria ta.
    Stiu ca mai trebuiesc facute si aceste verificari, momentan lucrez la partea de admin unde doar eu am acces...si oricum ceea ce fac eu acum este doar cu scopul de a invatat php, sar momentan peste aceste verificari pentru a nu ma cmplica.

    Codul meu a ajuns la urmatoarea forma:
    Cod:
    <?php
    include('../include/db.php');
    
    if (isset($_POST['sub']))
    { 
    		//Definire  array cu erorile survenite.
    		$errori=array();
            		
    		$categorie	=	$_POST['categorie'];
    		$titlu =	strip_tags(trim($_POST['titlu']));
    		$detaliianunt = strip_tags(trim($_POST['detaliianunt'], '<br><br/>'));
    		$pret = strip_tags(trim($_POST['pret']));
    		$moneda = $_POST['moneda'];
    		$nume = strip_tags(trim($_POST['nume']));
    		$telefon = strip_tags(trim( $_POST['telefon']));
    		$mail = strip_tags(trim($_POST['mail']));
    		
    		if ($_POST['categorie']=="")  {$errori[] = 'Alege o categorie. <br>'; }
    		if (strlen($_POST['titlu'])<1) {$errori[] = 'Scrie ceva in campul titlu <br>'; }
    		if (strlen($_POST['titlu'])>80) {$errori[] = 'Titlu trebuie sa fie mai mic de 80 caractere <br>'; }
    		if (strlen($_POST['detaliianunt'])<10) {$errori[] =  'Scrie o descriere a anuntului de minim 10 caractere<br>';}
    		if (strlen($_POST['detaliianunt'])>1000) {$errori[] = 'Descrierea anuntului are mai mult de 1000 caractere <br>'; }
    		if (strlen($_POST['pret'])<1)  {$errori[] =  'Scrie ceva la campul pret<br>'; }
    		if (strlen($_POST['pret'])>10) {$errori[] =  'Pretul nu poate avea mai mult de 10 caractere<br>';} 
    		if (!is_numeric($_POST['pret'])) {$errori[] =  'Pretul trebuie scris in cifre<br>'; }
    		if ($_POST['moneda']=="") {$errori[] = 'Selecteaza moneda<br>'; }
    		if (strlen($_POST['nume'])<1) {$errori[] = 'Campul nume nu poate fi gol<br>'; }
    		if (strlen($_POST['nume'])>20) {$errori[] = 'Numele nu poate depasi 20 caractere<br>'; }
    		if (strlen($_POST['telefon'])<1) {$errori[] = 'Campul telefon nu poate fi gol<br>'; }
    		if (strlen($_POST['telefon'])>12) {$errori[] = 'Telefonul nu poate depasi 12 caractere<br>'; }
    		if (!is_numeric($_POST['telefon'])) {$errori[] =  'Telefonul trebuie scris in cifre<br>'; }
    		if (strlen($_POST['mail'])<1) {$errori[] = 'Campul mail nu poate fi gol<br>'; }
    		if (strlen($_POST['mail'])>30) {$errori[] = 'Mail-ul nu poate depasi 30 caractere<br>'; }
    		
    		if (!empty($errori))
    			{
    			foreach($errori as $eroare => $valoare_eroare) { echo '<div style=" background-color:#FF9966; color: #0000CC;  ">'.$valoare_eroare.'</div>';}
    			}
    		
    		else{     
        		//Nu sunt erori, facem INSERT-ul     
              	$anunt = mysql_query("INSERT INTO `anunturi` (`categorie`, `titlu` ,`detaliianunt`,`pret`,`moneda`, `nume`, `telefon`, `mail`) values ('.$categorie.', '.$titlu.', '.$detaliianunt.', '.$pret.', '.$moneda.', '.$nume.', '.$telefon.', '.$mail.')") or die(mysql_error());
              
                 if($anunt)
    				 	  {
                      	   echo 'Anuntul a fost adaugat.';
                     	  }
       			}
    		
    }
    
    ?>
    <div style="width:800px; color: #0000CC; border:#0033CC solid 1px; ">
    
    <form method="post" action="adauga-anunt.php" >
    Categoria <br />
    <select name="categorie" >
    										<option  value="">Selecteaza categoria</option>
                                            <?php
    										$categorie=mysql_query("SELECT * FROM `categorii` order by `categorie` asc") or die(mysql_error());
    										while($categ = mysql_fetch_array($categorie))
    										{
    										echo"<option  value=\"$categ[1]\">$categ[1]</option>";
    										}
    										?>
                                          
    </select><br /><br />
    Insereaza titlul<br />
    <input type="text" name="titlu" value=""><br /><br />
    Detalii anunt:<br />
    <textarea name="detaliianunt" rows="10" cols="20"></textarea><br /><br />
    Pret:<br />
    <input name="pret" value="" /> 
    <select name="moneda">
    <option value="">Moneda</option>
    <option name="RON" value="RON">RON</option>
    <option name="EURO" value="EURO">EURO</option>
    <option name="USD" value="USD">USD</option>
    </select><br />
    <b>Date de contact:</b>
    <hr />
    Nume complet:<br />
    <input name="nume" value="" /><br />
    Telefon:<br />
    <input name="telefon" value="" /><br />
    Email:<br />
    <input name="mail" value="" /><br />
    <input type="submit" name="sub" value="Trimite">
    
    </form>
    functioneaza perfect, problema e acum implementarea uni design.

    Vreau sa-l aranjez intr-un html....intrebare: cum fac sa-mi afiseze mesajele de erroare sub meniu.

  8. #8
    Avatarul lui Toto
    Toto este deconectat Ambasador
    Reputatie:
    48
    Data înscrierii
    14th June 2005
    Locaţie
    Bucuresti
    Posturi
    1.905
    Putere Rep
    48


    Implicit

    Iti dai seama ca nu e de ajuns... A fost mai mult o atentionare sa fie atent si la lucrurile alea...

    On topic: In loc sa dai echo acolo, pui mesajul intr-o variabila si dai echo la variabila aia unde vrei tu ...

    Ceva de genul:
    echo 'Anuntul a fost adaugat.';
    inlocuiesti cu:
    $mesaj = 'Anuntul a fost adaugat.';
    Si apoi, mai jos, unde vrei tu dai echo $mesaj ...

  9. #9
    Avatarul lui websiteanunturi
    websiteanunturi este deconectat Junior SeoPedia
    Reputatie:
    0
    Data înscrierii
    14th March 2011
    Posturi
    119
    Putere Rep
    0


    Implicit

    Citat Postat în original de Toto Vezi Post
    On topic: In loc sa dai echo acolo, pui mesajul intr-o variabila si dai echo la variabila aia unde vrei tu ...

    Ceva de genul:

    inlocuiesti cu:


    Si apoi, mai jos, unde vrei tu dai echo $mesaj ...
    Pentru acest mesaj e simplu, eu ma refer la mesajele de verificare pentru fiecare camp.

    sunt deja stocate in variabila $valoare_eroare inainte de insert, daca incerc sa apelez acesta variabila mai jos la inceputul formularului imi afiseaza errorile dar pe rand (daca nu au fost completate doua campuri imi afiseaza erroare pentru primul camp, daca o rezolv si dau trimite imi apare si urmatoarea erroare)

    Eu vreau sa-mi afiseze errorile pentru toate campurile ce nu au fost completate. Ba chiar mai mult as vrea daca se poate sa distribui fiecare erroare campului respectiv (asta probabil se va face cu un array.

    Multumesc mult de ajutor!

  10. #10
    Avatarul lui Toto
    Toto este deconectat Ambasador
    Reputatie:
    48
    Data înscrierii
    14th June 2005
    Locaţie
    Bucuresti
    Posturi
    1.905
    Putere Rep
    48


    Implicit

    Documenteaza-te despre ajax, si poti face verificarile chiar inainte sa dea "submit" la formular... Si desigur sa afisezi mesajul de eroare unde si cum vrei ...

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Răspunsuri: 15
    Ultimul Post: 18th September 2012, 20:00
  2. MYSQL select din 2 tabele cand a doua tabela n-are date
    De Popescu Marian în forumul Server side
    Răspunsuri: 8
    Ultimul Post: 17th February 2011, 11:49
  3. Răspunsuri: 17
    Ultimul Post: 19th December 2010, 08:54
  4. Transfer din Tabel CSV in baza de date MySQL
    De Iulian în forumul Server side
    Răspunsuri: 7
    Ultimul Post: 13th December 2009, 13:59
  5. php/mysql-id in baza de date,dar afisare text
    De evolution în forumul Server side
    Răspunsuri: 6
    Ultimul Post: 12th September 2009, 12:17

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •