php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.04.2005, 09:50  
Gast
 
Beiträge: n/a
Standard Session? Wer kann mir bei meinem Script helfen?

PHP-Code:
<?php

//AB hier konfigurieren ---------------------------------------------------------------------


//Kontrolle ob E-Mail bereits in Datenbank existiert!
require ("config.inc.php");

mysql_select_db($dbname,$anmelden) or die(mysql_error());
$daten2 mysql_query("select * from $dbtab where email1 = '$email1'");
if (
mysql_num_rows($daten2) > 0) {
print(
"<center><font color=\"#FF0000\" size=\"2\" face=\"Verdana\">[b]E-Mail existiert bereits![/b]</font></center>");
die;
}else{

//wandelt die Mehrfachantworten von Arrays in Strings um
if (isset($beruflich)>0) { for($i=0;$i<count($beruflich);$i++) {$beruflich[$value]."\n"; }
$beruflich implode(";"$beruflich); }
if (isset(
$internet)>0) { for($i=0;$i<count($internet);$i++) {$internet[$value]."\n"; }
$internet implode(";"$internet); }

//hier die Fehlerseite
$fehler"fehler.htm";

// hier die Dankseite
$danke"danke.htm";

//email des webmasters eingeben
$webmas="test@test.de";

//hier websitenamen eingeben
$site="test.de";

//hier die nachricht an sie selbst eingeben
$message="Hallo,\n\n";
$message.="Ein neuer Teilnehmer hat Ihr Anmeldeformular benutzt.\n";
$message.="Seine E-Mailadresse ist $email! Er möchte gerne an Umfragen teilnehmen!\n";
$message.="(die Daten wurden in der Datenbank $dbname abgelegt!) \n\n";

$message.="------------------------------------------------\n\n";
$message.="Ich bin: $geschlecht \n";
$message.="------------------------------------------------\n\n";
$message.="Ich wurde: $jahr geboren.\n";
$message.="------------------------------------------------\n\n";
$message.="Mein höchster Bildungsabschluss ist: $beruf  \n";
$message.="------------------------------------------------\n\n";
$message.="Ich nutze das Internet:$nutzung  \n";
$message.="------------------------------------------------\n\n";
$message.="Ich bin wöchentlich ca. $onlinezeit Stunden im Internet. \n";
$message.="------------------------------------------------\n\n";
$message.="Ich Nutze das Internet hauptsächlich für: $internet. \n";
$message.="------------------------------------------------\n\n";
$message.="Beruflich bin ich: $beruflich. \n";
$message.="------------------------------------------------\n\n";
$message.="Im habe meinen Hauptwohnsitz im Bundesland: $bundesland. \n";
$message.="------------------------------------------------\n\n";
$message.="Die ersten beiden Ziffern meines Wohnortes sind: $plz. \n";
$message.="------------------------------------------------\n\n";
$message.="Name: $name. \n";
$message.="------------------------------------------------\n\n";
$message.="Vorname: $vorname. \n";
$message.="------------------------------------------------\n\n";
$message.="E-Mailadresse: $email1. \n";
$message.="------------------------------------------------\n\n";
$message.="E-Mailadresse-Bestätigung: $email2. \n";
$message.="------------------------------------------------\n\n";

//STOP bis hier konfigurieren --------------------------------------------------------------
$header="From: $von<$email>\nReply-To: $email\nX-Mailer: PHP/" phpversion();
$headers="From: $site<$webmas>\nReply-To: $email\nX-Mailer: PHP/" phpversion();

$hack false;

        
//Geschlecht
        
if ($geschlecht == "") {
                
$hack true;
        }
        
// Geburtsjahr
        
if ($jahr == "") {
                
$hack true;
        }
        
// Beruf
        
if ($beruf == "") {
                
$hack true;
        }
        if (
$nutzung == "") {
                
$hack true;
        }
        if (
$onlinezeit == "") {
                
$hack true;
        }
        
// Mehrfachantworten (Internet)
        
if ($internet == "") {
                
$hack true;
        }
        
// Mehrfachantworten (Beruflich)
        
if ($beruflich == "") {
                
$hack true;
        }
        if (
$plz == "") {
        
$hack true;
        }

        
// E-Mail
        
if(!preg_match("/^[a-zA-Z0-9\.]+?@{1}[a-zA-Z0-9_-]+?\.[a-zA-Z]+?\.{0,1}[a-zA-Z]*$/",$email1)){
                
$hack true;
        }
        
// E-Mail
        
if(!preg_match("/^[a-zA-Z0-9\.]+?@{1}[a-zA-Z0-9_-]+?\.[a-zA-Z]+?\.{0,1}[a-zA-Z]*$/",$email2)){
                
$hack true;
        }
        
//Kontrolle ist E-Mail-Bestätigung gleich
        
if ($email2 != $email1){
        
$hack true;
        }


        
// Bundesland
        
if ($bundesland == "") {
                
$hack true;
        }
        
// Name
        
if ($name == "") {
                
$hack true;
        }
        
// Vorname
        
if ($vorname == "") {
                
$hack true;
        }


if(
$hack != true ){

//e-mail absenden an Administrator mit den Daten
mail($webmas"Kontakt-Formular"$message$header);

// hier werden die Daten in die Datenbank aufgenommen!

require ("config.inc.php");

$datum=date("d.m.Y");
$iddatum=date("YmdHis");

mysql_select_db($dbname,$anmelden) or die(mysql_error());
mysql_query("INSERT INTO $dbtab(iddatum,datum,geschlecht,jahr,beruf,nutzung,onlinezeit,internet,beruflich,bundesland,plz,name,vorname,email1,email2) VALUES ('$iddatum','$datum','$geschlecht','$jahr','$beruf','$nutzung','$onlinezeit','$internet','$beruflich','$bundesland','$plz','$name','$vorname','$email1','$email2')");
mysql_close($anmelden);

} else {

// hier werden neue Dateien aufgerufen, die entweder Fehler anzeigen oder Erfolg.

$datei=fopen($fehler,"r");
fpassthru($datei);
exit();
}
$datei=fopen($danke,"r");
fpassthru($datei);
}

