Frage zum Tutorial Affenformular

PHP - alles Rund um die Programmierung von PHP und MySQL

Ist die geniale Programmiersprache, da sowohl für Einsteiger geeignet wie auch für Profis.

Moderator: lauras

Beiträge bitte im neuen Forum

Frage zum Tutorial Affenformular

Beitragvon Zyon » Sonntag 29. Mai 2011, 00:07

Hallo,

bin gerade am durcharbeiten des PHP Tutorials für Anfänger ;)
Hängen geblieben bin ich am Schluss des Übungsteils Affenformulare ;)

und zwar, wenn ich die Lösung ganz genau so übernehme, bekomme ich folgende Fehlermeldung:
Notice: Undefined index: kontrolle in C:\xampp\htdocs\affenformular-kontrollfeld.php on line 6

Nochmal zur Veranschaulichung:
Code: Alles auswählen
if ( $_GET['kontrolle'] == 1 )


Es funktioniert zwar schon, aber es steht dann immer über den Eingabefehlern diese lästige Fehlermeldung.
Ich habs jetzt ein bisschen anders gelöst und zwar mit folgendem Code:
Code: Alles auswählen
   if ( empty ($_GET['kontrolle']) == 0)


Wahrscheinlich bekommt man immer eine Fehlermeldung, da in der 1. Methode ja noch gar kein Wert eingetragen wurde, und somit die Fehlermeldung schon vor klicken des Submit Buttons steht.

Ist meine Denkweise hier richtig? Wenn ja wie bekommt man es hin, dass nach obriger Methode gleich am Anfang noch keine Fehlermeldung erscheint?

Schon mal ein Danke im Voraus ;)
Zyon
HTML-Suchnase
 
Beiträge: 7
Registriert: Mittwoch 18. Mai 2011, 17:17

Re: Frage zum Tutorial Affenformular

Beitragvon neuling11 » Sonntag 29. Mai 2011, 06:38

Hallo,

Ist meine Denkweise hier richtig? Wenn ja wie bekommt man es hin, dass nach obriger Methode gleich am Anfang noch keine Fehlermeldung erscheint?

Richtig. Du musst erst vergleichen, wenn der Wert gesetzt ist,
also z.B.
Code: Alles auswählen
if(
//falls ein Wert für kontrolle gesetzt wurde
isset($_GET['kontrolle'])){

dann hier vergleichen

}


oder du machst es so, dass ein Wert gesetzt wird, wenn nichts gesetzt ist,
also z.B. 0
Code: Alles auswählen
if (!isset($_GET['kontrolle'])){
$_GET['kontrolle'] = 0 ;
}
neuling11
HTML-Freund
 
Beiträge: 128
Registriert: Freitag 17. Dezember 2010, 19:08
Wohnort: Deutschland

Re: Frage zum Tutorial Affenformular

Beitragvon Zyon » Sonntag 29. Mai 2011, 18:36

Dankeschön ;)
Hat auch mit "isset" super funktioniert ;)

Nun muss ich euch leider nochmal belästigen, nun bin ich beim Beispiel des Affenformulars hängen geblieben ;)

Habe den Code eigentlich komplett von der Lösung so übernommen...

Code: Alles auswählen
<?php

if ( $_GET['nachname'] == "" OR $_GET['anzahl'] == "" )
{
    echo '<form action="affenformular-kontrollfeld2.php"
    method="GET">'


        if ( $_GET['nachname'] == "" )
    {
        if ( $_GET['schon_mal_abgesendet'] == "Ja")
        {
            echo "<p>Hinweis: Bitte Feld Nachname ausf&uuml;llen</p>";
        }
    }

    echo 'Nachname: ';
    echo '<input type="text" name="nachname" value=""';

    echo $_GET['nachname'];

    echo '"size="20" maxlength="60"';

    if ( $_GET['anzahl'] == "" )
{
    if ( $_GET['schon_mal_abgesendet'] == "Ja")
    {
        echo "<p>Hinweis: Bitte das Feld Anzahl ausf&uuml;llen</p>";
    }
}

echo '<p>Anzahl der gew&uuml;nschten Reservierungen:</p>';
echo '<input type="text" name="reservierungen" value=""';

echo $_GET['anzahl'];
echo '" size="4" maxlength="4" />';

echo '<input type="hidden" name="schon_mal_abgesendet"
value="ja" />';

echo '<br />';
    echo '<input type="Submit" name="" value="absenden" />';

      echo '</form>';

    echo "<p>Bitte alle Felder ausfüllen</p>";
    exit;
}
else
{
         echo "<p>Folgende Angaben wurden gemacht</p>";

    echo "<p>Nachname :";
    echo $_GET['nachname'];

    echo "<p>Anzahl der Reservierungen";
    echo $_GET['anzahl'];
}

