Jump to content
valascus

Problema Invite

Recommended Posts

valascus

Bom dia, eu estava a tentar modificar um antigo php que convida automaticamente pessoas para o grupo steam.

Infelismente, tenho um erro, na linha 134.

O Codigo, a partir da linha 133 é este:

{
 $query_string = "?type=groupInvite^&inviter="$inviter"^&invitee=%1^&group="$plugin_groupid"^&sessionID="$steam_cookie"
 $steam_invite = curl_init();
 curl_setopt($steam_invite, CURLOPT_URL, "http://steamcommunity.com/actions/GroupInvite".$query_string);
 curl_setopt($steam_invite, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($steam_invite, CURLOPT_HEADER, 1);
 curl_setopt($steam_invite, CURLOPT_COOKIE, "steamLogin=".$steam_cookie);
 $result = curl_exec($steam_invite);
 curl_close($steam_invite);
 return $result;
}

Por um .bat que eu e funciona, o link de convidar é assim:

http://steamcommunity.com/actions/GroupInvite?type=groupInvite^&inviter=steamid64 da minha steam^&invitee=%1^&group=id do grupo que quero convidar^&sessionID=Session Id da steam.

Espero resolver o mais rapido possivel.

Obrigado

Share this post


Link to post
Share on other sites
pmg

Não podes ter aspas normais dentro de aspas: tens de as "escapar"

$string_com_aspas = "Em inglês, \"Nice\" quer dizer \"Boa\"
O Mc'Donalds está em promoção.";

Outra hipótese é usar plicas (mas se tiveres plicas dentro das plicas tens de as "escapar")

$string_com_aspas = 'Em inglês, "Nice" quer dizer "Boa"
O Mc\'Donalds está em promoção.';

Ainda outra hipótese é usar "heredoc"

$string_com_aspas = <<<STRING_COM_ASPAS
Em inglês, "Nice" quer dizer "Boa"
O Mc'Donalds está em promoção.
STRING_COM_ASPAS;

Podes ler mais sobre string no manual do php: http://php.net/manual/en/language.types.string.php

De acordo com o manual, ainda tens a opção da sintaxe "nowdoc" ... é nova demais para eu conhecer como usá-la: lê a descrição no manual


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
HappyHippyHippo

De acordo com o manual, ainda tens a opção da sintaxe "nowdoc" ... é nova demais para eu conhecer como usá-la: lê a descrição no manual

o manual indica que o nowdoc é a mesma coisa que o heredoc, só que a string é tratada como que se fosse escrita com apostrofes, isto é, não existe o parsing da string:

exemplo:

$var = 'XPTO';

$text1 = <<<TEXT1
1: isto é um texto com uma variavel com valor {$var}
TEXT1;

$text2 = <<<'TEXT2'
2: isto é um texto com uma variavel com valor {$var}
TEXT;

echo $text1;
echo "\n";
echo $text2;

isto resulta em :

1: isto é um texto com uma variavel com valor XPTO
2: isto é um texto com uma variavel com valor {$var}

Edited by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
valascus

Agora tenho erro na linha 136.

Nao a editei...

curl_setopt($steam_invite, CURLOPT_URL, "http://steamcommunity.com/actions/GroupInvite".$query_string);

O codigo completo esta em cima

Share this post


Link to post
Share on other sites
HappyHippyHippo

como sabes que tens erro ?

o script diste que tens erro ?

ter essa informação é 99.999% melhor para resolver um problema, porque nessa mensagem (99.999% dos casos) tem a explicação do que aconteceu de mal


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
valascus

Sim, ele disse isto:

Parse error: syntax error, unexpected T_STRING on line 136

Edited by valascus

Share this post


Link to post
Share on other sites
pmg

Isso cheira-me a aspas por fechar numa das linhas anteriores.

Liga o realce de sintaxe no teu editor para ele te mostrar onde começam e acabam as strings (um post aqui, no P@P, com as tags correctas, faz a mesma coisa)

$x = "jsd" . $fhfgs . "jkfdsjkghfds" . "hgsdsd;
something_else();
curlopt_setopt($xxx, BLABLABLA, "string");

Nota que a string que comecou na linha 1 acaba na linha 3


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
HappyHippyHippo

a mensagem de erro dita que ao interpretar o script encontrou um literal que não deveria ter encontrado nessa linha

no entanto, é preciso lembrar que um compilador (neste caso um interpretador) é um programa, e esta situação é uma das poucas vezes que a mensagem de erro não é 100% correta, é na realidade um best-effort para dizer algo com significado.

porquê:

a tua instrução está claramente correta, ponto. mas é normal, quando um literal (uma string), quando não é corretamente fechada, o erro só ser detectado à posteriori. este é o teu caso. o erro não se encontra na linha 136, mas numa linha anterior, que no teu caso deverá ser onde declaras a expressão regular.

deverás estar a usar um editor sem syntaxe highlight porque se o usasses, ele imediatamente te marcaria muito código com a cor de um literal.

para ser possível te dizer qual o problema, só mesmo com o código descrito acima.


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
valascus

Ele esta ali em cima:

{
 $query_string = "type=groupInvite^&inviter='$inviter'^&invitee=%1^&group='$plugin_groupid'^&sessionID='$steam_cookie'
 $steam_invite = curl_init();
 curl_setopt($steam_invite, CURLOPT_URL, "http://steamcommunity.com/actions/GroupInvite".$query_string);
 curl_setopt($steam_invite, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($steam_invite, CURLOPT_HEADER, 1);
 curl_setopt($steam_invite, CURLOPT_COOKIE, "steamLogin=".$steam_cookie);
 $result = curl_exec($steam_invite);
 curl_close($steam_invite);
 return $result;
}

Share this post


Link to post
Share on other sites
HappyHippyHippo

verifica a tua inicialização do literal e como estás a terminar

"type...steam_cookie'
A                   A
|                   |
aspas               apostrofe


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
valascus

agora tenho o mesmo erro, mas na linha 135.

Aqui esta o codigo:

{
 $query_string = "type=groupInvite^&inviter='$inviter'^&invitee=%1^&group='$plugin_groupid'^&sessionID='$steam_cookie'"
 $steam_invite = curl_init();
 curl_setopt($steam_invite, CURLOPT_URL, "http://steamcommunity.com/actions/GroupInvite".$query_string);
 curl_setopt($steam_invite, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($steam_invite, CURLOPT_HEADER, 1);
 curl_setopt($steam_invite, CURLOPT_COOKIE, "steamLogin=".$steam_cookie);
 $result = curl_exec($steam_invite);
 curl_close($steam_invite);
 return $result;
}

A linha 135 é:

$steam_invite = curl_init();

Share this post


Link to post
Share on other sites
HappyHippyHippo

não deve ser exatamente a mesma mensagem de erro, porque se fosse, o interpretador estaria a se queixar de um literal na linha seguinte.

o que se deve estar a queixar é que existe uma variável que não esperava, isto porque não estás a terminar a instrução na linha 134.

$query_string = "type=groupInvite^&inviter='$inviter'^&invitee=%1^&group='$plugin_groupid'^&sessionID='$steam_cookie'";
                                                                                                                     A
                                                                                                                     |
                                                                                                              ponto e virgula


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
MASNathan

agora tenho o mesmo erro, mas na linha 135.

Aqui esta o codigo:

{
$query_string = "type=groupInvite^&inviter='$inviter'^&invitee=%1^&group='$plugin_groupid'^&sessionID='$steam_cookie'"
$steam_invite = curl_init();
curl_setopt($steam_invite, CURLOPT_URL, "http://steamcommunity.com/actions/GroupInvite".$query_string);
curl_setopt($steam_invite, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($steam_invite, CURLOPT_HEADER, 1);
curl_setopt($steam_invite, CURLOPT_COOKIE, "steamLogin=".$steam_cookie);
$result = curl_exec($steam_invite);
curl_close($steam_invite);
return $result;
}

A linha 135 é:

$steam_invite = curl_init();

Falta o ;

Share this post


Link to post
Share on other sites
valascus

Agora tenho erro linha 54 e 121.

Vou enviar

Linha 54:

$steam_communityid = strstr($steam_cookie, "%", true);

Nao tem mais nada, nao tem codigo antes associado

Linha 121:

$mysqli_conn->close();

Fecha a conexao a DB e tambem nao tem nenhum codigo antes associado

E ainda o clássico:

Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'o meu user' (using password: YES) on line 57

Onde a linha 57 é:

$mysqli_conn = new mysqli($db_hostname, $db_username, $db_password, $db_database, $db_port);

Edited by valascus

Share this post


Link to post
Share on other sites
HappyHippyHippo

como sabes que tens erro ?

o script diste que tens erro ?

ter essa informação é 99.999% melhor para resolver um problema, porque nessa mensagem (99.999% dos casos) tem a explicação do que aconteceu de mal


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
valascus

Sim, deu esse erro.

Na linha 54 deu este :

Warning: Wrong parameter count for strstr()

E na linha 121, este:

Warning: mysqli::close() [mysqli.close]: Couldn't fetch mysqli on line 121

Share this post


Link to post
Share on other sites
HappyHippyHippo

Na linha 54 deu este :

Warning: Wrong parameter count for strstr()

o 3º parâmetro do strstr só foi adicionado após a versão 5.3, podes confirmar a tua versão do PHP ??

E na linha 121, este:

Warning: mysqli::close() [mysqli.close]: Couldn't fetch mysqli on line 121

pois, isso porque com a informação que adicionaste ao post anterior

Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'o meu user' (using password: YES) on line 57

Onde a linha 57 é:

$mysqli_conn = new mysqli($db_hostname, $db_username, $db_password, $db_database, $db_port);

não tens ligação á base de dados, logo não a podes fechar :D

agora, isso já entra na área de autenticação no servidor. ligação tens, porque tens resposta, no entanto

- ou o nome do utilizador ou a palavra chave estão erradas

- ou não tens o utilizador criado na base de dados

- ou o utilizador não tem permissões para a base de dados pedida (se bem que este caso acho que a mensagem diz isso)

Nota que é diferente ter permissões de acesso ao servidor de permissões de acesso à base de dados do servidor


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
pocoyozaoo

Estou com o mesmo problema... alguem pode postar um script que faça isto e que de corretamente? Alias ate fui eu que lhe dei o ficheiro .bat so que a unica coisa que esse faz é abrir as janelas do explorador e convidar... que breka um bocado o pc... a partir de PHP e muito melhor... se alguem conseguir agradeço : )

Share this post


Link to post
Share on other sites
HappyHippyHippo

e que tal fazeres tu ? assim ias aprender um pouco de PHP e de programação em geral .... boa ideia não ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
pocoyozaoo

nao sei php por isso estou aqui a pedir... se nao queres ajudar nao ajudas.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.