Автор Тема: Адресна книга (част 2)  (Прочетена 34769 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Адресна книга (част 2)
« Отговор #60 -: 19 Март 2014, 16:24:12 »
Ъхм, нещо си оплескал цялото нещо. Сега погледнах кода ти по-задълбочено и гледам че формата се намира в проверката дали тя самата е пратена, което на практика е лишено от логика, защото формата няма как да я пратиш, ако първо не я виждаш. Формата трябва да се намира в блока, където $_SESSION['is_logged'] == true, но извън блока $_POST['sbmit'] == 1, и също така след него (иначе ще имаш проблеми с хедърите). В кодът, който си споделил това място се намира между 28 и 29 ред (май). Успех!
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

kernel

  • Newbie
  • *
  • Благодарности
  • -Казани: 2
  • -Получени: 1
  • Публикации: 42
Re: Адресна книга (част 2)
« Отговор #61 -: 20 Февруари 2016, 12:50:16 »
Здравейте, имам проблем с add.php файла. Не създава файла data.txt и съответно ми вади Wrong data

<?php
session_start
();
if(
$_SESSION['is_logged']==TRUE)
{   
    if(
$_POST['formSubmit']==1)
    {
        
$name=  trim($_POST['name']);
        
$email=  trim($_POST['email']);
        
$phone=  trim($_POST['phone']); 
        if(
strlen($name)>&& strlen($email)>5)
        {
            
$tmp='name:'.$name.';email:'.$email.';mobile:'.$phone.';';
            
file_put_contents("data.txt"$tmp."\n",FILE_APPEND);
            echo 
'Data was saved';
        }
        else
        {
            echo 
'Wrong data';
        }
        
        
    }
    
?>

    <form method="post" action="add.php">
    <input type="hidden" name="formSubmit" value="1">
    Name:<input type="text" name="name"><br/>             
    Email:<input type="text" name="mail"><br/>
    Mobile:<input type="text" name="phone"><br/>
    <input type="submit" value="Add">
</form>
<?php
}
 else
{
    
header('Location: index.php');    
}
?>


Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Адресна книга (част 2)
« Отговор #62 -: 20 Февруари 2016, 13:08:50 »
Полето във формата се казва mail, а ти гледаш за email.
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

kernel

  • Newbie
  • *
  • Благодарности
  • -Казани: 2
  • -Получени: 1
  • Публикации: 42
Re: Адресна книга (част 2)
« Отговор #63 -: 20 Февруари 2016, 14:35:22 »
Да, оправих го, благодаря ти. Но сега не работи заради "\n" , замених го PHP_EOL , но въпреки това не работи (на windows съм)

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Адресна книга (част 2)
« Отговор #64 -: 20 Февруари 2016, 15:22:31 »
Дефинирай "не работи". Пробвай да създадеш ръчно файла, трябва да ти показва някакви грешки
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

kernel

  • Newbie
  • *
  • Благодарности
  • -Казани: 2
  • -Получени: 1
  • Публикации: 42
Re: Адресна книга (част 2)
« Отговор #65 -: 20 Февруари 2016, 16:41:52 »
Открих грешката. Бях пропуснал едно = в цикъла foreach() на name. В index.php  :)
« Последна редакция: 20 Февруари 2016, 17:30:13 от kernel »

amxx

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 9
Re: Адресна книга (част 2)
« Отговор #66 -: 30 Март 2016, 15:53:28 »
Здравейте.Имам нужда от малко помощ, правя всичко както е на видеото с foreach, нo ми се получава следния резултат :
Logout|Add

Array
(
   
  • => name:ivan

)

Array
(
   
  • => email:tanve@asdasd

)

Array
(
   
  • => mobile:00233223

)

Array
(
   
  • =>


)

Array
(
   
  • => name:botev

)

Array
(
   
  • => email:iasdjasd

)

Array
(
   
  • => mobile:222222222

)

Array
(
   
  • =>


)

Array
(
   
  • => name:gecata

)

Array
(
   
  • => email:asdjk@av

)

Array
(
   
  • => mobile:220333030

)

Array
(
   
  • =>


)

Name Email Phone

Ето го и кода:
Код: PHP
  1. <?php
  2. ?>
  3. <!DOCTYPE html>
  4. <html>
  5.     <head>
  6.         <meta charset="UTF-8">
  7.         <title></title>
  8.     </head>
  9.     <body>
  10.         <?php
  11.         if (isset($_SESSION['is_logged'])==true) {
  12.             echo '<a href="logout.php">Logout</a>|<a href="add.php">Add</a></br>';
  13.             $friends=file('data.txt');
  14.             echo '<table border=1><tr><td>Name</td><td>Email</td><td>Phone</td></tr>';
  15.             foreach ($friends as $v){
  16.                 $tmp=  explode(';', $v);
  17.                 foreach ($tmp as $vv){
  18.                     $tmp2=  explode(';', $vv);
  19.                     echo '<pre>'.print_r($tmp2,true).'</pre>';
  20.                 }
  21.                 //echo '<tr><td>Name</td><td>Email</td><td>Phone</td></tr>';
  22.             }
  23.             echo '</table>';
  24.         }  else {
  25.             // правим проверка дали е изпратена формата
  26.             // като проверяваме дали не е празен масива _POST, ако не е празен
  27.             // значи са изпратени данни и може да реализираме логиката за входа
  28.             if (!empty($_POST)) {
  29.                 $login=trim(addslashes($_POST['login']));
  30.                 $pass=trim(addslashes($_POST['pass']));
  31.                 if (strlen($login)>3 && strlen($pass)>3) {
  32.                     if ($login=="stefan" && $pass="asdasd") {
  33.                         $_SESSION['is_logged']=true;
  34.                         header('Location:index.php');
  35.                     }
  36.                 }else {
  37.                     echo 'wrong username/password'.'</br>';
  38.                 }
  39.             }
  40.             ?>
  41.                 <form method="post" action="index.php">
  42.                     Username:</br><input type="text" name="login"/></br>
  43.                     Password:</br><input type="password" name="pass"/></br>
  44.                     <input type="submit" value="Login"/>
  45.                 </form>  
  46.             <?php
  47.         }
  48.         ?>
  49.     </body>
  50. </html>
  51.  


kjufte

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 1
  • -Получени: 51
  • Публикации: 308
Re: Адресна книга (част 2)
« Отговор #67 -: 30 Март 2016, 16:52:58 »
Не съм гледал урока и не знам какъв точно ти е проблема, но като ти гледам кода и output-а предполагам, че имаш грешка при цепенето на стринговете. Два пъти цепиш на ;, а стойностите ти в изхода изглежда да са разделени с :  ;)

amxx

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 9
Re: Адресна книга (част 2)
« Отговор #68 -: 30 Март 2016, 18:23:20 »
Не съм гледал урока и не знам какъв точно ти е проблема, но като ти гледам кода и output-а предполагам, че имаш грешка при цепенето на стринговете. Два пъти цепиш на ;, а стойностите ти в изхода изглежда да са разделени с :  ;)

Мерси за бързия отговор.Точно там беше проблема вторите ";" трябваше да станат на ":".Благодаря отново :)