Schrift
[thread]23[/thread]

Hilfe mit einem GB: ich brauche mit nem selbstgeproggten GB (Seite 4)

Leser: 1


<< |< 1 2 3 4 5 6 >| >> 58 Einträge, 6 Seiten
Relais
 2003-08-29 19:32
#1816 #1816
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du verwendest kein

use strict;

Das solltest du machen, es wär von Vorteil.

Was sind Username etc., sind das von Dir definierte Subroutinen?
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Relais
 2003-08-29 19:36
#1817 #1817
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Strat,29.08.2003, 01:32]
... $cgi->param(Username) ...[/quote]
Das braucht noch Quotes, etwa so:

$cgi->param('Username')
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
MW2000
 2003-08-29 21:52
#1818 #1818
User since
2003-08-26
43 Artikel
BenutzerIn
[Homepage] [default_avatar]
Will mir jetzt jemand mein FUNKTIONIERENDES Gästebuch ruinieren?
Lies halt mal, was ich zu deiner Frage nach Username und den anderen Variablen geschrieben haben. Sie werden von einem Gästebuch-Formular übermittelt. ES FUNKTIONIERT ALLES, fang bitte net wieder mit so sachen an.
WOLLTE NUR MEINE FRAGE BEANTWORTET HABEN, DIE ICH SCHONMA GESTELLT HATTE, SIEHE SEITE 1 ENDE\n\n

<!--EDIT|MW2000|1062179590-->
Rächtschraibfehla sin Gratis
MW2000
 2003-08-29 22:01
#1819 #1819
User since
2003-08-26
43 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ach nochwas:
DAMIT DIE FRAGE NACH "use strict;" endlich aufhoert:
Was mach ich dann bitte falsch? Alles stimmt jetzt, habe die Variablen vorher deklariert (mit my...), aber folgende Meldung bekomm ich dabei noch

Code: (dl )
1
2
3
4
5
Bareword "Username" not allowed while "strict subs" in use at /homepages/18/d23090695/htdocs/cgi-bin/guestbook.cgi line 25.
Bareword "Username" not allowed while "strict subs" in use at /homepages/18/d23090695/htdocs/cgi-bin/guestbook.cgi line 25.
Bareword "Usermail" not allowed while "strict subs" in use at /homepages/18/d23090695/htdocs/cgi-bin/guestbook.cgi line 25.
Bareword "Usertext" not allowed while "strict subs" in use at /homepages/18/d23090695/htdocs/cgi-bin/guestbook.cgi line 25.
Execution of /homepages/18/d23090695/htdocs/cgi-bin/guestbook.cgi aborted due to compilation errors.
Rächtschraibfehla sin Gratis
Relais
 2003-08-29 22:21
#1820 #1820
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
"Username" kann in Perl so keine Variable sein.

Wie hast Du sie denn deklariert?

Als $Username vielleicht?

In genau dieser Schreibweise?

Wollen wir Dein funktionierendes Gästebuch ruinieren?

Wollen wir Deine Seele stehlen?

Was wollen wir eigentlich hier?

Vielleicht wollen wir ja sogar ganz manchmal jemandem helfen? 8)

Aber zum Glück machen wir das alles ganz freiwillig, und wo's schon nicht wie sonst zumeist mit Geld bezahlt wird, sind wir von Freundlichkeit ganz angetan. ^_^
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Strat
 2003-08-29 23:53
#1821 #1821
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Teste mal:
Code: (dl )
1
2
3
4
5
6
7
8
if ($cgi->param('Username') ne "" and 
$cgi->param('Usermail') and
$cgi->param('Usertext')
) {

# Hier alles was er machen soll, wenn keins der felder leer #ist...

}
\n\n

<!--EDIT|Strat|1062186860-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
MW2000
 2003-08-30 01:06
#1822 #1822
User since
2003-08-26
43 Artikel
BenutzerIn
[Homepage] [default_avatar]
Tut mir leid, Relais, aber das was du gesagt hattest war alles schonma auf Seite 1. Die Variablen Username, Usermail und Usertext sind nicht definiert, weil sie direkt per post-Methode aus einem Formular übergeben werden.