?>


Nur bringt er mir dann immer folgende Fehlermeldung:

Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in C:\xampp\htdocs\affenformular-kontrollfeld2.php on line 9


Hab schon ein paar Sachen probiert auch mit "OR" und "AND" prbiert, ist ja eigentlich das gleiche wie wenn ich 2 if Abfragen stelle oder?
Leider klappts einfach nicht und es wurde noch nichts im Browser angezeigt, immer dieser lästige Fehler ;)

Hoffe Ihr könnt mir weiterhelfen ;)
Zyon
HTML-Suchnase
 
Beiträge: 7
Registriert: Mittwoch 18. Mai 2011, 17:17

Re: Frage zum Tutorial Affenformular

Beitragvon neuling11 » Sonntag 29. Mai 2011, 18:42

Hallo,

ein echo Befehl endet immer mit ;
.

Also echo 'immer mit Semikolum beenden';

Das fehlt aber bei Dir bei dem Link.
neuling11
HTML-Freund
 
Beiträge: 128
Registriert: Freitag 17. Dezember 2010, 19:08
Wohnort: Deutschland

Re: Frage zum Tutorial Affenformular

Beitragvon Zyon » Montag 30. Mai 2011, 14:21

Schon mal Danke für für die schnelle Antwort ;)

Semikolon hab ich wirklich übersehen.

Das Simikolon ist gesetzt, aber nun eine ganze Reige von Fehlern....

Notice: Undefined index: nachname in C:\xampp\htdocs\affenformular-kontrollfeld2.php on line 3


Notice: Undefined index: nachname in C:\xampp\htdocs\affenformular-kontrollfeld2.php on line 9

Notice: Undefined index: schon_mal_abgesendet in C:\xampp\htdocs\affenformular-kontrollfeld2.php on line 11
Nachname: Notice: Undefined index: nachname in C:\xampp\htdocs\affenformular-kontrollfeld2.php on line 20
"size="20" maxlength="60"
Notice: Undefined index: anzahl in C:\xampp\htdocs\affenformular-kontrollfeld2.php on line 24

Notice: Undefined index: schon_mal_abgesendet in C:\xampp\htdocs\affenformular-kontrollfeld2.php on line 26

Anzahl der gewünschten Reservierungen:

Notice: Undefined index: anzahl in C:\xampp\htdocs\affenformular-kontrollfeld2.php on line 35
" size="4" maxlength="4" />

Bitte alle Felder ausfüllen


Eigentlich immer der gleiche Fehler: Undefined index hmm was beudet dieser?
Zyon
HTML-Suchnase
 
Beiträge: 7
Registriert: Mittwoch 18. Mai 2011, 17:17

Re: Frage zum Tutorial Affenformular

Beitragvon neuling11 » Montag 30. Mai 2011, 14:48

Hallo,

das bedeutet einfach, dass für die Variablen kein Wert gesetzt ist.
Du darfst halt erst abfragen wenn der und der Wert gesetzt ist,
oder gleich am Anfang (einen) Wert/e setzen.
neuling11
HTML-Freund
 
Beiträge: 128
Registriert: Freitag 17. Dezember 2010, 19:08
Wohnort: Deutschland

Re: Frage zum Tutorial Affenformular

Beitragvon CyberGirl » Montag 30. Mai 2011, 15:42

Hi,

ich habe es mir zur Angewohnheit gemacht an Anfang alle Variablen zu initialisieren. So lassen sich einige Fehler vermeiden.

Code: Alles auswählen
  $post_back = isset($_POST['submit']);
 
  $name = isset($_POST['name']) ? $_POST['name'] : "";
 
  $email = isset($_POST['email']) ? $_POST['email'] : "";
 
  $message = isset($_POST['message']) ? $_POST['message'] : "";
 
  $error = "";


LG
Benutzeravatar
CyberGirl
HTML-Freund
 
Beiträge: 115
Registriert: Sonntag 30. Januar 2011, 19:30

Re: Frage zum Tutorial Affenformular

Beitragvon Peter1978 » Samstag 4. Juni 2011, 07:08

Hallo ternärer Operator.

gruß
Benutzeravatar
Peter1978
HTML-Acrobat
 
Beiträge: 411
Registriert: Dienstag 15. Juni 2010, 08:07
Wohnort: Innsbruck

Re: Frage zum Tutorial Affenformular

Beitragvon Zyon » Dienstag 7. Juni 2011, 22:03

Danke hat mir weiter geholfen :)

So, nun habe ich mich mal am beispiel von einem kleinen Wohngebäuderechner für ein Browsergame probiert....

Code: Alles auswählen
<?php

$divisor = "100";
$prozent = isset($_GET['prozent']) ? $_GET['prozent'] : "";


$wohnhaus = isset($_GET['wohnhaus']) ? $_GET['wohnhaus'] : "";
$wohnhaus_punkte = "20";
$wohnhaus_ergebnis = ($wohnhaus * $wohnhaus_punkte) / $divisor;
$endergebnis_wohnhaus = ($wohnhaus_ergebnis * $prozent);


$reihenhaus = isset($_GET['reihenhaus']) ? $_GET['reihenhaus'] : "";
$reihenhaus_punkte = "40";
$reihenhaus_ergebnis = ($reihenhaus * $reihenhaus_punkte) / $divisor;
$endergebnis_reihenhaus = ($reihenhaus_ergebnis * $prozent);


$mehrfamilienhaus = isset($_GET['mehrfamilienhaus']) ? $_GET['mehrfamilienhaus'] : "";
$mehrfamilienhaus_punkte = "60";
$mehrfamilienhaus_ergebnis = ($mehrfamilienhaus * $mehrfamilienhaus_punkte) / $divisor;
$endergebnis_mehrfamilienhaus = ($mehrfamilienhaus_ergebnis * $prozent);


$hochhaus = isset($_GET['hochhaus']) ? $_GET['hochhaus'] : "";
$hochhaus_punkte = "80";
$hochhaus_ergebnis = ($hochhaus * $hochhaus_punkte) / $divisor;
$endergebnis_hochhaus = ($hochhaus_ergebnis * $prozent);


$kraftwerk = isset($_GET['kraftwerk']) ? $_GET['kraftwerk'] : "";
$kraftwerk_punkte = "20";
$kraftwerk_ergebnis = ($kraftwerk * $kraftwerk_punkte) / $divisor;
$endergebnis_kraftwerk = ($kraftwerk_ergebnis * $prozent);


$steinbruch = isset($_GET['steinbruch']) ? $_GET['steinbruch'] : "";
$eisenschmelze = isset($_GET['eisenschmelze']) ? $_GET['eisenschmelze'] : "";
$bohrturm = isset($_GET['bohrturm']) ? $_GET['bohrturm'] : "";
$ölraffinerie = isset($_GET['oelraffinerie']) ? $_GET['oelraffinerie'] : "";


if ($wohnhaus == TRUE OR $reihenhaus == TRUE)

{
    echo "Punkte f&uuml;r Wohnh&auml;user: ". $endergebnis_wohnhaus;
    echo '<br>';
    echo "Punkte f&uuml;r Reihenh&auml;user: ". $endergebnis_reihenhaus;
    echo '<br>';
    echo "Punkte f&uuml;r Mehrfamilienh&auml;user". $endergebnis_mehrfamilienhaus;
    echo '<br>';
    echo "Punkte gesamt: ". ($endergebnis_wohnhaus + $endergebnis_reihenhaus +
    $endergebnis_mehrfamilienhaus);
}


else
{

echo'<form action="punkterechner.php"
method="get" name="Formular1" id="Formular1">

<p>Wohnhäuser:
<input type="zahl" name="wohnhaus" id="wohnhaus"
size="30" maxlength="100" /></p>

<p>Reihenh&auml;user:
<input type="zahl" name="reihenhaus" id="reihenhaus"
size="30" maxlenth="100" /></p>

<p>Mehrfamilienh&auml;user:
<input type="zahl" name="mehrfamilienhaus" id="mehrfamilienhaus"
size="30" maxlength="100" /></p>

<p>Hochh&auml;user:
<input type="zahl" name="hochhaus" id="hochhaus"
size="30" maxlength="100" /></p>

<p>Kraftwerke:
<input type="zahl" name="kraftwerk" id="kraftwerk"
size="30" maxlength="100 />"</p>

<p>Prozente:
<input type="zahl" name="prozent" id="prozent"
sieze="30" maxlength="100" /></p>

<input type="submit" name="Punkte Berechnen" id="Punkte Berechnen"
size="50" value="Punkte berechnen" />


</form>


gut, über die Qualität des Codes lässt sich bestimmt streiten, ich hatte Probleme die Berchnungen Variable mit Zahlen gemischt durchzuführen... Falls Ihr Verbesserungsvorschläge habt, immer her damit ;)

