PDA

Ver Versão Completa : Duvida de HTML/PHP


born2hack
19-08-2006, 12:37
Boas. Tenho um problema com um formulario. É uma caixa de texto, com metodo de submissao GET. Se eu enviar uma string do tipo "A&D" apenas o A é lido quando eu faço $_GET["nome"]; Como posso passar a string correctamente? Ja experimentei com javascript, usando a funcao "escape", mas dá erro à mesma.

PS: Nao posso usar o POST, pois isso resolvia logo o problema. Tem de ser mesmo o GET.

Denzil
19-08-2006, 14:55
Se tens apenas uma coisa para enviar via $_GET utilizas o asdas?asdasd=asdasd

qdo tens 2 coisas deves ter algo asdas?asdasd=asdasd&asdasd=asdasd

Verifica se tens os "="

born2hack
19-08-2006, 17:11
O meu problema nao é esse :p

Tou a enviar algo do tipo xxx.php?codigo=a&d
O código deve ser igual a "a&d", mas como o "&" é usado noutro contexto, quando leio a variavel apenas recebo "a". Ja experimentei colocar o "&" usando o codigo hexadecimal (ficava %20 se nao estou em erro), mas na leitura dá o mesmo problema (apenas le o "a").
A minha duvida é se há alguma maneira de contornar este problema.

Denzil
19-08-2006, 18:18
Hum... tou a ver o dilema...
tens a função do php urlencode http://pt.php.net/manual/en/function.urlencode.php

que te pode ajudar a resolver isso. Outra solução, seria substituires os & por um caracter tipo "-" (utilizando o str_replace) e dps substituis por & quando precisas :)

born2hack
19-08-2006, 23:12
Hum... tou a ver o dilema...
tens a função do php urlencode http://pt.php.net/manual/en/function.urlencode.php

que te pode ajudar a resolver isso. Outra solução, seria substituires os & por um caracter tipo "-" (utilizando o str_replace) e dps substituis por & quando precisas :)
Essa é a solução actual, mas pouco eficiente, pois tambem tenho o º,ª,/ e outros que possam surgir.
O do url encode parece ser a soluçao. Ate vi la alguem com um problema semelhante ao meu apresentou uma soluçao porreira.
Thanks :D

Denzil
20-08-2006, 15:20
Sempre ás ordens :up:

born2hack
20-08-2006, 17:56
Ja agora se me quiseres arranjar a soluçao para implementar suporte para multiplas bases de dados :joking
Por acaso e algo que tenho que fazer, mas ainda nao tive tempo para sentar-me e pensar na soluçao (as tantas o google vai ajudar-me :p).

Denzil
20-08-2006, 18:21
:) Por acaso tive de utilizar duas bases de dados diferentes, no mesmo site (site principal, está a utilizar uma db própria e a do fórum ao mesmo tempo)... basta fazeres $db1 = mysql_db_connect(xxxx) e $db2 = mysql_db_connect(xxx) para cada uma das bases de dados pretendidas.

born2hack
21-08-2006, 00:35
:) Por acaso tive de utilizar duas bases de dados diferentes, no mesmo site (site principal, está a utilizar uma db própria e a do fórum ao mesmo tempo)... basta fazeres $db1 = mysql_db_connect(xxxx) e $db2 = mysql_db_connect(xxx) para cada uma das bases de dados pretendidas.
Fosse esse o meu problema. O que me refiro sao as queries, que por exemplo no mysql e no postgresql sao ligeiramente diferentes. E preciso (eventualmente, nao vai ser agora) dar suporte as 2 (entre outras) base de dados. Da um bocado de trabalho, mas neste momento ha coisas mais urgentes a serem feitas do que isso :p

Thanks na mesma hehe

Denzil
22-08-2006, 10:04
Bem, e se fizeres funções para os SELECT, UPDATE, INSERT e DELETE com switch, recebendo como argumento o tipo da base de dados, e os values a introduzir ou apagar, escolhendo consoante a base de dados pretendida o formato correcto?

born2hack
22-08-2006, 13:19
É uma ideia :) Thanks

PS: Irritante é no mySQL todos os valores irem entre '', e no postgreSQL os numeros terem que ir sem as ''. Porque nao seguem todos um standard? Geez..

Denzil
23-08-2006, 09:42
Não são todos os valores, apenas os VARCHAR e os TEXT é que precisam '' :) e isso tb o postgreSQL, segundo as normas deve ter ;)

born2hack
23-08-2006, 11:04
Ai é? Isso entao ja é outra coisa. É que eu por habito no mySQL colocava '' em tudo e nunca tinha problemas. Assim ja se torna mais facil.
Ja agora, o mySQL suporta queries do tipo INSERT INTO tabela(valor1,valor4) VALUES(1,'abcd') ?

Denzil
23-08-2006, 12:44
Sim, suporta :) e suporta mais simples:

INSERT INTO tabela values ('','asdasd'); -> caso o primeiro campo seja uma primary key e tenha um auto_increment

INSERT INTO tabela values (1,'asdasd'); -> caso o primeiro campo seja INT non auto_increment

INSERT INTO tabela values ('waza','asdasd'); -> caso o primeiro campo não seja uma primary key INT

Espero ter ajudado :up:

born2hack
23-08-2006, 13:11
Essa parte eu ja conhecia, mas o postgres nao suporta esse modo. Tenho que usar um que seja compativel pelos 2. Apos umas horas, ja remodulei as queries de modo a poder alterar a bd mais facilmente. Finalmente :p

Denzil
24-08-2006, 10:08
:up:

born2hack
29-08-2006, 14:12
Tenho mais uma duvida, que nao sei se e possivel resolver.
Preciso de saber, com recurso a um script php, se o modulo mod_rewrite do apache foi carregado e se a directiva Overwrite All (tambem do apache) está activado. Em relação ao php, como posso saber se um dos modulos (neste caso o modulo do postgres) esta activado?

Denzil
31-08-2006, 11:16
Podes utilizar o php_info() para saberes que módulos estão activos no server :)