Prob dynamique perl->html->perl
Résolu
herve70
-
herve70 -
herve70 -
bonjour j ai créer une page html qui transmet des parametres a un perl qui va me générer un page html.jusque la tout fonctionne bien
Maintenant je veux crée la page html qui recoit les parametres a partir d un perl: ce que je fait c'est que j ouvre un fichier commencant par
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
## creation d'objet CGI
my $Query = CGI->new();
je crée une entete html
suis de mon body qui est un copier coller de la page html fonctionnante
je crée la fin de ma page html et je print tout ca
resultat: j ai bien un bon affichage de ma page mais lorsque saisie le parametre en question et que je soumet mais j ai ce message d'erreur et je vois pas du tout ou faire la correction car a l endroit indiqué y a rien
message erreur:
Ligne : 11
Car : 1
Erreur : Objet attendu
Code : 0
URL : http://....................programme.pl
Maintenant je veux crée la page html qui recoit les parametres a partir d un perl: ce que je fait c'est que j ouvre un fichier commencant par
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
## creation d'objet CGI
my $Query = CGI->new();
je crée une entete html
suis de mon body qui est un copier coller de la page html fonctionnante
je crée la fin de ma page html et je print tout ca
resultat: j ai bien un bon affichage de ma page mais lorsque saisie le parametre en question et que je soumet mais j ai ce message d'erreur et je vois pas du tout ou faire la correction car a l endroit indiqué y a rien
message erreur:
Ligne : 11
Car : 1
Erreur : Objet attendu
Code : 0
URL : http://....................programme.pl
A voir également:
- Prob dynamique perl->html->perl
- Tableau croisé dynamique - Guide
- Editeur html - Télécharger - HTML
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Liste déroulante dynamique excel - Guide
- Espace html - Astuces et Solutions
3 réponses
Re,
mais il est assez lourd a regarder
plus lourd que celui là ? perl reseaux#58
Si tu l'envoie mets le code entre les balises (le bouton Code).
Je vais le regarder ce soir.
lami20j
mais il est assez lourd a regarder
plus lourd que celui là ? perl reseaux#58
Si tu l'envoie mets le code entre les balises (le bouton Code).
Je vais le regarder ce soir.
lami20j
#!/usr/bin/perl
## Programme pour créer la structure----------------------------------------------------------------
use strict;
use warnings;
use CGI;
## creation d'objet CGI
my $Query = CGI->new();
## declaration de variable
my $i=0;
my $j=0;
## creation du header de la page html----------------------------------------------------------------------
my $HTML = $Query->header(-expires=>'-1', pragma=>'no-cache');
my $HEADER = $Query->start_html(-title=>"Page premiere",
-meta=>({http_equiv=>'Content-type',content=>'text/html',charset=>'ISO-8859-1'}),
);
## creation du body de la page HTML-------------------------------------------------------------------------
my @Body;
$i=0;
$j=0;
$Body[$i++] = '<script language="JavaScript" type="text/javascript">';
$Body[$i++] = 'function lance()';
$Body[$i++] = '{';
$Body[$i++] = 'var chaine=document.FORM.P_PER.value;';
$Body[$i++] = 'if((chaine.search(/^2[0-9][0-9][0-9][0-9][0-9]/) != -1)';
$Body[$i++] = '{';
$Body[$i++] = 'var Form = document.FORM;';
$Body[$i++] = 'var ValPar = \'\';';
$Body[$i++] = 'for ( var i=0; i<Form.elements.length; i++ )';
$Body[$i++] = '{';
$Body[$i++] = 'if ( Form.elements[i].name.match(/^P_/) )';
$Body[$i++] = '{';
$Body[$i++] = 'ValPar += \'{\' + Form.elements[i].name.replace(/^P_/,\'\') + \'::\' + Form.elements[i].value + \'}\';';
$Body[$i++] = '}';
$Body[$i++] = '}';
$Body[$i++] = 'var Action = \'http://lance.pl?SHELL=\' + Form.SHELL.value + \'&URL=\' + Form.URL.value + \'&PARAMS=\' + ValPar;';
$Body[$i++] = 'location = Action;';
$Body[$i++] = '}';
$Body[$i++] = 'else';
$Body[$i++] = '{';
$Body[$i++] = 'alert (\'Le champ per est errone\');';
$Body[$i++] = '}';
$Body[$i++] = '}';
$Body[$i++] = '</script>';
$Body[$i++] = '<center>';
$Body[$i++] = '<table border=1>';
$Body[$i++] = '<tr>';
$Body[$i++] = '<td align=center>';
$Body[$i++] = '<h2>';
$Body[$i++] = '<center> <I> Transfert </I> </center>';
$Body[$i++] = '</h2>';
$Body[$i++] = '</td>';
$Body[$i++] = '</tr>';
$Body[$i++] = '</table>';
$Body[$i++] = '</center>';
$Body[$i++] = '<hr>';
$Body[$i++] = '<ul type="circle">';
$Body[$i++] = '<li>';
$Body[$i++] = '<a href="page.html"> RETOUR </a>';
$Body[$i++] = '</ul>';
$Body[$i++] = '<center>';
$Body[$i++] = '<table border=3 cellspacing=10 BORDERCOLOR="black">';
$Body[$i++] = '<form name="FORM">';
$Body[$i++] = '<tr>';
$Body[$i++] = '<td width="5"></td>';
$Body[$i++] = '<td valign="middle" align="center">';
$Body[$i++] = 'Saisir la periode :';
$Body[$i++] = '</td>';
$Body[$i++] = '<td valign="middle" align="center" bgcolor="black">';
$Body[$i++] = '<input type="text" name="P_PER" size="8" maxlength="6">';
$Body[$i++] = '</td>';
$Body[$i++] = '</tr>';
$Body[$i++] = '<tr>';
$Body[$i++] = '<td colspan="3">';
$Body[$i++] = '<input type="hidden" name="SHELL" value="/dep/all.sh">';
$Body[$i++] = '<input type="hidden" name="PARAMS" value="">';
$Body[$i++] = '<input type="hidden" name="URL" value="http://pageall.html">';
$Body[$i++] = '</td>';
$Body[$i++] = '</tr>';
$Body[$i++] = '<tr>';
$Body[$i++] = '<td width="5"></td>';
$Body[$i++] = '<td valign="bottom" align="right">';
$Body[$i++] = '<input type="reset" value="Effacer" name="NoExec">';
$Body[$i++] = '<input type="button" value="Retour" name="Back" onclick="javascript:history.back();">';
$Body[$i++] = '</td>';
$Body[$i++] = '<td valign="bottom" align="left">';
$Body[$i++] = '<input type="button" value="Envoyer" name="Exec" onclick="javascript:if(confirm(\'aller go sinon retour\')){lance();} else {alert(\'resaisir\');};">';
$Body[$i++] = '</td>';
$Body[$i++] = '</tr>';
$Body[$i++] = '</form>';
my @Fin;
$i=0;
$Fin[$i++] = '</table></center></body></html>';
## envoi page Html-------------------------------------
print "$HTML\n$HEADER\n@Body\n@Fin\n";
## Programme pour créer la structure----------------------------------------------------------------
use strict;
use warnings;
use CGI;
## creation d'objet CGI
my $Query = CGI->new();
## declaration de variable
my $i=0;
my $j=0;
## creation du header de la page html----------------------------------------------------------------------
my $HTML = $Query->header(-expires=>'-1', pragma=>'no-cache');
my $HEADER = $Query->start_html(-title=>"Page premiere",
-meta=>({http_equiv=>'Content-type',content=>'text/html',charset=>'ISO-8859-1'}),
);
## creation du body de la page HTML-------------------------------------------------------------------------
my @Body;
$i=0;
$j=0;
$Body[$i++] = '<script language="JavaScript" type="text/javascript">';
$Body[$i++] = 'function lance()';
$Body[$i++] = '{';
$Body[$i++] = 'var chaine=document.FORM.P_PER.value;';
$Body[$i++] = 'if((chaine.search(/^2[0-9][0-9][0-9][0-9][0-9]/) != -1)';
$Body[$i++] = '{';
$Body[$i++] = 'var Form = document.FORM;';
$Body[$i++] = 'var ValPar = \'\';';
$Body[$i++] = 'for ( var i=0; i<Form.elements.length; i++ )';
$Body[$i++] = '{';
$Body[$i++] = 'if ( Form.elements[i].name.match(/^P_/) )';
$Body[$i++] = '{';
$Body[$i++] = 'ValPar += \'{\' + Form.elements[i].name.replace(/^P_/,\'\') + \'::\' + Form.elements[i].value + \'}\';';
$Body[$i++] = '}';
$Body[$i++] = '}';
$Body[$i++] = 'var Action = \'http://lance.pl?SHELL=\' + Form.SHELL.value + \'&URL=\' + Form.URL.value + \'&PARAMS=\' + ValPar;';
$Body[$i++] = 'location = Action;';
$Body[$i++] = '}';
$Body[$i++] = 'else';
$Body[$i++] = '{';
$Body[$i++] = 'alert (\'Le champ per est errone\');';
$Body[$i++] = '}';
$Body[$i++] = '}';
$Body[$i++] = '</script>';
$Body[$i++] = '<center>';
$Body[$i++] = '<table border=1>';
$Body[$i++] = '<tr>';
$Body[$i++] = '<td align=center>';
$Body[$i++] = '<h2>';
$Body[$i++] = '<center> <I> Transfert </I> </center>';
$Body[$i++] = '</h2>';
$Body[$i++] = '</td>';
$Body[$i++] = '</tr>';
$Body[$i++] = '</table>';
$Body[$i++] = '</center>';
$Body[$i++] = '<hr>';
$Body[$i++] = '<ul type="circle">';
$Body[$i++] = '<li>';
$Body[$i++] = '<a href="page.html"> RETOUR </a>';
$Body[$i++] = '</ul>';
$Body[$i++] = '<center>';
$Body[$i++] = '<table border=3 cellspacing=10 BORDERCOLOR="black">';
$Body[$i++] = '<form name="FORM">';
$Body[$i++] = '<tr>';
$Body[$i++] = '<td width="5"></td>';
$Body[$i++] = '<td valign="middle" align="center">';
$Body[$i++] = 'Saisir la periode :';
$Body[$i++] = '</td>';
$Body[$i++] = '<td valign="middle" align="center" bgcolor="black">';
$Body[$i++] = '<input type="text" name="P_PER" size="8" maxlength="6">';
$Body[$i++] = '</td>';
$Body[$i++] = '</tr>';
$Body[$i++] = '<tr>';
$Body[$i++] = '<td colspan="3">';
$Body[$i++] = '<input type="hidden" name="SHELL" value="/dep/all.sh">';
$Body[$i++] = '<input type="hidden" name="PARAMS" value="">';
$Body[$i++] = '<input type="hidden" name="URL" value="http://pageall.html">';
$Body[$i++] = '</td>';
$Body[$i++] = '</tr>';
$Body[$i++] = '<tr>';
$Body[$i++] = '<td width="5"></td>';
$Body[$i++] = '<td valign="bottom" align="right">';
$Body[$i++] = '<input type="reset" value="Effacer" name="NoExec">';
$Body[$i++] = '<input type="button" value="Retour" name="Back" onclick="javascript:history.back();">';
$Body[$i++] = '</td>';
$Body[$i++] = '<td valign="bottom" align="left">';
$Body[$i++] = '<input type="button" value="Envoyer" name="Exec" onclick="javascript:if(confirm(\'aller go sinon retour\')){lance();} else {alert(\'resaisir\');};">';
$Body[$i++] = '</td>';
$Body[$i++] = '</tr>';
$Body[$i++] = '</form>';
my @Fin;
$i=0;
$Fin[$i++] = '</table></center></body></html>';
## envoi page Html-------------------------------------
print "$HTML\n$HEADER\n@Body\n@Fin\n";
Re,
Si tu l'envoie mets le code entre les balises (le bouton Code). Ben, tu ne l'as pas fait ;-)
Déjà je t'annonce que ton code fonctionne chez moi sans problèmes.
C'est peut être à cause de serveur.
En revanche j'ai nettoyé un peut ton script :-)) ( c'est laide avec autant de $Body[$i++] quand tu peux utiliser une simple variable scalaire.
Pareil pour @Fin, pas besoin
Il manquais aussi une balise </li>
Si tu l'envoie mets le code entre les balises (le bouton Code). Ben, tu ne l'as pas fait ;-)
Déjà je t'annonce que ton code fonctionne chez moi sans problèmes.
C'est peut être à cause de serveur.
En revanche j'ai nettoyé un peut ton script :-)) ( c'est laide avec autant de $Body[$i++] quand tu peux utiliser une simple variable scalaire.
Pareil pour @Fin, pas besoin
Il manquais aussi une balise </li>
$Body[$i++] = '<ul type="circle">'; $Body[$i++] = '<li>'; $Body[$i++] = '<a href="page.html"> RETOUR </a>'; $Body[$i++] = '</ul>';Voici ton code
#!/usr/bin/perl ## Programme pour créer la structure ## use strict; use warnings; use CGI; ## creation d'objet CGI ## my $Query = CGI->new(); ## creation du header de la page html ## my $HTML = $Query->header(-expires=>'-1', pragma =>'no-cache'); my $HEADER = $Query->start_html(-title=>"Page premiere", -meta=>({http_equiv=>'Content-type', content =>'text/html', charset =>'ISO-8859-1'}), ); ## creation du body de la page HTML ## my $Body = q{<script language="JavaScript" type="text/javascript"> function lance() { var chaine=document.FORM.P_PER.value; if((chaine.search(/^2[0-9][0-9][0-9][0-9][0-9]/) != -1) { var Form = document.FORM; var ValPar = \'\'; for ( var i=0; i<Form.elements.length; i++ ) { if ( Form.elements[i].name.match(/^P_/) ) { ValPar += \'{\' + Form.elements[i].name.replace(/^P_/,\'\') + \'::\' + Form.elements[i].value + \'}\'; } } var Action = \'http://lance.pl?SHELL=\' + Form.SHELL.value + \'&URL=\' + Form.URL.value + \'&PARAMS=\' + ValPar; location = Action; } else { alert (\'Le champ per est errone\'); } } </script> <center> <table border=1> <tr> <td align=center> <h2><center> <I> Transfert </I> </center></h2> </td> </tr> </table> </center> <hr> <ul type="circle"> <li><a href="page.html"> RETOUR </a></li> </ul> <center> <table border=3 cellspacing=10 BORDERCOLOR="black"> <form name="FORM"> <tr> <td width="5"></td> <td valign="middle" align="center">Saisir la periode :</td> <td valign="middle" align="center" bgcolor="black"> <input type="text" name="P_PER" size="8" maxlength="6"> </td> </tr> <tr> <td colspan="3"> <input type="hidden" name="SHELL" value="/dep/all.sh"> <input type="hidden" name="PARAMS" value=""> <input type="hidden" name="URL" value="http://pageall.html"> </td> </tr> <tr> <td width="5"></td> <td valign="bottom" align="right"> <input type="reset" value="Effacer" name="NoExec"> <input type="button" value="Retour" name="Back" onclick="javascript:history.back();"> </td> <td valign="bottom" align="left"> <input type="button" value="Envoyer" name="Exec" onclick="javascript:if(confirm(\'aller go sinon retour\')){lance();} else {alert(\'resaisir\');};"> </td> </tr> </form>}; my $Fin = '</table></center></body></html>'; ## envoi page Html------------------------------------- print "$HTML\n$HEADER\n$Body\n$Fin\n";lami20j
je pourrais t envoyé le code mais il est assez lourd a regarder