Geschenk Gutschein Verfall Problem

Morpheus262

Grünschnabel
Hallo erstmal an alle.

Ich bin mehr oder weniger neu hier und dachte mir, nachdem ich gestern mehr als zwei Stunden im Web gesucht habe, um eine Lösung für mein Problem zu finden und leider nichts passendes gefunden habe, versuche ich es bei den Profis.

Ich werde im Folgenden einfach mal kurz, so kurz es geht, das Problem oder die Aufgabenstellung erklären und danach meine Idee unterbreiten. Es wäre dann super, falls ihr mir da helfen könntet oder falls meine Idee absolut "dumm" ist ne andere Idee oder Lösung geben könntet.

Schon mal im voraus vielen Dank für eure Hilfe.

Aufgabenstellung/Problem:

Der Kunde (Auftraggeber) würde gerne Geschenk-Gutschein-Codes ausgeben, die er selbst erstellt. MIt Hilfe dieser Codes, soll der Beschenkte (User) dann auf einer Seite mit Hilfe eines Formulars und unter Eingabe des Codes und seiner Adresse ein Geschenk auswählen können und durch Klick auf den "Senden" (Submit) Button dann bestellen können. Nachdem überprüft wurde, ob der eingegebene Code in der Liste der zulässigen Codes steht, soll der Inhalt des Formulars dann an den Kunden (Auftraggeber) geschickt werden und der verwendete Code dann aus der Liste der zulässigen Codes herausgenommen werden, damit dieser Code nicht nochmal verwendet werden kann.
Sollte der eingegebene Code nicht in der Liste der zulässigen Codes auftauchen, dann soll der Inhalt des Formulars natürlich nicht an den Auftraggeber versendet werden und es erscheint eine Seite, nach der Art, "der eingegebene Code ist nicht zulässig". Daraufhin kann der Kunde erneut das Formular ausfüllen.

Meine Idee war, und ich muss dazu sagen, dass ich überhaupt keine Ahnung von PHP habe, aber die Grundidee war Folgende:

Der Auftraggeber schreibt ne Textdatei mit jeweils einem Code pro Zeile. Dann wenn der User das Formular ausgefüllt hat und auf Submit klickt, wird erstmal die php Datei angeschmissen die schaut, ob der Code in dieser Textdatei steht oder nicht. Steht der Code drin, ist er ja zulässig, und er kann die Informationen des Formulars an den Auftraggeber übermitteln. Anschließend soll die selbe php Datei dann die Textdatei nochmal durchgehen und den Code herauslöschen, damit er in Zukunft nicht mehr verwendet werden kann. Ich weiss nicht ob es nen Unterschied macht, ob man es in dieser Reihenfolge macht oder umgekehrt (also erst Code checken - wenn Code vorhanden - lösche Code aus Textdatei - übermittle die Formularinhalte an Auftraggeber), aber dazu habt ihr sicher auch ne Meinung. Wahrscheinlich ist letztere Idee sogar sinnvoller.

So jetzt weiss ich halt nicht ob die Idee absoluter Schwachsinn ist oder nicht und wie es mt der Sicherheit aussieht. Denn es sollte natürlich nicht möglich sein in den Besitz der Code-Textdatei zu kommen.
Dachte wenn durch die Php-Datei auf die Textdatei verwiesen werden kann, dann sieht der User, wenn er sich den Quellcode der Seite anzeigen lässt, wie die Datei heisst. Aber es gibt ja heute so tolle Programme mit denen man sich auch die PHP-Dateien downloaden kann und dann könnte der User sich ja einfach den Quellcode dann anschauen und wüsste den Namen der Textdatei mit den Codes. Daraufhin könnte er diese Datei runterladen und wäre im Besitz aller Codes, was ja nicht gerade gut wäre.
Also wie ihr seht ,sollte Sicherheit auch gegeben sein.

Nochmal zu meiner Idee. Ich weiss nicht ob das so überhaupt Sinn macht oder nicht aber ich bin für jede Hilfe oder bessere Vorschläge offen. Solange es funktioniert und dann auch noch einigermassen sicher ist, ist mir das egal.

So nun freue ich mich auf eure Hilfe und Danke nochmal im voraus.

Gruß aus Vancouver
Morpheus262
 
Sofern der Webserver richtig konfiguriert ist, kann man die PHP Dateien nicht im Klartext herunterladen, sondern nur die kompilierte Version, die der Webserver ausliefert. Also HTML Quelltext.

Falls du eine solche Textdatei einsetzt, sollte diese nicht von außen erreichbar sein, also möglichst außerhalb des http Root sein oder in einem abgesicherten Ordner (in dem per HTTP Regel alle Zugriffe abgewehrt werden, siehe Apache Doku für Beispiele).

Viel angenehmer wäre es allerdings mit einer Datenbank.
 
Ok, wie gesagt habe ich leider sehr wenig Ahnung was Server TEchnologien oder Server einstellungen betrifft.

