[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. G383G

    G383G New Member

    Joined:
    23 Oct 2012
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Подскажите

    Добрый день не подскажите где ошибка?

    PHP:
    <?php
    if($_GET['article']=="new"){
    ?>
                <center>
    <form method="post">
        <p><b>Заголовок:</b> <br /><input name="caption" type="text"></p>
        <p><b>Краткий текст:</b> <br /><textarea name="text" rows="5" cols="20"></textarea></p>
        <p><b>Полный текст:</b> <br /><textarea name="retext" rows="5" cols="20"></textarea></p>
        <p><b>Keywords:</b> <br /><input name="keywords" type="text"></p>
        <input type="submit" name="new" value="Добавить статью" style="border: 1px solid; width: 250px; cursor: pointer;">
    </form>

    <?php    
    }
    if(
    $_POST['new']){
        
    $title $_POST['caption'];
        
    $text $_POST['text'];
        
    $retext $_POST['retext'];
        
    $date date('Y.m.d');
        
    $keywords $_POST['keywords'];
        
        
    $insert mysql_query("INSERT INTO article(date,caption,text,retext,keywords) VALUES ('$date','$title','$text','$retext','$keywords')");
        if(!
    $insert)( return exit(mysql_error()));
        else {
            echo 
    "Данные добавленны успешно";
        }
    }
    ?>
    В ошибке вот эта строчка пишит неправильна

    PHP:
    if(!$insert)( return exit(mysql_error()));
     
  2. G383G

    G383G New Member

    Joined:
    23 Oct 2012
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    PHP:
    if(!$insert)( return exit(mysql_error()));  
    PHP:
    if(!$insert) return exit(mysql_error());  
    сам разобрался
     
  3. wanttoask

    wanttoask New Member

    Joined:
    30 Sep 2012
    Messages:
    81
    Likes Received:
    1
    Reputations:
    0
    Добавил, выдает такую ошибку: Warning: Cannot modify header information - headers already sent by (output started at /home/f/firstserver.h19.ru/WWW/reg/shop.php:2) in /home/f/firstserver.h19.ru/WWW/reg/table.php on line 2
     
  4. wanttoask

    wanttoask New Member

    Joined:
    30 Sep 2012
    Messages:
    81
    Likes Received:
    1
    Reputations:
    0
    (у меня скрипт из нескольких частей) попробовал в другую часть добавить, но те же вопросительные знаки, зато без ошибки
     
  5. wanttoask

    wanttoask New Member

    Joined:
    30 Sep 2012
    Messages:
    81
    Likes Received:
    1
    Reputations:
    0
    И не такие вопросительные знаки: ��������, а такие ???????????????????
     
  6. -=Nikola=-

    -=Nikola=- New Member

    Joined:
    21 Oct 2011
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    Поставь кодировку в Utf-8 без бом, в том же нотепад++ вверху Кодировка->Преобразовать в utf-8 без BOM.


    Заголовок этот должен стоять до любого вывода. Ошибка говорит о том, что заголовки уже посланы
    PHP:
    header('Content-Type: text/html; charset=utf-8');

    Ты на hut.ru залил, тогда тебе еще надо создать .htaccess и залить вот это:

    CharsetDisable on
    CharsetDefault utf-8
    AddDefaultCharset UTF-8
    CharsetSourceEnc UTF-8

    Читай тынц
     
    #21186 -=Nikola=-, 4 Nov 2012
    Last edited: 4 Nov 2012
  7. wanttoask

    wanttoask New Member

    Joined:
    30 Sep 2012
    Messages:
    81
    Likes Received:
    1
    Reputations:
    0
    И мне почему-то кажется, что PHP не поддерживает ассоциативные массивы на русском языке
     
  8. wanttoask

    wanttoask New Member

    Joined:
    30 Sep 2012
    Messages:
    81
    Likes Received:
    1
    Reputations:
    0
    а заливал я на holm.ru
     
  9. -=Nikola=-

    -=Nikola=- New Member

    Joined:
    21 Oct 2011
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    То же самое http://www.holm.ru/encoding.shtml
     
  10. wanttoask

    wanttoask New Member

    Joined:
    30 Sep 2012
    Messages:
    81
    Likes Received:
    1
    Reputations:
    0
    Таблица: MyISAM, кодировка таблицы: cp1251_general_ci
     
  11. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    В скряпте своем укажу сии строки...
    PHP:
    mysql_query("set names 'cp1251'");
     
  12. wanttoask

    wanttoask New Member

    Joined:
    30 Sep 2012
    Messages:
    81
    Likes Received:
    1
    Reputations:
    0
    Спасибо так работает
     
  13. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    такой вопросец, вот выдрал такой код,

    PHP:
    FILE *fp;
    if((
    fp=fopen("D:\\wso.exe""rb"))==NULL)
    printf("\n\nError!!!. I can't open the file");
    else
    printf("\n\nI open the file");
    //узнаем длинну:
    fseek(fp0LSEEK_END);
    int length=ftell(fp);
    printf("\n\nThe size of file is %ld bytes"length);
    он показывает количество битов в файле(насколько я понял), а как мен узнать количество бит в строке? какими функциями?
     
  14. seofilms

    seofilms Elder - Старейшина

    Joined:
    27 May 2009
    Messages:
    66
    Likes Received:
    46
    Reputations:
    14
    Приветствую, есть код, раньше все работало нормально, перенес на другой хостинг - появилась ошибка :
    В чем проблема ?
    Благодарю за помощь.
    PHP:
    <?
    $id=$_GET["id"];
    if (
    $id == "" or empty($id)) 
    {
    echo 
    "Počítačový servis PCrepair - Opravy počítačů a notebooku.";
    }
    if (
    is_numeric($id))
    {
    $result=mysql_query('SELECT * FROM news where id='.(int)$id) or die(mysql_error());
    $row mysql_fetch_array($result);
    echo 
    $row['name'];
    }
    if (!
    is_numeric($id) and !empty($id))
        {
        
    $id=$_GET["id"];
        
    $result=mysql_query('SELECT * FROM news where cpu=\''.$id.'\'') or die(mysql_error());  
        
    $row mysql_fetch_array($result);
        echo 
    $row['name'];
        }
    ?>
     
  15. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Шикарный код
    PHP:
    if ($id == "" or empty($id)) 
    И он не весь, ошибка на 22 строке а твой код 19 строк.
    А еще шикарно когда 2 раза в коде $id=$_GET["id"];
     
  16. bad_boy

    bad_boy Elder - Старейшина

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    seofilms, не ошибка, а уведомление, что в массиве $_GET нет элемента с индексом id. На старом хостинге мог быть подавлён вывод уведомлений. Делай так

    PHP:
    $id=isset($_GET["id"]) ? ($_GET["id"]) : 'значение по умолчанию';
    qaz, не бит, а байт. Длина строки strlen($str). (ну а количство бит это длина в байтах * 8 )
     
    1 person likes this.
  17. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    нус насколлько я понял 1 символ в строке = 1 байт, тоесть длина строки и будет равнятся количеству байтов, правильно?
     
  18. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Да, вообще зависит от типа строки..
    В Unicode если то там больше байта вроде.
     
  19. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    а вы в етом вобще уверены?

    если возьмём обычную строку 123
    то strlen($str) = 3 байта
    насколько я понял 1 Байт = 8 бит

    если напримкр цифра 1 в битах имеет значение 0001
    2 = 0010
    3 = 0011

    то в итоге получим

    000100100011 - 12 бит или 1 байт и 4 бита но не как не 3 байта

    может я чегото не понимаю?
     
    #21199 qaz, 6 Nov 2012
    Last edited: 6 Nov 2012
  20. khvdaiver

    khvdaiver New Member

    Joined:
    29 Oct 2012
    Messages:
    79
    Likes Received:
    2
    Reputations:
    0
    у тебя 8 бит, а не 4 бита.
    в твоем случае цифра 1 в битах будет иметь значение 00000001.

    дальше ты уже понял что плучится, я думаю.
     
Thread Status:
Not open for further replies.