@Strat: Danke, denke das wird funktionieren, moment, ich probier mal...ok, es funktioniert, DANKE SEHR
Rächtschraibfehla sin Gratis
renee
 2003-08-30 01:23
#1823 #1823
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Edit: Hab nichts gesagt... Wer lesen kann ist klar im Vorteil *an die stirn schlag*\n\n

<!--EDIT|renee|1062192353-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Dubu
 2003-08-30 13:06
#1824 #1824
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=MW2000,29.08.2003, 23:06]Tut mir leid, Relais, aber das was du gesagt hattest war alles schonma auf Seite 1. Die Variablen Username, Usermail und Usertext sind nicht definiert, weil sie direkt per post-Methode aus einem Formular übergeben werden.
[/quote]
Du hast Relais wohl nicht richtig verstanden.

Wenn du schreibst
Code: (dl )
if (Username ne "") ...
dann muesste "Username" eine Funktion sein.

Dein "Username" ist aber keine Funktion. Und auch keine Variable, wie du immer behauptest (deshalb geht auch nicht "$Username"), sondern nur der Name eines Formularfeldes, und das wird bei dir nunmal ueber $cgi->param( 'Username' ) angesprochen. "Username" ist dabei nur ein String, der den Namen des Feldes angibt.

Strat hat deinen Code in dieser Hinsicht korrigiert. Relais hat dann noch strats Code verbessert, weil $cgi->param(Username) unter strict einen Fehler gibt: Hier sollte Username ja eigentlich ein String sein, es steht aber nicht in Anfuehrungszeichen. Somit waere es wiederum ein Funktionsaufruf, aber es gibt auch keine Funktion mit diesem Namen, also geht Perl davon aus, dass du doch einen String meinst, aber die Anfuehrungszeichen vergessen hast, und erteilt dir dafuer eine Ruege ("Bareword "Username" not allowed ..."). Einfach Anfuehrungszeichen drum herum, und alle sind zufrieden. Nur darfst du nicht von einer Variablen namens Usernamen reden und es auch nicht so behandeln.

Jetzt alle Missverstaendnisse beseitigt?
eisbeer
 2003-08-30 15:51
#1825 #1825
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Kurz mal eine kleine Einführung MW2000 (und sei mal net so aufbrausend, wir wollen ja nix böses):

$variable = 'String'; < Das ist eine Variable, ein String
@array = ('1','2'); < Das ist auch eine Variable, ein Array
%hash = ('key' => 'value'); < Das ist ebenfalls eine Variable, nämlich ein Hash

&funktion(); < Das ist ein Funktionsaufruf (auf die Subroutine sub funktion {})
Die kann aber auch mit funktion(); aufgerufen werden, aber dann darf kein use strict; verwendet werden, weil das mag das garnicht :)

Und sowas wie du geschrieben hast
Code: (dl )
if (Username = 'xyz') {...}

kann nicht funktionieren, weil Username ist weder ein String, ein Array, ein Hash noch ein Funktionsaufruf.

und noch zu use strict;: Dieses Pragma zwingt einen Programmierer nur dazu, deine Variabeln ordnungsgemäß zu deklarieren, dH sozusagen, dem Interpret vor dem eigentlichen gebrauch der Variable mitzuteilen, das "sie noch gebraucht wird" :)

Jetzt noch zu deinem Problem mit dem Namen und so freilassen:

Quote
if ((length($Username) < 'mindestlänge der Namens') || ($Usermail!=~/^[A-Z0-9_-.]\@[A-Z0-9_-]\.\w+$/i) || (length($Usertext) < 'mindestlänge der Texts')) {

# Irgendwelche Fehler ausgeben und dann das Programm
# abbrechen

}
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
<< |< 1 2 3 4 5 6 >| >> 58 Einträge, 6 Seiten



View all threads created 2003-08-26 18:35.