Pentru cei care cunosc php. [REZOLVAT]

Discutii despre tot ce nu se incadreaza in celelalte categorii.

Moderators: Moderatori ajutatori, Moderatori

Post Reply
*kaMazZz*
Membru, skill +1
Membru, skill +1
Posts: 369
Joined: 27 Jun 2012, 18:21
Detinator Steam: Da
CS Status: Munca,Munca si iar Munca.
SteamID: dj_bob0
Reputatie: Nume anterior: kamaz
Location: [email protected]
Has thanked: 4 times
Been thanked: 19 times
Contact:

08 Aug 2014, 18:13

Salut ma tot confrunt cu o asa zisa eroare in php.

am urmatorul cod
| Afiseaza codul
$con=mysqli_connect("","",","");
            // Check connection
            if (mysqli_connect_errno()) {
              echo "Failed to connect to MySQL: " . mysqli_connect_error();
            }

            // escape variables for security
            $nume = mysqli_real_escape_string($con, $_POST['nume']);
            $prenume = mysqli_real_escape_string($con, $_POST['prenume']);
            $email = mysqli_real_escape_string($con, $_POST['email']);
            $nrtel = mysqli_real_escape_string($con, $_POST['nrtel']);
            $serviciu = mysqli_real_escape_string($con, $_POST['serviciu']);
            $domeniu = mysqli_real_escape_string($con, $_POST['domeniu']);
            $perioada = mysqli_real_escape_string($con, $_POST['perioada']);
            $titlu = mysqli_real_escape_string($con, $_POST['titlu']);
            $info = mysqli_real_escape_string($con, $_POST['info']);
            $plata = mysqli_real_escape_string($con, $_POST['plata']);
           



            if ( $nume && $prenume && $email && $nrtel && $serviciu && $domeniu && $perioada && $titlu && $info && $plata != "")  {

                    $sql="INSERT INTO comanda (nume, prenume, email, nrtel, serviciu, domeniu, perioada, titlu, info, plata)
                    VALUES ('$nume','$prenume','$email','$nrtel','$serviciu','$domeniu','$perioada','$titlu','$info','$plata')";

                
                if (!mysqli_query($con,$sql)) {
                 die('Error: ' . mysqli_error($con));
                } 

                echo "";

                mysqli_close($con);
                } else {
                    
                }

                if (isset($_POST['nume'])){
                    echo "Mesaj trimis cu succes";
                } else {
                    echo "A aparut o eroare";
                }
Problema este ca acest script trimite formularul cand accesez pagina. De exemplu sunt pe prima pagina si intru pe pagina respectiva,acesta trimite singur formularul. Am folosit acest cod:
| Afiseaza codul
if ( $nume && $prenume && $email && $nrtel && $serviciu && $domeniu && $perioada && $titlu && $info && $plata != "") {}
pentru a impiedica acest lucru si ma enerveaza ca atunci cand intru pe pagina fie ca dau submit la formular fie ca nu apare "A aparut o eroare" Daca completez campurile il trimite si e bine,dar cum fac sa nu mai trimita formularul cand accesez pagina?
RoyalServer 2
anonyym
Membru, skill +1
Membru, skill +1
Posts: 180
Joined: 19 Jun 2011, 00:04
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 43 times
Been thanked: 8 times
Contact:

08 Aug 2014, 18:56

if ( $nume!="" && $prenume!="" && $email!="" && $nrtel!="" && $serviciu!="" && $domeniu!="" && $perioada!="" && $titlu!="" && $info!="" && $plata != "")

Incearca asa, daca nu merge nici asa incearca in loc de "" sa pui " "

Daca nici asa nu merge, incearca if ( isset($nume) && isset($prenume) && isset($email) && isset($nrtel) && .. termini tu if-ul )
Ultima varianta este cea pe care ti-o recomand eu, nu cum ai incercat tu sa faci.
.
*kaMazZz*
Membru, skill +1
Membru, skill +1
Posts: 369
Joined: 27 Jun 2012, 18:21
Detinator Steam: Da
CS Status: Munca,Munca si iar Munca.
SteamID: dj_bob0
Reputatie: Nume anterior: kamaz
Location: [email protected]
Has thanked: 4 times
Been thanked: 19 times
Contact:

08 Aug 2014, 19:06

nu nu ai inteles, nu trimite formularul ca am facut eu chestia aia cu if-ul , dar ma enerveaza ca apare eroarea chiar cand accesezi pagina deoarece se trimite automat formularul ( GOL )

eu vreau sa fac sa nu se mai trimita deloc , doar cand apesi butonul submit!! si atunci in caz ca sa trimis sa apara un mesaj pozitiv sau daca nu sa trimis sa apara un mesaj negativ.
anonyym
Membru, skill +1
Membru, skill +1
Posts: 180
Joined: 19 Jun 2011, 00:04
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 43 times
Been thanked: 8 times
Contact:

08 Aug 2014, 19:12

Inlocuiesti if-ul facut de tine cu:
if(isset($_POST['submit']))
.
*kaMazZz*
Membru, skill +1
Membru, skill +1
Posts: 369
Joined: 27 Jun 2012, 18:21
Detinator Steam: Da
CS Status: Munca,Munca si iar Munca.
SteamID: dj_bob0
Reputatie: Nume anterior: kamaz
Location: [email protected]
Has thanked: 4 times
Been thanked: 19 times
Contact:

08 Aug 2014, 19:40

eu zic ca ar fi aceasi chestie deoarece tot ar trimite pagina automat formularul! Eu vreau sa fac sa nu mai trimita automat! Fie ca as folosi ce mi-ai dat tu fie ca as folosi ce am facut eu , eroarea tot o sa apara deoarece formularul tot o sa fie trimis si ce mi-ai dat tu acolo verifica daca a fost trimis! Iar daca va fi trimis si campurile vor fi goale tot va aparea else-ul daca nu a fost trimisa.

ca sa fi mai pe inteles.

Eu vreau ca aceste mesaje sa apara dupa ce apas EU butonul submit si este trimis / nu este trimis formularul nu cand trimtie automat scriptul la accesarea linkului.
The Kalu
Fost administrator
Fost administrator
Posts: 13712
Joined: 09 Oct 2010, 12:39
Detinator Steam: Da
CS Status: In grajd!
SteamID: kalulord
Reputatie: Fost Administrator
Fost membru Club eXtreamCS (6 luni)
Nume anterior: Terra
Location: Romania, Ploiesti
Has thanked: 328 times
Been thanked: 646 times
Contact:

08 Aug 2014, 19:45

Code: Select all

<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){
  
  $link = mysqli_connect("", "", "", "");

  if (mysqli_connect_errno()) {
    print "Failed to connect to MySQL: " . mysqli_connect_error();
  }

  $nume = mysqli_real_escape_string($con, $_POST['nume']);
  $prenume = mysqli_real_escape_string($con, $_POST['prenume']);
  $email = mysqli_real_escape_string($con, $_POST['email']);
  $nrtel = mysqli_real_escape_string($con, $_POST['nrtel']);
  $serviciu = mysqli_real_escape_string($con, $_POST['serviciu']);
  $domeniu = mysqli_real_escape_string($con, $_POST['domeniu']);
  $perioada = mysqli_real_escape_string($con, $_POST['perioada']);
  $titlu = mysqli_real_escape_string($con, $_POST['titlu']);
  $info = mysqli_real_escape_string($con, $_POST['info']);
  $plata = mysqli_real_escape_string($con, $_POST['plata']);
  
  if ($nume && $prenume && $email && $nrtel && $serviciu && $domeniu && $perioada && $titlu && $info && $plata != ""){
    $sql = mysqli_query("INSERT INTO comanda (nume, prenume, email, nrtel, serviciu, domeniu, perioada, titlu, info, plata)
    VALUES ('$nume','$prenume','$email','$nrtel','$serviciu','$domeniu','$perioada','$titlu','$info','$plata')");
    
    if($sql){
      
      print 'Au fost adaugate valori in DB!';
      
    } else {
      
      print 'A intervenit o eroare!';
    }
    
  }

}

?>
Image
User avatar
Marius
Fost moderator
Fost moderator
Posts: 8294
Joined: 11 Nov 2007, 12:19
Detinator Steam: Da
CS Status: being awesome since 1992
SteamID: kNNwOw
Reputatie: eXtream Mod
Fost administrator
Fost dezvoltator al listei de seriozitate eXtreamCS
Fost Membru Club eXtreamCS
Location: Timisoara
Has thanked: 577 times
Been thanked: 680 times

08 Aug 2014, 19:45

Zi-mi campurile de care ai nevoie si ce formular vrei mai exact si-ti voi face eu unul....nu am timpul necesar sa stau sa ma uit sa inteleg cod, insa daca explici cat de cat, te pot ajuta fara probleme. Din cate am inteles, vrei un formular de contact cu anumite campuri care sa nu poata fi trimis gol.
------> un mindset sanatos pentru eXtream <------
PS: NU sunt intermediar
*kaMazZz*
Membru, skill +1
Membru, skill +1
Posts: 369
Joined: 27 Jun 2012, 18:21
Detinator Steam: Da
CS Status: Munca,Munca si iar Munca.
SteamID: dj_bob0
Reputatie: Nume anterior: kamaz
Location: [email protected]
Has thanked: 4 times
Been thanked: 19 times
Contact:

08 Aug 2014, 20:22

defapt vreau ca sa nu se trimita formularul cand accesez pagina. De exemplu am pe o pagina un formular de comanda. in aceasi fisier am si codul php. Cand accesez pagina respectiva, se trimite formularul ( catre mysql ) singur,fara sa apas butonul trimitere cu campurile goale. I-am adaugat acel cod ,daca formularele sunt goale sa nu il trimita si sa afiseze un mesaj. Daca totul este inregula sa il trimita si sa afiseze un mesaj pozitiv. Problema e ca atunci cand accesezi pagina, si am facut ce am spus mai sus, apare eroarea automat deoarece pagina / serverul vrea sa trimita formularul necompletat si apare eroarea. Eu vreau ca acea eroare sa apara cand apas eu butonul si sa nu fie inregula.

Intr-o fraza, vreau ca sa nu se mai trimita formularul cand accesez pagina doar daca apas eu butonul submit.
The Kalu
Fost administrator
Fost administrator
Posts: 13712
Joined: 09 Oct 2010, 12:39
Detinator Steam: Da
CS Status: In grajd!
SteamID: kalulord
Reputatie: Fost Administrator
Fost membru Club eXtreamCS (6 luni)
Nume anterior: Terra
Location: Romania, Ploiesti
Has thanked: 328 times
Been thanked: 646 times
Contact:

08 Aug 2014, 20:31

Ai incercat ce ti-am dat eu?
Image
*kaMazZz*
Membru, skill +1
Membru, skill +1
Posts: 369
Joined: 27 Jun 2012, 18:21
Detinator Steam: Da
CS Status: Munca,Munca si iar Munca.
SteamID: dj_bob0
Reputatie: Nume anterior: kamaz
Location: [email protected]
Has thanked: 4 times
Been thanked: 19 times
Contact:

08 Aug 2014, 21:36

am rezolvat cu toate, se poate da TC!!!
Post Reply

Return to “Discutii generale”

  • Information