ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
659
659
EMPFEHLEN
-
01.08.07 22:16 #1
- Registriert seit
- Mar 2006
- Beiträge
- 93
Hallo,
möchte mir (Anfänger) ein Script mit eurer Hilfe erarbeiten. Es geht darum, dass User Interpretationen zu meinen Bildern eingeben dürfen und diese dann darunter nach Klick erscheinen. Vorher darf man diese Titel nicht lesen dürfen, sonst braucht man sich ja keine Gedanken zu machen.
Damit ihr es euch besser vorstellen könnt, ein Bild im Anhang. Auf einer Seite sollen ca. 10 Bilder sein. Außerdem soll das kleine Formular spamsicher sein und es soll ein Email an mich abgehen, damit ich von dem Eintrag mitbekomme und ihn notfalls löschen kann. Am besten vom Email aus.
Die Texte sollen in einer txt-Datei oder anders gespeichert werden, nicht in einer Datenbank. Habe nämlich keine.
Könnt ihr mir stückweise helfen? Wie beginnt man? Habt ihr sowas schon in petto?
Viele Grüße
exi
-
01.08.07 22:22 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Als Datenspeicher könnte man XML-Dateien oder SQLite verwenden, wenn dein PHP das unterstützt.
Grundsätzlich ist dein Vorhaben relativ leicht umsetzbar.
Du brauchst ein Formular, in dem die entsprechenden Daten eingetragen werden, um Spam zu verhindern, solltest du ein CAPTCHA einbauen.
Nach dem Abschicken des Forms sollten die Form-Daten in die XML-Datei o. SQLite-Datenbank eingetragen werden. Gleichzeitig kannst du mit mail() die entsprechenden Daten verschicken.
Das mit dem direkten Löschen per Email stell ich mir grad nicht so einfach vor, einen Link könnte man durchaus mitschicken. Allerdings sollte man trotzdem vor dem Löschen ein Passwort eingeben müssen.
Ich weiß grad nicht, warum du es noch nicht selbst umgesetzt hast, den Anforderungskatalog hast du ja auch schon fertig. Das Umsetzen ist jetzt nur noch eine Frage des Programmierkönnens und Lesen des PHP-Manuals für die entsprechenden Funktionen.
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
02.08.07 07:39 #3Comenius Tutorials.de GastzugangWarum nicht einfach? Per Link kann man alles mögliche aufrufen, warum nicht auch eine Seite, mit der Anweisung des Löschens...Das mit dem direkten Löschen per Email stell ich mir grad nicht so einfach vor, einen Link könnte man durchaus mitschicken. Allerdings sollte man trotzdem vor dem Löschen ein Passwort eingeben müssen.
Ein Passwort ist nicht notwendig, da doch die Mail sowieso kein anderer zu Gesicht bekommt.
Es könnte natürlich sein, dass man sich den Link zum Löschen beschaffen kann, aber wenn man den mit Zufallswerten verschickt, fällt eine Passwortabfrage weg.
Gruss
Commi
-
02.08.07 15:34 #4
- Registriert seit
- Mar 2006
- Beiträge
- 93
Hallo und danke für eure Gedanken,
habe doch dazu ein paar Einwände/Fragen.
Warum nicht txt oder sto? Wo steht in der info.php, ob XML-Dateien unterstützt werden? SQLite kann mein Server definitiv nicht.Als Datenspeicher könnte man XML-Dateien oder SQLite verwenden, wenn dein PHP das unterstützt.
Groß soll das Formular nicht sein, es besteht nur aus einem Textfeld und "Senden", siehe Grafik. Das Captcha bräuchte zu viel Platz und lenkt zu sehr ab. Geht nicht auch die Kombination verstecktes Formularfeld, Zeitsperre und IP-Übermittlung?Du brauchst ein Formular, in dem die entsprechenden Daten eingetragen werden, um Spam zu verhindern, solltest du ein CAPTCHA einbauen.
Da bin ich auch dafür. Allerdings verstehe ich das mit den Zufallswerten nicht...Ein Passwort ist nicht notwendig, da doch die Mail sowieso kein anderer zu Gesicht bekommt. Es könnte natürlich sein, dass man sich den Link zum Löschen beschaffen kann, aber wenn man den mit Zufallswerten verschickt, fällt eine Passwortabfrage weg.
Ich kann zwar existierende Scripts für mich anpassen - was auch nicht nicht immer klappt, aber selber etwas aufsetzen - Hilfe! Mein Hirn ist für die Programmierlogik nicht geschaffen, bin mehr Künstler. Ich kann nicht sagen, dass ich nicht probiert hätte, doch alle Lehrbücher waren so geschrieben, dass ich an irgendeiner Stelle hängen blieb und ausstieg.Ich weiß grad nicht, warum du es noch nicht selbst umgesetzt hast, den Anforderungskatalog hast du ja auch schon fertig. Das Umsetzen ist jetzt nur noch eine Frage des Programmierkönnens und Lesen des PHP-Manuals für die entsprechenden Funktionen.
Der Anfang ist leicht gemacht, aber wie geht's weiter?
Viele GrüßePHP-Code:<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title></title>
<style media="screen" type="text/css"><!--
ul {
margin: 0;
padding: 0;
}
--></style>
<script type="text/javascript">
function switchlayer(Layer_Name)
{
var GECKO = document.getElementById? 1:0 ;
var NS = document.layers? 1:0 ;
var IE = document.all? 1:0 ;
if (GECKO)
{document.getElementById(Layer_Name).style.display=
(document.getElementById(Layer_Name).style.display=='block') ? 'none' : 'block';}
else if (NS)
{document.layers[Layer_Name].display=(document.layers[Layer_Name].display==
'block') ? 'none' : 'block';}
else if (IE)
{document.all[Layer_Name].style.display=(document.all[Layer_Name].style.display==
'block') ? 'none' : 'block';}
}
</script>
</head>
<body bgcolor="#ffffff">
<table border="0" cellpadding="5" cellspacing="0" width="722">
<tr>
<td><img src="kutsche.JPG" width="350" height="228" border="0"></td>
<td><img src="spielmannsz.jpg" width="350" height="228" border="0"></td>
</tr>
<tr>
<td align="center">Was siehst du in dem Bild?<br>
Gib' deine Interpretation hier ein:</td>
<td align="center">Was siehst du in dem Bild?<br>
Gib deine Interpretation hier ein:</td>
</tr>
<tr>
<td>
<form name="FormName" action="(Empty Reference!)" method="get">
<table border="0" cellpadding="3" cellspacing="0" width="122">
<tr>
<td><input type="text" name="kutsche" size="34"></td>
<td><input type="submit" name="senden" value="senden"></td>
</tr>
</table>
</form>
</td>
<td>
<form name="FormName" action="(Empty Reference!)" method="get">
<table border="0" cellpadding="3" cellspacing="0" width="122">
<tr>
<td><input type="text" name="spielmannszug" size="34"></td>
<td><input type="submit" name="senden" value="senden"></td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<td valign="top"><a href="untermenue1.php" onclick="javascript:switchlayer('kutscha');
return false;">>> Meine und andere Deutungen - bitte klicken</a>
<ul style="list-style-type:none">
<ul id="kutscha" style="display:none;list-style-type:none;">
<li><b>Frau auf Kutsche<br>
</b>Madonnenfigur<br>
Furie</li>
</ul>
</ul>
</td>
<td valign="top"><a href="untermenue2.php" onclick="javascript:switchlayer('spielmanno');
return false;">>> Meine und andere Deutungen - bitte klicken</a>
<ul style="list-style-type:none">
<ul id="spielmanno" style="display:none;list-style-type:none;">
<li><b>Spielmannszug<br>
</b>Opernglas<br>
Chearleaders</li>
</ul>
</ul></td>
</tr>
</table>
<p></p>
</body>
</html>
exi
-
03.08.07 09:29 #5Comenius Tutorials.de Gastzugang
Hi,
Wegen der Sache mit der Bestätigungsmail (löschen) könnten dir folgende Links behilflich sein.
http://www.wer-weiss-was.de/theme163/article873130.html (Zufallswert erzeugen)
http://www.schattenbaum.net/php/variable2.php (Um den Wert des Hyperlinks zu übergeben)
Dein Script gehe ich mal durch, wenn ich etwas Zeit habe. Ansonsten viel Spaß beim Spielen
Gruss
Commi
-
03.08.07 21:23 #6
- Registriert seit
- Mar 2006
- Beiträge
- 93
Hallo,
danke für die Hinweise, ich bin deshalb auch schon so weit wie ich alleine konnte.
Mit <form action="sendbild.php" method="post"> habe ich ein Email auf die Reise an mich geschickt.
sendbild.php:
config.php:PHP-Code:<?php
// Standardwerte übermitteln
include("config.php");
// Wegen Lauffähigkeit auf sicheren Servern
$kutsche= $_POST["kutsche"];
// IP ermitteln
function getip() {
if (getenv("HTTP_X_FORWARDED_FOR")) {
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else {
$realip = getenv("REMOTE_ADDR");
}
return $realip;
}
$ip = getip();
// Mailversand - Variabeln in der config
mail("$emailadresse", "$mailbetreff", "IP-Nummer des Absenders: $ip \r\n
$kutsche",
"From: Absender <Absenderemail>");
// Erfolgsmeldung, dass Email versendet wurde - Variable in der config
echo "$erfolg";
?>
Ein paar Sachen habe ich auch aus älteren Scripts, macht man das heute noch so?PHP-Code:<?php
// Eigene Emailadresse
$emailadresse = 'xxxx@xxxxxxxx.de';
// Betreff des Emails an den Empfänger
$mailbetreff = 'Neue Titeldeutung';
// Erfolgsmeldung, wenn Email versendet wurde
$erfolg="Die eMail wurde gesendet !<br><br>
<input type=button value=zurück onClick=history.back()>";
?>
Wie ich allerdings den Begriff, den ich mir gemailt habe, in das Aufklappfenster kriege, dass der Begriff da zu lesen ist, ist mir noch rätselhaft. Jetzt steht er da nur in html. Schließlich muss er ja in eine xml oder txt oder sto-Datei und von da wieder zurück auf die Seite. Und von der Lösung, wie man diesen Begriff vom Email aus da wieder löscht, bin ich auch noch weit entfernt.
Warum man eine Zufallszahl braucht, ist mir auch noch völlig schleierhaft.
Das mit der xml Datei und wie man erkennt, ob der Server so was verarbeiten kann, ist auch noch unklar.
Bitte helft mir weiter! Danke...
Viele Grüße
exiGeändert von exhubiranta (03.08.07 um 21:32 Uhr)
-
03.08.07 21:44 #7
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Das mit register_globals=off hast du schon richtig erkannt, du müsstest es aber nicht erst in eine neue Variable schreiben. Vor allem benutzt du die Variable nirgends.
Desweiteren kannst du schauen, ob in phpinfo(); SimpleXML oder DOM auftaucht, dann kannst du XML-Dateien parsen und schreiben.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
03.08.07 22:01 #8
- Registriert seit
- Mar 2006
- Beiträge
- 93
Wo steht bei mir was mit register_globals=off?
In der "Configure Command" steht u.a.
'--enable-xml' '--enable-simplexml'
Zu meiner großen Überraschung steht da auch:
SQLite
SQLite support enabled
PECL Module version 2.0-dev $Id: sqlite.c,v 1.166.2.11 2006/01/01 12:50:14 sniper Exp $
SQLite Library 2.8.17
SQLite Encoding UTF-8
Directive Local Value Master Value
sqlite.assoc_case 0 0
Mir wäre SQlite lieber, wenn das geht!
Viele Grüße
exi
-
03.08.07 23:19 #9Comenius Tutorials.de Gastzugang
Auf die Zufallszahl/Zufallsbuchstaben bist du nicht zwingend angewiesen.
Stell dir vor du hast einen festen, standartmäßigen Link zum Löschen der Daten.
(Beispielsweise löschen.php)
wenn der Link einmal bekannt ist, kann ihn jeder aufrufen und damit herumspielen.
Lässt du dir nun einen Link mit Zufallswerten schicken (Beispielsweise löschen.php?wert=942829), kannst du den generierten Zufallswert beim Abschicken, irgendwo speichern.
Klickst du in deiner Mail nun auf diesen Link, kann man mittels PHP ganz einfach diesen Wert aus dem Link mit dem gespeicherten Wert vergleichen. Stimmen sie überein, wird der Inhalt der Seite ausgeführt - in deinem Fall eben das Löschen...
Natürlich kannst du auch einfach generell ein Loginscript auf die Seite, die für das Löschen der Daten verantwortlich ist, erstellen. In dem Fall hast du ein festes Passwort - welches ebenfalls irgendwo gespeichert sein muss - dass du mit einem Formular eingeben kannst und anschließend mit dem gespeicherten Passwort verglichen wird.
Liegt an dir, für beide Varianten gibt es unzählige Tutorials und Scripts.
Gruss
Commi
-
03.08.07 23:54 #10
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Ich meinte das hier:
Wenn SQLite dabei ist, brauchst du keine XML-Datei nehmen. SQLite kannst du wie eine normale Datenbank ansprechen, ist quasi das semi-professionelle Äquivalent zu Access-Datenbanken, welche ebenfalls funktionieren könnten, wenn der entsprechende Treiber installiert wäre. Sollte mit ODBC gehen.PHP-Code:// Wegen Lauffähigkeit auf sicheren Servern
$kutsche= $_POST["kutsche"];
Das Manual kann dir an dieser Stelle mehr verraten, als ich in 2 Stunden zusammen tragen könnte: http://de.php.net/manual/de/ref.sqlite.php
Wenn du PHP5 drauf hast, kannst du sogar PDO_SQLite nehmen, was sicherheitstechnisch die bessere Variante wäre.
Für Access hab ich grad nix gefunden, außer ein englisches Tutorial: http://www.phpfreaks.com/tutorials/61/0.php
GrußGrüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
08.08.07 22:19 #11
- Registriert seit
- Mar 2006
- Beiträge
- 93
Muss ich noch etwas installieren, bevor ich mit sqlite anfange? Mir war das nach dem Anlesen der genannten Seiten noch nicht klar.
Wie verbinde ich das bisherige Script mit den Daten, die ich in der sqlite Datei abspeichere? Auch das habe ich noch nicht erfahren können. Oder soll ich gleich in ein anderen Thread gehen?
Viele Grüße
exi
Ähnliche Themen
-
Suche ein Projekt wo ich mit Programmieren kann
Von Code46 im Forum Stellengesuche (unentgeltlich)Antworten: 14Letzter Beitrag: 15.08.11, 14:24 -
Suche Visionär, der programmieren kann
Von sonne im Forum Stellenangebote (entgeltlich)Antworten: 2Letzter Beitrag: 12.03.10, 09:46 -
Kleiner Job: Wer kann mir dies programmieren?
Von Simon223 im Forum Stellenangebote (entgeltlich)Antworten: 0Letzter Beitrag: 21.12.09, 22:42 -
Suche ein programm was ich Programmieren kann?
Von Code46 im Forum Delphi, Kylix, PascalAntworten: 0Letzter Beitrag: 29.09.08, 19:48 -
Kann man https in html Programmieren?
Von Jens1011 im Forum Hosting & WebserverAntworten: 2Letzter Beitrag: 20.04.08, 16:01





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren