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

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

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

    SEKTOR3A New Member

    Joined:
    2 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    не могу решить ,возникла проблема плиз где здесь ошибка
    Warning: fopen(cookies.txt) [function.fopen]: failed to open stream: Permission denied in on line 1
    Warning: fputs(): supplied argument is not a valid stream resource in on line 2
    Warning: fclose(): supplied argument is not a valid stream resource in on line 3
    сам скрипт

    <?
    $file = fopen("cookies.txt","a");
    fputs($file,"[".date("d.m.y H:i")."]: host=".$_GET["host"].", COOKIES=”.$_GET["cook"]."rn");
    fclose($file);
    ?>
     
  2. Dark_cracker

    Dark_cracker Member

    Joined:
    29 May 2009
    Messages:
    73
    Likes Received:
    8
    Reputations:
    1
    Права на файл поставь )))
    и перевод строки так пишеться )) \r\n
     
  3. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Помогите найти ошибку!
    Parse error: syntax error, unexpected T_STRING in Z:\home\centre.php on line 97
    Код:
    PHP:

    If(Isset($_GET['category']) and (Isset($_GET['altname']))){
        
    //
        
    $xfile = @file("categ/categ.dat");
        for (
    $i=0;$i<count($xfile);$i++) {
        
    $bd explode("|",$xfile[$i]);
        
    //
        
    If($_GET['altname']==$bd[1]){
        
    $x = @file("categ/{$bd[1]}.dat");
        
    $s=count($x);
        
    $x array_reverse($x);
        for (
    $b=0;$b<$s;$b++) {
        
    $bd explode("|",$x[$b]);
        echo 
    "<table id=\"window\">
    <tr>
    <td id=\"wtitle\" class=\"ntitle\"><span class=\"category\"><a href=\"
    $self?category=$bd[0]\">$bd[0]</a></span>*/*<a href=\"$self?category=$bd[0]&altname=$bd[1]\">$bd[1]</a></td>
    </tr><tr><td id=\"wconte\" class=\"news\"><p style=\"text-align: center\"><a href=\"
    $bd[2]\" class=\"highslide\"><img src=\"$bd[2]\" border=\"0\" alt=\"?\" /></a></p>$bd[3]</td>
    </tr>
    <tr><td id=\"wttle2\"><table width=\"100%\">
    <tr>
    <td class=\"slink\"><a href=\"
    $self?category=$bd[0]&altname=$bd[1]\"><b>Подробнее</b></a></td>
    <td class=\"slink\" align=\"right\"> Просмотров: 
    $bd[4] автор: <b><a href=\"$self?action=users&user=$bd[5]\" target=\"_blank\">$bd[5]</a></b> $bd[6] Комментарии ({$bd[7]})</td>
    </tr>
    </table></td></tr>
    </table>"
    ;
    }
    //Вывод ВСЕГО О НОВОСТИ + КОМЕНТЫ
    }//Просмотр одной из НОВОСТЕЙ  -- by name
    }//BD BY NAME NEED
    }//Просмотр одной из НОВОСТЕЙ
    }//Если нету ACTION

    If((Isset($_GET['action'])) and (!Isset($_GET['category'])) and (!Isset($_GET['altname']))){
            If(
    $_GET['action']=='registration'){
            If(
    strlen($_POST['login']) >= '3' and strlen($_POST['password']) >= '3' strlen($_POST['password2']) >= '3' and strlen($_POST['email']) >= '3' and ($_POST['password']==$_POST['password2'])){
            
    $nick bdtext($_POST['login']);
            
    $pass bdtext($_POST['password']);
            
    $pass2 bdtext($_POST['password2']);
            if(
    $pass !== $pass2){ echo "<img src=images/help16.gif> [ Ошибка ] Пароли не совпадают!"; exit; }
            
    $email bdtext($_POST['email']);
            
    $acc '1';
            
    $basemember="users/suser.dat";
            
    $general = @file($basemember);
            
    $lines count($general);
            for ( 
    $i 0$i $lines$i++ ){
            
    $bb=explode('|'$general[$i]);
            if(
    $_POST['login']==$bb[0]){  die("<img src=images/help16.gif> [ Ошибка ] Такой логин уже используется!");}
            if(
    $_POST['login']!==$bb[0] and strlen($_POST['login']) >='3' and strlen($_POST['password']) >='3' and $_POST['email']!==$bb[2]){
            
    $fp=fopen($basemember,"a");
                
    fwrite($fp,"$user|$pass|$email|0|0|Новенький|$acc|\r\n");
                
    fclose($fp);
            echo 
    "<script language='Javascript'>function reload() {location = \"$self?event=log\"}; setTimeout('reload()', 1500);</script>
    <table width=100% height=80%><tr><td><table border=1 cellpadding=10 cellspacing=0 bordercolor=#224488 align=center valign=center width=60%><tr><td><center>
    Спасибо за регистрацию! <B>
    $_POST['login']</B>,Через несколько секунд Вы будете автоматически перемещены в зону авторизации.<BR><BR>
    </td></tr></table></td></tr></table></center></body></html>"
    ;
            }   
    //Успех в записи
            
    }//Лазаем в бд на проверку
            
    }//Проверка окончена
            
    echo $regform;
            }
    //      Всё,что связано с регистрацией






    }//ЕСЛИ ПОЛУЧЕНО ACTION
    ?>
     
  4. suser

    suser Member

    Joined:
    30 Dec 2009
    Messages:
    35
    Likes Received:
    5
    Reputations:
    0
    есть абсолют ссылка на стиль и относительн ссылка на картинку записаная в этом стиле.
    Из етого мне надо получить абсолютн ссылку на картинку. Написал какойто бред :D
    PHP:
    $a='http://123/css/nev/css.css';
    $b='../../img/x/1.jpg'//нужног получить http://123/img/x/1/jpg
    $aa  =explode('/'$a);
    $bb  =explode('/'$b);
    if(
    $bb[0] == '.' ) { unset ($aa[count($aa)]); $res str_replace('./',implode('/',$aa),$b); }
    if(
    $bb[0] == '..' &&  $bb[1] == '..') { unset ($aa[count($aa)],$aa[count($aa)-1],$aa[count($aa)-2]); $res str_replace('../../',implode('/',$aa),$b); }
    if(
    $bb[0] == '..' ) { unset ($aa[count($aa)],$aa[count($aa)-1]); $res str_replace('../',implode('/',$aa),$b); }

    это если на говногоде

    собсна как сделать по норм я незнаю
     
  5. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Написано же, что косяк в 97 строке... А ты код не весь выложил... Какая из этихстрок 97-я..?!!
     
  6. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Да,я выложил тот код,если его убрать то сайт ОТЛИЧНО дальше работает. Но без регистрации никак(
     
  7. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Нашёл ту ошибку: В длинной строке проверки по длине забыл один раз поставить and..
    Другая нашлась:
    PHP:
      echo "<script language='Javascript'>function reload() {location = \"$self?event=log\"}; setTimeout('reload()', 1500);</script>
    <table width=100% height=80%><tr><td><table border=1 cellpadding=10 cellspacing=0 bordercolor=#224488 align=center valign=center width=60%><tr><td><center>
    Спасибо за регистрацию! <B>
    $_POST['login']</B>,Через несколько секунд Вы будете автоматически перемещены в зону авторизации.<BR><BR>
    </td></tr></table></td></tr></table></center></body></html>"
    ;
    Тут типа ошибка Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
    Конкретно жалуется на строку :
    PHP:
    <table width=100height=80%><tr><td><table border=1 cellpadding=10 cellspacing=0 bordercolor=#224488 align=center valign=center width=60%><tr><td><center>
     
  8. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    В сообщении же написано, что ошибка в 97 строке... Так зачем просить поверить такое количество кода, если можно проверить только одну строку... Но так как код не полный (не с начала), трудно понять какая из этих строк 97-я... Зачем людям жизь усложнять..?! :confused:
     
  9. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Если ты незнал,то обьясняю:
    Эта ошибка возникает:
    [ 1 ] Когда в коде в этой строке или до неё(неограниченно до нулевой) добущена ошибка типа нехватает ' или ; , в общем знака препинания в PHP
    [ 2 ] Когда я удаляю этот участок кода,то регистрация опять работает..
     
  10. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    2 N2kroot
    PHP:
    //Измени эту строчку
    If(strlen($_POST['login']) >= '3' and strlen($_POST['password']) >= '3' strlen($_POST['password2']) >= '3' and strlen($_POST['email']) >= '3' and ($_POST['password']==$_POST['password2'])){
    На
    PHP:
    If(strlen($_POST['login']) >= '3' and strlen($_POST['password']) >= '3' and strlen($_POST['password2']) >= '3' and strlen($_POST['email']) >= '3' and ($_POST['password']==$_POST['password2'])){
     
  11. GlooK

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

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    А разве числовые значения пишут в кавычках?
    Может быть так:
    PHP:
    If(strlen($_POST['login']) >= and strlen($_POST['password']) >= and strlen($_POST['password2']) >= and strlen($_POST['email']) >= and ($_POST['password']==$_POST['password2'])){
     
  12. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Разницы впринципе нет. $_POST['login'] - STRING, а не INTEGER.
    Да и вообще это его код, я лишь указал на ошибку.
     
  13. GlooK

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

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    Если внимательно присмотреться, то там не просто $_POST['login'], а strlen($_POST['login']).
    Конструкция функции int strlen ( string string ), т.е. числовое значение.
     
  14. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    Скиньте кто-нибудь работающий пост запрос через СОКС, если у кого-то завалялся. Просто времени сейчас вообще нету разбираться с протоколом.
     
  15. GlooK

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

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    PHP:
    <?php
        $ch 
    curl_init();
        
    curl_setopt($chCURLOPT_URL"http://ya.ru");
        
    curl_setopt($chCURLOPT_TIMEOUT60);
        
    curl_setopt($chCURLOPT_PROXY"97.84.1.138:51411");
        
    curl_setopt($chCURLOPT_PROXYTYPECURLPROXY_SOCKS5);
        
    curl_setopt($chCURLOPT_RETURNTRANSFERFALSE);
        
    $result curl_exec($ch);
        echo 
    $result;
        
    curl_close($ch);
    ?>
     
    3 people like this.
  16. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    спасибо, а через сокеты нету?
     
  17. GlooK

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

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    2 ntldr,
    Там довольно-таки сложно.
    Могу только направление показать: http://www.nulled.ws/showpost.php?p=434579&postcount=4
     
    #13917 GlooK, 14 Feb 2010
    Last edited: 14 Feb 2010
  18. vvy

    vvy New Member

    Joined:
    29 Mar 2009
    Messages:
    33
    Likes Received:
    3
    Reputations:
    4
    pali4, таблица - массив оформленный таким способом?
    PHP:
    $mos[0]['id']=1;
    $mos[0]['name']='vasya';
    $mos[1]['id']=2;
    $mos[1]['name']='petya';
    $mos[2]['id']=3;
    $mos[2]['name']='vasya';
    если да, то вот так:
    PHP:
    foreach ($mos as $key => $value$buf_mos[$value['name']]='';
    $mos=Array();
    foreach (
    $buf_mos as $key => $value$mos[]=$key;
    print_r($mos);
     
  19. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    ntldr,
    PHP:
    <?php
    $proxy 
    '114.142.141.35';
    $port '8080';
    $timeout 30;
    $url 'http://wnezros.homeip.net/dump.php';
    $domen 'wnezros.homeip.net';
    $post 'name=value&name2=value2';

    $data "POST $url HTTP/1.0

    Conection: Keep-Alive
    Host: 
    $domen
    Content-Length: "
    .strlen($post)."
    Content-Type: application/x-www-form-urlencoded

    $post";

    $sock fsockopen($proxy$port$errno$errstr$timeout);
    if(
    $errno != 0) exit($errno.': '.$errstr.'<br>');

    fputs($sock$data);

    $r '';

    while(!
    feof($sock))

    {
        
    $r .= fgets($sock);
    }

    fclose($sock);

    echo 
    $r;

    ?>
     
    #13919 WNZRS, 14 Feb 2010
    Last edited: 14 Feb 2010
  20. roxblnfk

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

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    вариант без прокси и без keep-alive:
    PHP:
    $addr='/index.php';
    $host='antichat.ru';//^^
    $post='name='.urlencode('имя, например').
        
    '&message='.urlencode('сообщение, или что там надо..');
    $ss='';
    if (
    false!=($f=fsockopen('IP или домен'80$errno$errstr30))){
        
    fputs ($f"POST $addr HTTP/1.1\r\nContent-Type: ".
            
    "application/x-www-form-urlencoded\r\nContent-Length: ".
            
    strlen($post)."Host: $host\r\nConnection: close\r\n\r\n".$post);
        while (!
    feof($f)) {
            
    $ss.=fgets($f128);
        }
        
    fclose($f);
    }
    echo(
    $ss);
     
    #13920 roxblnfk, 14 Feb 2010
    Last edited: 25 Apr 2010
Thread Status:
Not open for further replies.