1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Ajuda] Flash + PHP + mySQL (phpMyAdmin)

Discussão em 'Web Development' iniciada por lilcrazy, 4 de Janeiro de 2009. (Respostas: 10; Visualizações: 2215)

  1. lilcrazy

    lilcrazy Power Member

    Boas pessoal,
    Estou a desenvolver um site Flash, no âmbito de uma cadeira da universidade. Como preciso de utilizar o XAMP, para utilizar o Apache como web server, o mySQL para criar e manusear registos numa base de dados, e fazer integraçao com php, pesquisei uns tutoriais no google para me ajudar. O problema é que já dei mil e uma voltas para tentar colocar isto tudo a funcionar mas sem sucesso. Se alguém me puder ajudar agradecia :)

    Bem, utilizando o phpMyAdmin consigo criar bases de dados, mudar privilégios de utilizadores, inserir dados em tabelas etc. O meu objectivo é criar formulários no site flash (do género, recomendar site, enviar formulários, etc) e utilizar scripts em .php para comunicar com a base de dados e inserir registos.

    Quanto ao Flash, sei que preciso criar caixas de texto e dar-lhes nomes (ainda não consegui perceber se é melhor colocar nome para o objecto ou nome da variável da caixa de texto, no caso de envio de dados para o ficheiro php...). De seguida crio um botão e na frame adiciono o seguinte script:

    Código:
    submit.onPress = function () {
          loadVariablesNum("registo.php", 0, "POST")
    }  
    Neste caso, submit é o nome do botão, "registo.php" é o ficheiro que insere dados numa tabela existente na base de dados "test" no phpMyAdmin. Existe diferença entre utilizar como segundo argumento da função loadVariablesNum "0" ou "_blank"? E para terceiro argumento? Segundo percebi "POST" é para enviar para o php, e "GET" para receber do php, por isso suponho que devo utilizar "POST" certo? Aqui seria melhor utilizar loadVariables?

    O ficheiro registo.php é o seguinte:

    PHP:
    <?
    $email $_POST['email'];

    // Connects to the Database.
    $connection mysql_connect("localhost","root","");

    $db_selected mysql_select_db("test");

    // Preforms the SQL query
    //$result = mysql_query('INSERT INTO newsletter VALUES ("'.$email.'")');
    $result mysql_query("INSERT INTO newsletter VALUES ('f')"); //teste

    ?>
    Existe diferença entre utilizar $_POST['email'] e $_POST["email"]? Neste caso "email" é o nome da variável da caixa de texto ou o nome desse objecto do flash? Outra coisa, HTTP_POST_VARS era utilizado em versões anteriores do PHP, tipo a versão 4, estou certo? E quanto à parte de inserção na base de dados, esta parte está correcta ("'.$email.'")?

    Eu fiz publish no Flash, abro o html e ao carregar no botão, não é inserido nenhum registo na tabela 'newsletter' da base de dados 'test' :/ No phpMyAdmin funciona tudo bem, mas interligando o php com a base de dados não está a funcionar, não percebo porque. Alguém me consegue dar umas dicas? Já teste duma maneira mais simples, com código mais simples. Neste caso o ficheiro é o seguinte mail.php
    PHP:
    <?
    // recolho as variáveis que vem pelo formulário
    $nome_destinatario $_POST['nome_destinatario'];
    $email_destinatario $_POST['email_destinatario'];
    $nome_remetente $_POST['nome_remetente'];
    $email_remetente $_POST['email_remetente'];

    //indica url de seu site
    $url "http://www.feel.com";
    //indique o nome de seu site
    $nome_do_site "Feel";

    //indique o assunto da mensagem
    $assunto $nome_remetente " recomenda este site";
    //redigir a mensagem
    $mensagem "Caro/a " $nome_destinatario ":<br>";
    $mensagem .= $nome_remetente " recomenda-o a visitar ";
    $mensagem .= "<a href='" $url "'>" $url "</a><br><br>Divirta-se";

    //indica que o e-mail será enviado em formato HTML
    $titulo "From:".$email_remetente."\nReply-To:".$email_remetente."\n";
    $titulo .= "X-Mailer:PHP/".phpversao()."\n";
    $titulo .= "Mime-Versao: 1.0\n";
    $titulo .= "Content-Type: text/html";

    //envia a mensagem

    mail($email_destinatario$assunto$mensagem$titulo);
    ?>
    Penso a sintaxe de ambos os .php estarem correctas, de qualquer maneira se me tiver enganado e alguém consegui detectar o erro agradeço :) Com esse simples código, que supostamente deveria funcionar, não chega nenhum email :/ Já ouvi dizer que é melhor utilizar

    PHP:
    <?php
    ?>
    do que

    PHP:
    <?
    ?>
    É verdade?

    Por último, apenas um dúvida final. Ao fazer o upload dos ficheiros para colocar o site online, coloco apenas os .php, .html, .swf? Como funciona a parte da base de dados, sabendo que não vou utilizar o meu pc como servidor? Na conexão à base de dados através do php, sei que temos que alterar o "localhost" para o URL do nosso site, mas como criamos lá as tabelas? Esta parte está-me a fazer um pouco de confusão.

    Agradeço toda a ajuda ;)
     
  2. hostmake

    hostmake Power Member

    A questão das <? e ?> é indiferente, se o short_tags tiver ligado, é a mesma coisa.

    A questão de " " e ' ' também é indiferente.

    Tou a meio de 1 jogo, não tenho tempo para ler o resto do post para já. :D
     
  3. lilcrazy

    lilcrazy Power Member

    lolol ok ok. Mas pelo menos já me tiraste 2 dúvidas ;) Como ligas o short_tags já agora?
     
  4. Hugo_Carvalho

    Hugo_Carvalho Power Member

    Se foste tu que instalaste, podes mudar no ficheiro php.ini
    Se existirem dois, um na pasta /php/ e outro na pasta /apache/bin/ (ou se só existir este), é este que tens de alterar.
    Abres o php.ini e procuras por short_open_tag .
    E encontrarás algo assim:

    Código:
    ; Allow the <? tag.  Otherwise, only <?php and <script> tags are recognized.
    ; NOTE: Using short tags should be avoided when developing applications or
    ; libraries that are meant for redistribution, or deployment on PHP
    ; servers which are not under your control, because short tags may not
    ; be supported on the target server. For portable, redistributable code,
    ; be sure not to use short tags.
    short_open_tag = Off
    e mudas para On, ficando
    Código:
    short_open_tag = On
    :P
     
  5. lilcrazy

    lilcrazy Power Member

    Sim, ontem já tinha descoberto isso também. Obrigado na mesma. E quando ao resto, alguém me consegue ajudar?

    Obrigado
     
  6. Nuno Brito

    Nuno Brito Power Member

    Se não vais utilizar o teu computador como servidor (localhost) então terás de usar um servidor que hospede MySQL (remotehost) como é óbvio.

    Podes também tornar o teu localhost num remotehost se isso te simplificar a vida mas terás de ter o teu computador ligado à internet durante a apresentação e avaliação do teu trabalho.

    Uma boa ferramenta é o serviço de no-ip que atribue um nome à tua máquina local que te permite aceder de qualquer parte da Internet à tua máquina - útil para o caso de quereres usar a base de dados que usas agora.

    ---------

    Outra hipótese, procura um serviço que forneça hospedagem gratuita e corre o mySQL a partir dessa localização e crias as tabelas à mesmo com o phpmyAdmin do serviço deles.

    Deixo-te um link para o FreeHostia que é gratuito e vem com uma base de dados que podes usar à vontade para aquilo que precisas. (existem muitos outros serviços semelhantes por aí..)

    :)
     
  7. lilcrazy

    lilcrazy Power Member

    Exacto. Era isso mesmo eheh

    Obrigado pela ajuda Nuno Brito.

    Já agora, quanto ao problema do flash+php, o facto de eu ter o código (até o mais simples -> mail()) e não funcionar quando interligo o flash com o php. Alguém tem alguma sugestão?

    Obrigado mais uma vez a todos ;)
     
  8. fil79

    fil79 Power Member


    tenta assim:
    Código:
    /*Declarando objecto LoadVars que envia os valores*/
    
       var objManda:LoadVars = new LoadVars();
     
      objManda.nome_destinatario = nome_destinatario.text;
    //mais as restantes variáveis//
     
    objManda.sendAndLoad("pag.php",objManda,"POST");
     

    assim tem de funcionar
     
    Última edição pelo moderador: 6 de Janeiro de 2009
  9. lilcrazy

    lilcrazy Power Member

    Nesse caso, apenas necessito dar um valor ao nome do objecto da caixa de texto, por exemplo 'caixaTextoNome', e do lado do php faço algo do género '$variavelNome = $_Post['caixaTextoNome']' certo? Ou necessito dar também um nome de variável a essa caixa de texto? Uma dúvida final: relativamente aos .html, .swf, .php, ficam todos na paste htdocs da directoria onde foi instalado o xampp?

    Mais uma vez, Obrigado por toda a ajuda pessoal ;)
     
    Última edição: 6 de Janeiro de 2009
  10. fil79

    fil79 Power Member

    tens de instanciar a caixa de texto como caixaTextoNome..só com o nome de instancia funciona..e depois tens de ter esses ficheiros na directoria na pasta htdocs
     
  11. lilcrazy

    lilcrazy Power Member

    Obrigado fil79.

    Todas as minhas dúvidas foram tiradas. Já consegui colocar tudo a funcionar. Vamos lá ver a fazer o hosting se funciona tudo às mil maravilhas eheh
     

Partilhar esta Página