Wenn du meinst eine Datenbanl wäre besser, wie müsste ich denn dann vorgehen:
1. Datenbank anlegen
2. Tabelle anlegen
3. Codes eintragen
4. Mailform erstellen
usw.

Könntest du mir etwas mehr Informationen geben oder vielleicht so ne Art Schritt-für Schritt Anleitung.

Wie würdest du das machen, dass der Formularinhalt erst abgeschickt wird wenn der Code in der Datenbank gefunden wurde und wie würdest du danach diesen Eintrag aus der Datenbank rausnehmen.

Ich wäre dir sehr verbunden, wenn du mir helfen könntest, denn ich stehe gerade erst Anfang mit meinen PHP Kenntnissen. Kann Daten per POST oder GET in Variablen Speichern und über ne Schleife schreiben. Dann wirds aber auch schon eng.

Gruß
Morpheus262
 
Sorry, aber dann solltest du mit den Grundlagen weiter lernen und ein solch eventuell heikles Projekt anderen überlassen.

Ich würde dir empfehlen das im Job Forum anzupreisen und schauen was du dir für Angebote reinholst, denn das hier ist ein kommerzielles Projekt.
 
Grundsätzlich hast du ja recht, aber was ist das für ne Hilfe, wenn du sagst, schau im Job Forum nach ob du jemand findest der es macht. Ich bekomme keinen Cent dafür und ich will es lernen wie man dabei vorgeht.

Wenn es jemand anderes macht, wie soll ich da was lernen.

Dachte man bekommt wenigstens Tipps oder ne Art Anleitung wie man es machen könnte das es sicher ist und funktiniert.

Vielleicht kannst dich ja bereit erklären mir wenigstens etwas auf die Sprünge zu helfen.

Gruß
Dani
 
Also wenn man Wörter wie Kunde oder Auftraggeber in den Mund nimmt, dann hört sich das sehr kommerziell an.

Grundlagen:

Datenbank: Tabelle anlegen, Daten eingeben
Formular: Anlegen, an PHP Skript abschicken, empfangene Daten mit der Datenbank abgleichen, bei Treffer den nun verfallenen Gutschein löschen.

Die Grundlagen dafür findet man hier im Forum, aber auch bei http://tut.php-q.net/ .

Bei spezifischeren Fragen, kannst du sie gerne stellen, aber das hier ist so eine Endlosaufgabe und das ist nicht mein Gebiet.

Aber ich bin ja auch nicht der einzige Benutzer hier, vielleicht fühlt sich ja jemand anders angesprochen.
 
Hab doch gesagt dass ich dafür kein Geld sehe. Soll ich anstatt Auftraggeber oder Kunder oder Klient sagen Person A und statt User Person B oder was?

Aber danke werde mir das mal genauer anschauen.
Ich meine wie ich aus ner Tabelle/ Datei Daten auslese und mit meinen mitgesendeten Daten vom Formular vergleiche verstehe ich, aber wie kann ich genau den Datensatz dann löschen wenn er vorhanden war. Das finde ich in dem Tutorial zum Beispiel nicht, da dort immer nur Daten in die Datenbanken geschrieben werden, meistens aber nicht gelöscht.

Gruß
Morpheus262
 
Hi,

Das finde ich in dem Tutorial zum Beispiel nicht, da dort immer nur Daten in die Datenbanken geschrieben werden, meistens aber nicht gelöscht.

in der neuen Version fehlt das (noch?), ja. Aber was hindert Dich denn daran, mal nach "mysql datensatz löschen" zu googeln. Das von Felix angegebene Tutorial ist doch nicht die einzige Informationsquelle unter dieser Sonne.
Eine Vorstellung, wie das umzusetzen ist, hast Du ja schon, also fang an.

LG
 
PHP bietet Dir genau das was du brauchst. So wie die Vorposter schon geschrieben haben, sind dazu erstmal diese Grundlagen von Nöten.

Jetzt versetz dich mal in Dein Script welches Du schreiben möchtest.
Genauso wie Du denkst, wird auch Dein Script denken.

Beispiel:

Wenn Formular mit Geschenk-Code abgeschickt ist, dann überprüfe ob der Code vorhanden ist:

PHP:
<?
if(/* Formular abgeschickt */)
{
	//überprüfe ob der eingegebene Code richtig war und ob vorhanden, zb aus der Datenbank:
	$sql = mysql_query("SELECT id FROM gutscheincodes WHERE gutscheincode = 'eingegebener code' ");
	while($res=mysql_fetch_array($sql))
	{
	     $id = $res['ID'];
	}
		// wenn code vorhanden ist $sql true
		if($sql)
		{
		     //code vorhanden und soll nun gelöscht werden:
		     $sql = mysql_query("DELETE FROM gutscheincodes WHERE id=$id");
		}
}  

?>
Das wäre jetzt mein kleiner Denkanstoß
 
Zurück