Familienaam checken op bestaandheid

  • Hallo,


    Hoe kan ik het zo maken dat wanneer een familie naam al bestaat dat de code dan echo't 'Deze familie naam bestaat al. '


    Ik heb nu dit:

    PHP
    $nieuwe = $_POST['nieuwe_naam'];
    $test = mysql_fetch_object(mysql_query("SELECT * FROM `families` WHERE `naam`='".$nieuwe."'"));
    $test1 = mysql_num_rows($test);
    if ($nieuwe != $test1){
    mysql_query("UPDATE `users` SET `familie`='".$_POST['nieuwe_naam']."' WHERE `familie`='".$user->familie."'");
    mysql_query("UPDATE `families` SET `naam`='".$_POST['nieuwe_naam']."' WHERE `naam`='".$familie->naam."'");
    echo 'Je familie naam is succesvol geupdate';
    }


    Maar dat werkt niet.

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Werkt niet voor mij.


    Dit is mijn helescript:

  • PHP
    $nieuwe = $_POST['nieuwe_naam'];
    $test = mysql_query("SELECT * FROM `families` WHERE `naam`=".$nieuwe) or die(mysql_error);
    $test1 = mysql_num_rows($test);
    if ($test == 0){
    	mysql_query("UPDATE `users` SET `familie`='".$_POST['nieuwe_naam']."' WHERE `familie`='".$user->familie."'");
    	mysql_query("UPDATE `families` SET `naam`='".$_POST['nieuwe_naam']."' WHERE `naam`='".$familie->naam."'");
    	echo 'Je familie naam is succesvol geupdate';
    } else {
    	echo "Deze naam is al bezet";
    }


    Even wat verander weer

  • Stelletje amateurs :') vooral dein, hoe kun je nou een num rows -> object ophalen ?


    1) Eigenaar & CEO // iSenses
    2) Eigenaar & CEO // HoodGangster
    3) Co-Owner & Captian @WMCity V3.

  • Heb er maar met een scheve kop naar gekeken, had het achteraf ook wel gezien,...
    Ik zou dit trouwens totaal anders doen, maar dat is mijn mening.
    Veilig is het ook zeker niet omdat je zomaar $nieuwe in je database zet!

  • Zelfs jij Silverstar, je roept $test op voor de rows counting.. terwijl je $test1 nodig hebt? :/

    1) Eigenaar & CEO // iSenses
    2) Eigenaar & CEO // HoodGangster
    3) Co-Owner & Captian @WMCity V3.

  • Citaat van strafeness1

    Bedankt voor jullie antwoorden.


    Dein, hoe kan ik het dan wel veilig in mijn database zetten?



    htmlspecialchars() is al een goed begin.


    ZiraX voor die fout mag jij mij een amateur noemen, had het sneller moeten zien. :sst:

  • Btw. htmlspecialchars? waarom niet mysql_real_escape_string? :D of in geval van mysqli mysqli_real_escape_string($con, $POST);


    @Silver,
    I'm sorry:')


    Dein,
    Haha, klopt :')

    1) Eigenaar & CEO // iSenses
    2) Eigenaar & CEO // HoodGangster
    3) Co-Owner & Captian @WMCity V3.

  • mysql_real_escape_string:

    Citaat

    Escapes special characters in a string for use in an SQL statement


    htmlspecialchars:

    Citaat

    Convert special characters to HTML entities


    Mijn voorkeur gaat meer uit naar htmlspecialchars, myqsl_real_escape_string is even goed.

  • mysql_real_escape_string is goed, htmlspecialchars/htmlentities totaal niet! htmlspecialchars/htmlentities gebruik je om tekst die HTML kan bevatten veilig tussen andere HTML te stoppen. mysql_real_escape_string gebruik je om tekst die SQL kan bevatten veilig tussen andere SQL te stoppen.


    Welke je moet gebruiken hangt dus van de situatie af.

  • Klopt, maar als ik bijv. in het formulier: AND bank = bank + 100000 doe in htmlspecialchars word = en het + teken vervangen, dus is de SQL code onbruikbaar.


    Daarom dat ik zei is even goed, kan het ook mis hebben, dan hoor ik dat graag ;).

  • Zelfs htmlentities vervangt die tekens niet. htmlspecialchars, mysql_real_escape_string etc zijn functies om data te sanitizen, als je niet ook nog aan valideren doet ben je verkeerd bezig.
    Valideer de correctheid van de data die je ontvangt. Die query zou niet eens uitgevoerd mogen worden als iemand AND bank = bank + 1000000 invoert.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!