• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bei click Datei erstellen

Status
Für weitere Antworten geschlossen.

torrac

Neues Mitglied
Hallo

Ich bin gerade für meine ABiturklausur am lernen und stehe vor einem Problem. Wir haben einmal eine Arbeit geschrieben in der man eine Datei erstellen soll.
Seite 1 ist eine .html mit einem Formular das man ausfüllen muss. Nach klicken auf einen Button wird man auf dei 2. Seite - eine.php - geleitet. Nun soll man die Angaben überprüfen und wenn sie korrekt sind auf einen Button,Link oder sonstwas klicken und die Angaben in eine Datei zu schreiben. Und genau das scheitere ich:

Code:
<html>
<head>
</head>
<body>

<?php

$anrede = $_GET["anrede"];
$name = $_GET["name"];
$vorname = $_GET["vorname"];
$alter = $_GET["alter"];
$plz = $_GET["plz"];
$ort = $_GET["ort"];
$straße = $_GET["straße"];

$bild = $_GET["bild"];
$druck = $_GET["druck"];
$komplett = $_GET["komplett"];
$speicher = $_GET["speicher"];
$on = $_Get["on"];

if ($bild == "on") {
  $produkt = "Bildschirme";
}
if ($druck == "on") {
  $produkt = "Drucker";
}
if ($komplett == "on") {
  $produkt = "PC-Komplettangebot";
}
if ($speicher == "on") {
  $produkt = "Speicherbausteine";
}


echo "Sehr geehrte/r $anrede $vorname $name,";
echo "<p>";
echo "wir bedanken uns für Ihr Interesse und senden Ihnen Prospektmaterial zu dem Thema $produkt zu.";
echo "<p>";
echo "Ihre Anschrift lautet:";
echo "<br>";
echo "$straße";
echo "<br>";
echo "$plz $ort";
echo "<p>";
echo "Sind diese Angaben korrekt, klicken Sie bitte hier um diese Daten in einer Textdatei zu speichern:";
?>
[B]
<input type="radio" name="on">Bestätigen<br> 

<?php
if ($on == 'on') {
   $datei = fopen ("Daten.txt","w+");
   fputs ($datei,"\"$anrede\", \"$name\", \"$vorname\", \"$alter\", \"$plz\", \"$ort\", \"$straße\"\n");
   fclose ($datei);
}
[/B]
echo "<p>";
echo "Möchten Sie Korrekturen vornehmen, dann werden Sie nach einem Klick zu der vorherigen Seite zurück geleitet:";
?>

<form action="321.html" method="GET">
<input type="Submit" value="Korrektur"><p>


</body>
</html>

Könnt ihr mir vielleicht sagen wie ich es am geschicktesten mache, dass wenn ich einen Link oder einen Button drücke das dann eine if Anweisung in php kommt in der dann die Datei geschrieben wird?

Mit freundlichen Grüßen
 
Erstmal eine kurze Anmerkung: das letzte Formular wurde nicht beendet.
Aber das dürfte wohl kaum für den Fehler gesorgt haben;)

Nun wäre es noch ganz hilfreich zu wissen, von welcher Art der Fehler ist: Wird die Datei gar nicht erst erzeugt oder werden falsche Werte eingegeben, was für eine Fehlermeldung erscheint?
Außerdem solltest du bei $on = $_Get['on'] das $_Get groß schreiben, also $_GET. Ich empfehle dir auch, nicht $_GET zu benutzen, sondern die sicherere und komfortablere, da nicht an den URI gebundene, $_POST-Methode.

Damit das <input type="radio" name="on"> funktioniert, solltest du das ganze in ein Formular packen und absenden, sowie dem Radiobutton einen Wert zuweisen (im folgenden einfach $wert), damit es funktioniert. Als IF-Abfrage kommt dann:
Code:
if(isset($_GET['buttonname']))//Wenn Formular gesendet wurde
{
   if($wert == 'on')//Wenn der Radiobutton gewählt wurde
   {
[B][B]   $datei = fopen ("Daten.txt","w+");
   fputs ($datei,"\"$anrede\", \"$name\", \"$vorname\", \"$alter\", \"$plz\", \"$ort\", \"$straße\"\n");
   fclose ($datei);
[/B][/B]
   }
}
 
Also die Datei erstellt er fehlerfrei. Bis jetzt hat er die Datei immer erstellt wenn die Seite geladen wurde. Also hab ich es ersteinmal in eine If-Bedingung rein getan. Nun wusste ich nicht wie ich es schaffe, dass die Datei nur erstellt wird, wenn man den Button klickt. Also habe ich irgendwas versucht mit 'on'. Das mit dem radio war auch nur ein Versuch. Optimal wäre ein Button oder ein Link aber da wusste ich nicht die Befehle für "aktiviert".
if(isset($_GET['buttonname']))
Wofür steht das "isset"?
 
Zuletzt bearbeitet:
Das isset steht in diesem Beispiel genau für "aktiviert". Der Funktionsname setzt sich aus is set zusammen, ist gesetzt. Die Funktion überprprüft, ob eine Variable gesetzt wurde, also ob sie deklariert ist und damit existiert. Weil dem Button ein Name zugewiesen wurde, wird dieser ebenfalls mit den anderen Formulardaten gesendet. Folglich existiert die Variable $_POST['buttonname'] nur, wenn das Formular bereits gesendet wurde, also nur, wenn der User bestätigt und abgesendet hat, dass die Datei angelegt werden soll.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben