probleme de recuperation des variables de et vers PHP/flash

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de recuperation des variables de et vers PHP/flash

par Cyrano » 03 mai 2005, 23:25

Pour l'affichage, essaye ça :
<?php
mysql_connect("localhost","Silvia","fabien");

mysql_select_db("abonne");

//$tab = $HTTP_POST_VARS['pseudo'];
$qr = mysql_query("select pseudo, email from abonne order by codcli");

// start output string with number of entries
$nrows = mysql_num_rows($qr);
$rString = "n=".$nrows;
$i = 0;
while($row = mysql_fetch_array($qr))
{
    $rString .= "&pseudo".$i."=".$row['pseudo']."&email".$i."=".$row['email'];
    $i++;
}
echo $rString;
?> 

par Cyrano » 03 mai 2005, 23:19

Les deux langage ont sensiblement le même genre de syntaxe, mais le vocabulaire est propre à chaque langage même si on retrouve des points communs.

je prend le risque ...

par fsilvia » 03 mai 2005, 23:17

de passer pour une conne ... mais c'est quoi la différence entre ACTION SCRIPT et le code flash que j'ai fait dans l'autre exemple de l'insertion ?

Silvia

par Cyrano » 03 mai 2005, 23:12

Je suppose que le code Flash, c'est de l'Action Script et je suis bien incapable de te répondre là dessus, je ne le connais pas du tout :?

L'insertion MARCHE !!!!!

par fsilvia » 03 mai 2005, 23:11

STRAMERCI !!!!

j'ai réussi finalement à insérer !!!

maintenant ... je voudrais recupérer ce que j'ai finalement mis dans la base !

je vous montre le code (j'en ai honte) FLASH et PHP ... qui ne marchent pas !

PHP :

<?php
mysql_connect("localhost","Silvia","fabien");

mysql_select_db("abonne");

//$tab = $HTTP_POST_VARS['pseudo'];
$qr = mysql_query("select pseudo, email from abonne order by codcli");

// start output string with number of entries
$nrows = mysql_num_rows($qr);
$rString = "n=".$nrows;

for ($i=0; $i < $nrows; $i++) {
$row = mysql_fetch_array($qr);
$rString .= "&pseudo".$i."=".$row['pseudo']."&email".$i."=".$row['email'];
}
echo $rString;
?>

FLASH :

function showContent() {
var i;
trace (this.n)
content.htmlText = "";
for (i=0; i < this.n; i++) {
content.htmlText += "<b>" + this["pseudo"+i] + "</b><br>";
content.htmlText += "&nbsp;&nbsp;<a href='mailto:" + this["email"+i] + "'>" + this["email"+i] + "</a><br><br>";
}
}

// Create new load vars object c for data transfer
var c = new LoadVars();
c.onLoad = showContent;

c.sendAndLoad("http://localhost/test silvia/select2abonne.php",pseudo,"POST");



stop();

0 nouveau merci d'avance !
Silvia

...

par fsilvia » 03 mai 2005, 23:03

j'envoie avec POST, voici le code du FLASH :

if ((pseudo eq "") || (email eq "")) {
gotoAndPlay (6);
} else {
loadVariablesNum ("http://localhost/test silvia/insabonne2.php", 0, "POST");
done = 0;
play ();
}

en effet je n'ai plus l'erreur de tout à l'heure, mais il reste bloqué ... il attends ... mais quoi ?

merci encore
Silvia

par Cyrano » 03 mai 2005, 23:00

Ça veut dire que l'adresse du fichier n'est pas bonne.

Mais je vois autre chose: des paramètres dans l'url : dans le formulaire, les valeurs sont-elles envoyées avec la méthode post ou la méthode get ? c'est important parce que le code de traitement récupère les valeurs par la méthode post...

merci, mais ça va pas encore

par fsilvia » 03 mai 2005, 22:55

j'ai mis le code PHP que vous m'avez sugeré, et voici ler esultat :

Error opening URL "http://localhost/test silvia/insabonne2.php?done=0&pseudo=monpseudo&email=monmail"

pls help !

merci
Silvia

par Cyrano » 03 mai 2005, 22:37

Hello,
ce que tu peux commencer par faire, c'est d'ajouter une validation pour vérifier que les valeurs envoyées ne sont pas vides:
if(isset($_POST['pseudo']) && $_POST['pseudo'] != "")
{
    $pseudo = $_POST['pseudo'];
}
if(isset($_POST['email'] && $_POST['email'] != "")
{
    $email = $_POST['email'];
}
Ça, c'est le principe pour vérifier que les variables ont bien été envoyées et qu'elles contiennent une valeur. Tu peux donc à ce moment là décider d'interrompre l'enregistrement s'il n'y a rien à enregistrer et afficher un message d'erreur personnalisé, ou bien si tout est correct poursuivre. On reprand donc ton code d'insertion en l'insérant dans une condition.
<?php
if(isset($_POST['pseudo']) && isset($_POST['email']))
{
    if($_POST['pseudo'] != "" && $_POST['email'] != "")
    {
        $pseudo = $_POST['pseudo'];
        $email = $_POST['email'];
     // ----- insertion dans la base

    // ----- effectue la connection
    $link = mysql_connect("localhost","Silvia","fabien");
    if ($link == false) { parse("ok",0);}

    // ----- insertion dans la base
    $r = mysql_db_query("test"," insert into abonne (pseudo, email)
    VALUES ('". $pseudo ."','". $email ."')");
    //VALUES ($_POST['pseudo'],$_POST['email'] )");

    // ----- test si l'insertion c'est bien passée
    if ($r)
    parse("ok",1);
    else
    parse("ok",0);

    // ----- traitement terminé
    parse("done",1); 
?>
<p>Les valeurs ont été correctement reçues du formulaire, l'enregistrement s'est normalement déroulé.</p>
<?php
    }
    else
    {
?>
<p>Les valeurs reçues du formulaire sont vides, aucun enregistrement n'a pu avoir lieu.</p>
<?php
    }
}
else
{
?>
<p>Les valeurs n'ont pas été reçues du formulaire, aucun enregistrement n'a pu avoir lieu.</p>
<?php
}
?>
Voilà, essaye déjà avec ça et reviens pour la suite si ça ne fonctionne toujours pas en nous disant quels messages d'erreur tu obtiens.

par pjl » 03 mai 2005, 22:24

Cette ligne ne peut pas marcher.
 $r = mysql_db_query("test"," insert into abonne (pseudo, email) 
Il n'y a pas le guillemet et la parenthèse fermante.
Ensuite, à quoi sert la requete, il n'y a pas les valeurs à insérer.

probleme de recuperation des variables de et vers PHP/flash

par fsilvia » 03 mai 2005, 22:16

Bonjour,
je voudrais envoyer des données de FLASH vers PHP et viceversa;
Et pour faire ça, j'ai fait un pti exemple qui ne marche pas !

Quand j'envoie les donnée de FLASHv ers PHP, j'ai bien l'insertiond ans la abse mais les données sont vides !!!!

Quand je recupères les données de la base vers FLASH, ça ne fait rien, pas d'erreurs mais pas des données en sortie (dans la abse ily a des lignes);

je vous montre le code :

FLASH pour insertion données :

if ((pseudo eq "") || (email eq "")) {
gotoAndPlay (6);
} else {
loadVariablesNum ("http://localhost/test silvia/insertabonne.php", 0, "GET");
done = 0;
play ();
}

et PHP en reception des données (qui fait insert avec données vides) :

function parse($variable,$valeur)
{
echo "&$variable=$valeur";
}
/***************************************************************************/

// ----- insertion dans la base

// ----- effectue la connection
$link = mysql_connect("localhost","Silvia","fabien");
if ($link == false) { parse("ok",0);}

// ----- insertion dans la base
$r = mysql_db_query("test"," insert into abonne (pseudo, email)
//VALUES ('$pseudo','$email')");
VALUES ($_POST['pseudo'],$_POST['email'] )");

// ----- test si l'insertion c'est bien passée
if ($r)
parse("ok",1);
else
parse("ok",0);

// ----- traitement terminé
parse("done",1);
?>

et voici FLASH en reception des données (fonction recherche) :

function showContent() {
var i;
content.htmlText = "";
for (i=0; i < this.n; i++) {
content.htmlText += "<b>" + this["pseudo"+i] + "</b><br>";
content.htmlText += "&nbsp;&nbsp;<a href='mailto:" + this["email"+i] + "'>" + this["email"+i] + "</a><br><br>";
}
}

// Create new load vars object c for data transfer
var c = new LoadVars();
c.onLoad = showContent;

c.sendAndLoad("http://localhost/test silvia/select2abonne.php",pseudo,"POST");



stop();

et PHP qui devrait chercher les données dans la base :

<?php
mysql_connect("localhost","Silvia","fabien");

mysql_select_db("abonne");

//$tab = $HTTP_POST_VARS['pseudo'];
$qr = mysql_query("select pseudo, email from abonne order by codcli");

// start output string with number of entries
$nrows = mysql_num_rows($qr);
$rString = "n=".$nrows;

for ($i=0; $i < $nrows; $i++) {
$row = mysql_fetch_array($qr);
$rString .= "&pseudo".$i."=".$row['pseudo']."&email".$i."=".$row['email'];
}
echo $rString;
?>

je suis STRADEBUTTANTE ... et j'ai vmt besoin d'aide

merci
Silvia