Jump to content
php.lv forumi

x000x01

Reģistrētie lietotāji
  • Posts

    7
  • Joined

  • Last visited

Posts posted by x000x01

  1. escape_string ir vajadzīgs

    Teiksim profila lapā tev ir dzivesvieta.

    Kad saglabā datus tad notiek update table SET dzivesvieta = $dzivesvieta (dzivesvieta = kautkas)

    a, ja tajā dvieta ieliek ' WHERE kautkas = kautkas, tad tev viss kverijs nobrūk.

     

    Oke. Tagad zināšu un visos kverijos likšu.

  2. 1) Editoru katrs lieto tādu, kāds viņam liekas visērtākais. Labu laiku lietoju RapidPHP, tad Eclipse PDT, tagad esmu pārgājis uz Netbeans 6.5 for PHP. Ja VS tev ir pierasta vide, tad nedomāju, ka ir kādi būtiski trūkumi attiecīgajam php editoram.

     

    2) mysql_real_escape_string ir pat ļoti vajadzīgs. Turklāt ne tikai vienā vietā kodā, bet visur, kur tu vērsies pie datubāzes ar lietotāja ievadītajiem datiem. Lai labāk saprastu, pameklē google pēc SQL injection.

     

    3) vairākās vietās kur tiek rakstīti SQL query ir aizmirsts par mysql_real_escape_string un būtībā tavs kods ir ļoti nedrošs. Atkal ieteiktu palasīt par SQL injection.

     

    Kas ir SQLinj es jau zinu, bet vai tad tas, ka salieku mysql_real_escape_string visos kverijos padara to drošu? Parasti taču ir kāds skripts kurš kontrolē SQLinj un viņš tiek uncludēts visos failos, kuros notiek darbība ar SQL. Vai ar mysql_real_escape_string pietiek?

  3. Lieta tāda, sen jau programmēju, bet šodien izlēmu pamācīties PHP. Kā, nekā vajadzīga lieta mūsdienu programmētājam. Nokačāju visu, sastādīju un sāku kodēt. Bet ir pāris jautājumi.

     

    1. Kāds PHP editors ir pietiekoši labs un populārs. Pašlaik lietoju VS.PHP kas ir kā komponents Visual Studio 2008. Man pierastā vidē vienkārši gribējās kodēt. Bet vatbūt ir kādi daudz labāki par šo? Vairāk: http://www.jcxsoftware.com/vs.php

     

    2. Šo daļu es nevarēju izdomāt un uzprasīju draugam. Viņš kaut kur aizskrēja un nepaskaidroja kāpēc viņš izmantoja mysql_real_escape_string. Kāpēc? :)

    		$result = mysql_query('SELECT * FROM users WHERE login = "'.mysql_real_escape_string($login) .'" OR email = "'.mysql_real_escape_String($email) .'"');
    	if (mysql_num_rows($result) == true)

     

    3. Vai šāds kods ir derīgs? Itkā jau ir kā ir, bet varbūt kaut kur ir pielaistas rupjas kļūdas vai arīto pašu var izdarīt daudz ērtāk un produktīvāk? Lūdzu.

     

    db_config.php

    <?php
    
    ////////////////
    //Database info
    $db_host = "localhost";
    $db_user = "mansjuzeris";
    $db_pass = "manaparolle";
    $db_name = "manadatubaze;
    
    /////////////
    //Connection
    $connection = mysql_connect($db_host, $db_user, $db_pass) or die("Cannot connect to Database!");
    mysql_select_db($db_name, $connection) or die("Cannot open Database!");
    
    ?>

     

    register.php

    <?php
    require("db_config.php");
    
    ////////////////////
    //Writing variables
    $date = date('Ymd');
    $login = $_POST["username"];
    $password = $_POST["password"];
    $email = $_POST["email"];
    $first_name = $_POST["first_name"];
    $last_name = $_POST["last_name"];
    $form_submitted = $_POST["form_submitted"];
    
    ////////////////////////////////
    //Checking if form is submitted
    if ($form_submitted == true)
    {
    //////////////////////////////////////
    //Checking if the variables are empty
    if ($login && $password && $email && $first_name && $last_name != "")
    {
    	/////////////////////////////
    	//Checking if the username/email already exists
    	$result = mysql_query('SELECT * FROM users WHERE login = "'.mysql_real_escape_string($login) .'" OR email = "'.mysql_real_escape_String($email) .'"');
    	if (mysql_num_rows($result) == true)
    	{
    		echo "User/Email already exists!";
    	}
    	else
    	{
    		///////////////////
    		//Registering user
    		$query = "INSERT INTO users VALUES ('NULL', '$login', '$password', '$email', '$first_name', '$last_name', '$date')";
    		$result = mysql_query($query, $connection) or die(mysql_error());
    	}
    
    }
    }
    
    ?>
    
    <form action="register.php" method="POST">
    Username: <input type="text" name="login"> <br>
    Password: <input type="password" name="password"> <br>
    Email:	<input type="text" name="email"> <br>
    Name:	 <input type="text" name="first_name"> <br>
    Surname:  <input type="text" name="last_name"> <br>
    		  <input type="submit" value="Register">
    		  <input type="hidden" name="form_submitted" value="yes">
    </form>

     

    index.php

    <?php
    require("db_config.php");
    
    ////////////////////
    //Writing variables
    $login = $_POST["username"];
    $password = $_POST["password"];
    $form_submitted = $_POST["form_submitted"];
    
    ////////////////////////////////////
    //Checking if the form is submitted
    if ($form_submitted == true)
    {
    /////////////////////////////////////////
    //Checking if there is something entered
    if ($login && $password != "")
    {
    	///////////////////////////////////////////
    	//Checking if the values exist in database
    	$result = mysql_query("SELECT * FROM users WHERE login='" . $login . "' AND password='" . $password . "'");
    	if (mysql_num_rows($result) == true)
    		echo "You are logged in!";	
    	else
    		echo "Login or/and Password are incorrect!";		
    }	
    }
    
    
    ?>
    
    <form action="index.php" method="POST">
    Username: <input type="text" name="username"> <br>
    Password: <input type="password" name="password"> <br>
    		  <input type="submit" value="Login">
    		  <input type="hidden" name="form_submitted" value="yes">
    </form>

     

     

    Ceru, ka palīdzēsiet.

  4. Ieliku 'www' folderī pēdējo phpMyAdmin versiju, bet nevaru ieiet, jo rāda, ka nav extensions. Iegāju php.ini un noņēmu ';' priekša mcrypt extension'am, bet tik un tā rāda šo te.

     

    Cannot load mcrypt extension. Please check your PHP configuration.

     

    Varbūt man vienkārši nav tā *.dll faila? Es meklēju internetā, bet nekur nav. Lūdzu, ja kādam ir tas *.dll fails atsūtat.

     

     

    DC++ atradu un aizgāja.

  5. Man ir editbox ar nosaukumu "firstname" un poga ar nosaukumu "startcalc".

     

    Kā lai es izdaru tā, ka pēc pogas nospiešanas tas, kas ir iekš "firstname" tiek piešķirts kādam mainīgajam, piemēram $firstname.

     

    <INPUT type="text" name="firstname"><BR>
    <INPUT type="submit" value="Calculate" name="startcalc">
    <?php
    /* TODO: Add code here */
    ?>

     

     

    Jau atradu.

     

    <html>
    <form action="index.php" method="post">
    <INPUT type="text" name="firstname" align="center"><BR>
    <INPUT type="submit" value="Calculate" name="startcalc" align="center">
    </form>
    </html>
    
    
    <?php
    /* TODO: Add code here */
    echo("Welcome, " . $_POST["firstname"]);
    ?>

×
×
  • Create New...