Nun will ich die Anzahl der Gebäude, anhand eines sogenannten "Spionageberichts" automatisch anzeigen lassen...
eine Beispiel url: http://deadslow.my-cia.de/reports/spy/b ... e0fa71.php
hoffe ist sichtbar. Habe auch die Erlaubnis dazu keine kommerzielle böse Sache .....

Hab mir das Tutorial für den Counter schon mal ein bisschen angesehen, müsste eigentlich genau so funktionieren oder´? Datei auslesen und schreiben....

Aber wie ist nun der Code, damit genau das Wort ... ausgelesen und als Inhalt in meinem Affenformular wiedergegeben wird?
Zyon
HTML-Suchnase
 
Beiträge: 7
Registriert: Mittwoch 18. Mai 2011, 17:17

Re: Frage zum Tutorial Affenformular

Beitragvon Sarkkan » Dienstag 7. Juni 2011, 22:21

Was mir as erstes bei deinem Code auffällt:
Deine überprüfung der Variabeln ist ja schön, aber mal ist der Inhat der Variabel eine Zahl und mal ein leerer String?
Das ist unschön.. damit kann man das Univserum explodieren lassen! :D *

Das mit dem Counter funktioniert hier leider nicht so einfach :/
mit der Technik kannst du nur Dateien öffnen, die auf deinem Server liegen.
-Hier musst du mit file_get_contents arbeiten.
Anschließend würde ich sagen, holst dir deine Werte vie RegEx (Regülare Ausdrücke) aus dem String, den die Funktion zurück gibt.



zu *:
Code: Alles auswählen
$a = 'string';
$b = 0;

if ( $a == true && $b == false && $a == $b )
{
    echo ( 'universe broken' );
}

//::> Wir fassen zusammen: $a = true und $b = false. Schlussfolgerung: $a != $b
//::> Aber die Ausgabe:
//::> universe broken
 
Benutzeravatar
Sarkkan
HTML-Acrobat
 
Beiträge: 1557
Registriert: Montag 5. April 2010, 01:46
Wohnort: Bei Köln

Re: Frage zum Tutorial Affenformular

Beitragvon mjan » Montag 20. Juni 2011, 09:18

Hallo,

ich habe auch noch eine Frage zu dem Affenformular. Und zwar, ist wenn ich das Beispiel mit Vorname und Nachname 1zu1 übernehme, bekomme ich im Feld für den Nachnamen immer(!) einen Tabulator oder Leerzeichen. Dann funktioniert die Abfrage, ob die Variable $_GET['nachname'] leer ist nicht mehr, ich bekomme für nachname also ein true, obwohl ich noch nichts hineingeschrieben habe. Ich habe den Code etwas abgeändert und mit trim() die Variable von Leerzeichen befreit, so dass jetzt wenigstens das Formular wieder aufgerufen wird wenn ich bei nachname nichts eintrage, allerdings ist in dem Feld immer noch ein Tabulator oder mehrere Leerzeichen. Hier mal mein Code:


Code: Alles auswählen
<?php
$_GET['nachname']=trim($_GET['nachname']);
$_GET['vorname']=trim($_GET['vorname']);
if (empty ($_GET['vorname']) OR empty($_GET['nachname'])){

    $_GET['nachname']=trim($_GET['nachname']);
    echo '
        <form action="affe3.php" method="get" name="form2" id="form2">
            <p>Vorname:
                <input type="text" name="vorname" id="vorname"
                 value="'.$_GET['vorname'].'" size="50" maxlength="150" />
            </p>
            <p>Nachname:
                <input type="text" name="nachname" id="nachname" value="
                '.trim($_GET['nachname']).'" size="50" maxlength="150" />
            </p>
            <input type="hidden" name="kontrolle" id="kontrolle" value="1" />

            <p>Absende Button:
                <input type="submit" name="button" id="button" value="absenden" />
            </p>
        </form>
    ';
}
else {
    echo "Vorname: ".$_GET['vorname']."<br />";
    echo "Nachname:".$_GET['nachname'];
    }

?>


Hier noch die Zeile aus der Adressleiste, damit ihr sehen könnt, dass nachname nicht leer ist:

Code: Alles auswählen
http://localhost/affe3.php?vorname=&nachname=++++++++++++++++&kontrolle=1&button=absenden


Danke schon mal für die Antwort
mjan
HTML-Suchnase
 
Beiträge: 2
Registriert: Montag 20. Juni 2011, 09:04

Re: Frage zum Tutorial Affenformular

Beitragvon mjan » Montag 20. Juni 2011, 09:20

Achso, die Frage lautet: Warum ist das so und wie kann ich das beheben?
mjan
HTML-Suchnase
 
Beiträge: 2
Registriert: Montag 20. Juni 2011, 09:04

Re: Frage zum Tutorial Affenformular

Beitragvon CyberGirl » Montag 20. Juni 2011, 11:10

Hallo,

warum es so ist kann ich Dirauf die schnelle nicht sagen.
Hier ist eine Musterlösung:
Code: Alles auswählen
<?php

// Variablen initialisieren und filtern 

$vorname = isset($_GET['vorname']) ? trim($_GET['vorname']): "";
$vorname = filter_var($vorname, FILTER_SANITIZE_STRING);

$nachname = isset($_GET['nachname']) ? trim($_GET['nachname']): "";
$nachname = filter_var($nachname, FILTER_SANITIZE_STRING);

?>

<?php if ($vorname === "" OR $nachname === ""): ?>

    
    <form action="affe3.php" method="get" name="form2" id="form2">
    <p>Vorname:
    <input type="text" name="vorname" id="vorname"
    value="<?php echo $vorname; ?>" size="50" maxlength="150" />
    </p>
    <p>Nachname:
    <input type="text" name="nachname" id="nachname" value="<?php echo $nachname; ?>" size="50" maxlength="150" />
    </p>
    <input type="hidden" name="kontrolle" id="kontrolle" value="1" />
    
    <p>Absende Button:
    <input type="submit" name="button" id="button" value="absenden" />
    </p>
    </form>

<?php else : ?>

    <p>Vorname: <?php echo $vorname; ?></p>
    <p>Nachname: <?php echo $nachname; ?></p>

<? endif; ?>



Noch ein paar kleine Anmerkungen:
- man sollte Variablen immer initialisieren bevor man sie benutzt
- man sollte Variablen aus Sicherheitsgründen immer filtern


LG
Benutzeravatar
CyberGirl
HTML-Freund
 
Beiträge: 115
Registriert: Sonntag 30. Januar 2011, 19:30

Re: Frage zum Tutorial Affenformular

Beitragvon drPHIP132 » Montag 20. Juni 2011, 20:30

hab jetzt keinen bock alle antworten durchzulesen...jetzt kommt einfach mein part (:


das hast mit xampp ausgeführt ne?

das war eine notiz, keine fehlermeldung. notizen kommen nicht mehr auf dem webserver (zumindest auf meinem net) , sie sind nurn 'hilfestellungen'


hoffe konnte helfen
Benutzeravatar
drPHIP132
HTML-Acrobat
 
Beiträge: 744
Registriert: Samstag 15. Januar 2011, 19:10
Wohnort: Sachsen, Erzgebirge

Re: Frage zum Tutorial Affenformular

Beitragvon yobas » Donnerstag 22. Dezember 2011, 12:02

von Zyon » Sonntag 29. Mai 2011, 01:07
Hallo,

bin gerade am durcharbeiten des PHP Tutorials für Anfänger ;)
Hängen geblieben bin ich am Schluss des Übungsteils Affenformulare ;)


So nachdem ich versuchen wollte ein Unter menu in der Navigation zu erstellen und festellen musste das ich noch zu wenig kenntnise habe über Java. geh ich jetzt rüber zum PHP.
so meine frage ist, die gleiche wie die vom Zyon oder die frage war so. Denn dank Zyon konnte ich einiges Lernen, doch ich hab dennoch eine frage zum code und zwar, dort fehlen ja diese Variablen? Dies hiesse dann das ich z.b bei:
Code: Alles auswählen
if ( $_GET['nachname'] == "" OR $_GET['anzahl'] == "" )

ein $nachname erstellen muss sodas es richtig dargestellt wird?
damit will ich nur wissen wie ich dieses problem vom Notice: Undefined index: nachname in F:\xampp\htdocs\Etest\affenformular.php on line 3 lösen kann.
Benutzeravatar
yobas
HTML-Newbie
 
Beiträge: 79
Registriert: Dienstag 20. September 2011, 10:31

Nächste

Beiträge bitte im neuen Forum

Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron