SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Проблем с php

borisov87

New member
имам проблем гледам клипа с този урок стигна до 12:50.
Там е даден пример че ако намерените в базата данни записи са 0 трябва да излезе съобщение за грешно име или парола. Е нарочно въвеждам грешно име и парола но не ми излиза това съобщение ето докъде съм стигнал с кода
PHP:
<?php
include 'functions.php';
my_header('Вход');
if($_POST['form_login']==1)
{
    $login=trim($_POST['login_name']);
    $pass=trim($_POST['login_pass']);
    if(strlen($login>3 && strlen($pass)>3))
    {
        db_init();
        $rs=  mysql_query('SELECT * FROM users WHERE login="'.addslashes($login).'" AND pass="'.md5($pass).'"');
        if(mysql_num_rows($rs)==1)
        {
            
        $row=mysql_fetch_assoc($rs);
        }
        elseif(mysql_num_rows($rs)==0 )
        {
            echo '<h1>Грешно име или парола </h1>';
        }
    }
}
?>
<form action="login.php" method="POST">
    Име:<input type="text" name="login_name"/><br>
    Парола:<input type="text" name="login_pass"/><br>
    <input type="hidden" name="form_login" value="1" />
    <input type="submit" value="Влез" /><br>
</form>
<?php
footer();
 
Re: Проблем с php

намерих си сам проблема
if(strlen($login>3 && strlen($pass)>3))
тук съм пообъркал скобите :)
 
Re: Проблем с php

1.Стигнах на края на този урок където е показана функцията на htmlspecialchars, но при мен не работи като въведа специални символи като < > си ги записва по същия начин в базата данни, къде може да е проблема ето кодът ми.
Вторият ми въпрос е за функцията addslashes , кратко разяснение ако може каква е разликата между нея и specialchars
PHP:
<?php
session_start();
include 'functions.php';
db_init();
$cat_id=(int)$_GET['id'];
$rs= run_q('SELECT name FROM cat WHERE cat_id='.$cat_id.' AND active=1');
if($_SESSION['is_logged']===true && mysql_num_rows($rs)==1)
{
    if($_POST['new_post']==1)
    {
       $error_array=array();
       $new_name=addslashes(trim($_POST['post_title'])); 
       $new_content=addslashes(trim($_POST['post_content']));
       if(strlen($new_name)<4)
       {
           $err_array['name']="Името е твърде кратко";
       }
       if(strlen($new_content)<4)
       {
           $err_array['content']="Съдържанието е твърде кратко";
       }
       if(strlen($new_content)>5000)
           {
           $err_array['content']="Съдържанието е твърде дълго";
       }
       if(count($err_array)==0) 
       {
           run_q('INSERT INTO posts (cat_id,added_by,date_added,title,content) 
               VALUES('.$cat_id.','.$_SESSION['user_info']['user_id'].','.time().',"'.$new_name.'","'.htmlspecialchars($new_content).'")');
          header('Location: topic.php?id='.$cat_id);
          exit;
       }
    }
    $row=  mysql_fetch_assoc($rs);
my_header("Нова тема-".$row['name']);
 echo '<form action="post.php?id=' .$cat_id.'" method="POST">
    Заглавие:<input type="text" name="post_title" />';
 if($err_array['name'])  
 {
    echo $err_array['name']; 
 }
 echo   '<br><textarea name="post_content" rows="10" cols="50"></textarea>';
      if($err_array['content'])  
 {
    echo $err_array['content']; 
 }
  echo '<input type="hidden" name="new_post" value="1" />
    <input type="submit" value="Добави" />
 </form>';

footer();
}
 else 
     {
    header('Location: index.php');
     exit;
 
Re: Проблем с php

Борисов, изгледай още веднъж урока. Гатака обяснява много добре нещата и смятам, че ще го разбереш. И най-добре е да си задаваш въпросите във форума на nau4i.me. За всеки един урок има тема и там се дискутират проблемите.
 

Горе