?>
Möchte gerne eine Abfrage programmieren, wobei das Formular überprüft ob der User das Formular schoneinmal erfolgreich abgeschickt hat, wenn nicht dann darf er nochmal zurück, wenn ja dann soll eine Mitteilung auftauchen, das er schoneinmal das Formular abgesendet hat.

Soll mit Session gehen! Aber wo genau schreibe ich das rein, an welcher Stelle meines Scriptes... kann mir da einer HELFEN!

UND WIE?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.04.2005, 09:51  
Gast
 
Beiträge: n/a
Standard

Ach sorry, ich nochmal... wie kann ich eigentlich keine Abfragen ob die einzelnen Variablen leer sind, zusammenfassen.

Meine diese Abfragen:
if ($email1 == ""){
hack = true;
}
 
Alt 06.04.2005, 10:28  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

1. mit isset prüfen dann mit empty();
2.
[php]
if (isset($beruflich)>0) { for($i=0;$i<count($beruflich);$i++) {$beruflich[$value]."\n"; }
[/code]
geht nicht. isset liefert immer true oder false zurück, damit kannst du keine überprüfung machen.
also getrennt:

if (isset ($var) AND !empty($var) AND $var > 0 )
robo47 ist offline  
Alt 06.04.2005, 11:40  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von robo47
if (isset ($var) AND !empty($var) AND $var > 0 )
!empty($var) genügt, das umfasst auch die beiden anderen Fälle:
Zitat:
int empty ( mixed var )
Diese Funktion liefert TRUE, wenn eine Variable nicht definiert, leer oder gleich 0 ist, ansonsten FALSE.
Auch wenn das deutsche Manual hier noch einen Fehler hat, der Rückgabewert ist, wie schon angetönt, Boolean.
Und, was mir auch noch aufgefallen ist, Semikolon-separierte DB-Einträge ($beruflich, $internet) weisen auf sehr schlechtes DB-Design hin.
Aber zu der Frage halt eine Gegenfrage: Was willst du mit Sessions machen, bzw darin abspeichern?
__________________
Gruss
L
lazydog ist offline  
Alt 06.04.2005, 12:00  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

@lazydog thx stimmt, in dem fall brauchts nur eins.
robo47 ist offline  
Alt 06.04.2005, 12:10  
Gast
 
Beiträge: n/a
Standard Anfänger halt!

Ich möchte in der Session gerne speichern, ob der USER das Formular schoneinmal erfolgreich abgeschickt hat. Möchte verhindern, das jemand das Formular 100x abschickt. Ist zwar schon Kontrolle wegen E-Mail drin, aber es gibt auch Leute die schaffen das trotzdem und geben immer eine fiktive an und ändern nur nummern oder so...

Oder kennt jemand eine besser Möglichkeit einen Mißbrauch zu verhindern..

Bitte mit Code angabe... DANKE!

Das ganze ist ja für ein Projekt "Webxpress24.biz"...
 
Alt 06.04.2005, 12:33  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Ich denke nicht, dass dir Sessions bei deinem Problem helfen können, denn die haben eine bestimmte Lebensdauer und sind spätestens weg, wenn der Benutzer den Browser schliesst. Und ich glaube auch nicht, dass es eine andere Methode gibt, diesen Missbrauch zu verhindern. Selbst wenn du es schaffst, die Gültigkeit einer Mail-Adresse zu prüfen, haben doch viele Leute mehr als eine gültige Adresse. Also kannst du das höchstens durch eine Authfizierung durch einen Login lösen. Wobei auch diese Methode nicht völlig sicher ist, es kann sich ja jemand einfach unter verschiedenen Namen anmelden.
__________________
Gruss
L
lazydog ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session Script Riedi PHP-Fortgeschrittene 2 04.02.2008 16:16
Session ID Lern_HEIKO PHP Tipps 2008 32 28.11.2007 17:53
Session Variablen als Referenz!? O_o Sam781 PHP-Fortgeschrittene 4 01.10.2007 11:19
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
Session in Session tinchen PHP Tipps 2007 22 21.03.2007 19:53
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
Session + header () = Referer nikosch PHP-Fortgeschrittene 6 16.09.2006 00:52
Header: 2 gesendet (Session, DL Script) möchtegernchegga PHP Tipps 2006 13 08.06.2006 15:56
Script beendet sich ohne Fehlermeldung Zahl PHP Tipps 2006 6 04.06.2006 20:41
phpBB Loginscript in eigenes Login Script einbinden 2wuck PHP Tipps 2007 4 19.12.2005 23:10
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
"das" Script oder "der" Script?? Simbo Off-Topic Diskussionen 31 16.09.2004 17:04
Session - $_SESSION Array verliert die Werte PHP-Fortgeschrittene 8 16.09.2004 12:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
$header=\from: $von<$email>\\nreply-to: $email\\nx-mailer: php/\ . phpversion();

Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.