[HTML] Mehr Funktionen für die Website programmieren

Virginia

Ensign
Registriert
Aug. 2005
Beiträge
133
Für eine Fanclub-Website brauche ich:

1. Ein verbessertes Anmeldesystem... Userdaten werden automatisch in eine Textdatei gespeichert (bisher gibt es nur ein Anmeldeformular, der Rest geschieht manuell)
2. Eine bessere Login-Funktion... Mit "Logout" (bisher über eine .htaccess-Datei)

Meine Frage an Euch:
Mit welchen Programmiersprachen realisier ich das am besten und da ich nicht viel Ahnung hab, wär es super, jmd. könnte mir Einführungs-Literatur nennen :)
 
AW: Mehr Funktionen für die Website programmieren

solche sachen kannst du wohl am ehesten mit php (und einer anbindung an eine datenbank, zb mysql) realisieren. du speicherst die passwörter und benutzernamen in einer tabelle der datenbank und kannst dann gut auf textdateien verzichten.

den login kannst du mit nem abgleich der eingegebenen und der in der datenbank gespeicherten daten machen. bei übereinstimmung startest du ne so genannte session, die du dann bei klicken auf nen logout-button beispielsweise wieder beendest...

n gutes buch dazu wär zb: Einführung in PHP 5 von David Sklar O'Reilly (November 2004)

hilfreich natürlich auch www.php.net/funktionsname (dort wird dir jede funktion näher erklärt) bzw das auf php.net einsehbare (online-)handbuch.

achja: ähm natürlich muss dir auf dem server, auf dem du das zeug ausführen willst ein php-interpreter und eine datenbankanbindung zur verfügung stehen. sonst gehts freilich nicht ;)
 
AW: Mehr Funktionen für die Website programmieren

Jo,

das lässt sich alles sehr einfach mit PHP erledigen. Ob das gepostete Buch gut ist, kann ich nicht sagen. Ich hab vor Zwei Jahren mal mit einem von Markt und Technik angefangen und benutze mittlerweile nur noch das PHP Manual um Fragen zu klären. Übrigens, Benutzerdaten bloß nicht in eine Textdatei schreiben, wenn die wohlmöglich noch im öffentlichen Bereich des Webspaces liegt, kann sie jeder durch raten einsehen! Dann lieber ne kleine, aber feine mysql Datenbank nehmen, oder auch PostgreSQL, wenns geht.

EDIT:

Hallo, ich nochmal ;)

Ich empfehle dir zum Einstieg dieses Buch hier

http://www.galileocomputing.de/kata...itelID-939?GalileoSession=32955887A2-rGT-YD8Y

Wenn ich heute Anfänger wär, würde ich es mir zulegen. Soll sehr gut geeignet sein für den Einstieg in PHP5 :)

Gruß und Viel Erfolg
 
Zuletzt bearbeitet:
AW: Mehr Funktionen für die Website programmieren

Habe mir jetzt erstmal das Buch von O'reilly ausgeliehen.
Allerdings versteh ich daraus nicht, wie ich überhaupt anfangen soll. Ich hab bisher nur ein PHP-Webformular dass Mails verschickt. O'Reilly erklärt da irgendwas von PearDB...

Ich habe keine Ahnung was für eine MySQL-Version mein Server hat und wie stelle ich denn ne Verbindung dazu her? :(
 
Zuletzt bearbeitet:
AW: Mehr Funktionen für die Website programmieren

Danke für die Links!
Habe jetzt mal anhand deines 3. Links eine Verbindung aufgebaut, da kam auch "Verbindung aufgebaut".
Als ich aber jetzt eine Datenbank anlegen wollte anhand dieser Seite:
http://de2.php.net/manual/de/function.mysql-create-db.php
bekam ich folgende Meldung:

Fehler beim Anlegen der Datenbank Access denied for user: 'name@localhost' to database 'my_db'

(name habe ich im Programm natürlich durch meinen benutzernamen ersetzt)

Kann mir jmd. sagen woran das liegen kann?
 
AW: Mehr Funktionen für die Website programmieren

Auf einem MySQL Server gibt es verschiedene User, die auch verschiedene Rechte haben. Und du hast dich nunmal mit einem User angemeldet, der keine neuen Datenbanken anlegen darf...
Hast du denn kein phpmyadmin? Damit könntest du dir mal die bestehenden User angucken, und denen Rechte geben bzw wegnehmen (sofern dein User DAZU Rechte hat).

mfg
 
AW: Mehr Funktionen für die Website programmieren

Hab es jetzt mal installiert, funktioniert auch, meldet mir aber gleich dass ich keine Rechte habe, eine datenbank anzulegen :(

Wie geb ich mir diese Rechte denn?
 
AW: Mehr Funktionen für die Website programmieren

Ich nochmal :) Ich kann hier verschiedene Datenbanken auswählen, auf die mit meiner eigenen Benutzernummer habe ich dann auch Zugriff. In der kann ich dann eine neue Tabelle anlegen. Muss ich denn eine neue Datenbank anlegen oder reicht auch eine Tabelle?
 
AW: Mehr Funktionen für die Website programmieren

Mit PHPKit lernste aber sicherlich nicht selber PHP zu programmieren. Nen CMS kann ja jeder installieren heutzutage...
Achja, wenn dir das O'reilly Buch zu schwer sein sollte, kann ich auch immernoch die "Jetzt lerne ich xyz" Bücher von Markt und Technik empfehlen. Die haben auch eins für PHP und MYSQL.

Gruß
 
AW: Mehr Funktionen für die Website programmieren

Ich brauch wieder Hilfe :)
Wie krieg ich es denn hin, dass das was ins Formular eingetragen wird, auch in die Datenbank geht?

Mein Code sieht so aus:
Code:
		<?php
//Datenbank-Verbindung
$link = mysql_connect('localhost', 'benutzer', 'pw');
if (!$link) {
   die('keine Verbindung möglich: ' . mysql_error());
}
// Verbindung da

if (isset ($_POST['abgeschickt'])) { 

$Empfaenger = $_POST["Empfaenger"];
$email = $_POST["email"]; 
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"]; 
$website = $_POST["website"];
$nickname = $_POST["nickname"]; 
$Nachricht = $_POST["Nachricht"];
$mailGesendet = false;
$error = false;

//zurück-link
$referer = getenv("HTTP_REFERER");

// E-Mail an Team
$mail = "Name: $vorname $nachname\nE-Mail: $email\nNachricht: $Nachricht\n\n\nWebsite: $website\nNickname: $nickname";

// E-Mail Kopie an User
$kopiemail = "Hallo,\n\nDu hast soeben die folgende Nachricht an $Empfaenger verschickt:\n $Nachricht";

//Fehlermeldungen Text
$fehlermail = "Bitte gib eine gültige E-Mail-Adresse an.\n";
$fehlerfelder = "Du hast ein oder mehrere erforderliche Felder nicht ausgefüllt. Bitte korrigiere deine Angaben.\n";

//Fehlermeldung
if ($vorname == "" || $email == "" || $Nachricht == "") {
  $error = true; 
  echo "$fehlerfelder";}

 else {
    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$", $email)) {
            mail("virginia@website.de", "Neue Nachricht", $mail, "From:$email"); //Mail an Virginia
            echo "Vielen Dank für deine Nachricht.\nSie ist auf dem Weg zu Virginia und wird schnellstm&ouml;glich bearbeitet.";
            $mailGesendet = true;
            $error = false; 
			$sql="INSERT INTO fanclub (Vorname,Nachname) VALUES('$vorname', '$nachname')";
		if ($_POST['kopie'] == 'checkbox') {
			mail($email, "Deine Nachricht an $Empfaenger", $kopiemail, "From:automailer@website.de");
		}
    }
    else {  
        $error = true;
        echo "$fehlermail";
    }
}  

}

if(!$mailGesendet) { //Formular nur anzeigen, wenn noch keine Mail gesendet ?> 

<em>Die mit 
<font color=red>*</font> markierten Felder m&uuml;ssen ausgef&uuml;llt werden.</em><br>
		
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post"> 
<table width="95%" border="0" cellpadding="2"> 
  <tr>
    <td width="33%">Vorname<font color=red>*</font>:</td>
    <td width="67%"><input type="text" name="vorname" value="<?php if (isset($_POST['vorname'])) echo $_POST['vorname']; ?>" size="40"></td>
  </tr>
usw...
 
AW: Mehr Funktionen für die Website programmieren

du musst solche sachen wie
Code:
$sql="INSERT INTO fanclub (Vorname,Nachname) VALUES('$vorname', '$nachname')";
natürlich auch noch per mysql_query an die datenbank schicken... also zb so
Code:
if($success=mysql_query($sql)){ print "es funktioniert!"; }
allerdings musst du dazu natürlich auch ne aktive verbindung haben (mysql_connect... )
 
AW: Mehr Funktionen für die Website programmieren

Hey ich habe hier ein Beispiel für dich wie du Mit einer Datenbank arbeiten könntest
in der PHP class, musst du diese Daten mit deinen Zugangsdaten füllen.
var $user="Benutzername";
var $passwd="Passwort";
var $db="Datenbankname";
var $host="localhost";

1. erstelle dir eine Datenbank
2. erstelle dir eine Tabelle z.B.
Name: user
Tabellenfelder: `id` , `empfaenger` , `email` , `vorname` , `nachname` , `website` , `nickname`, `nachricht`
Hier ist wichtig das du die "id" mit einem eindeutigen Schlüssel speicherst bei phpmyadmin heist das "auto_increment" so wird automatisch eine eindeutige id für den User(Benutzer) erstellt

(in meinem Beispiel am Ende des PHP Codes siehst du ein Beispiel für SQL Anweisungen in dem Beispiel habe ich die Tabelle "user" genant)

Am Ende habe ich zwei SQL Anweisungen eine zum einfügen und eine fürs auslesen aus der Datenbank.

PHP:
<?php
/**
*	@author Ronny Teufert Software Developer ©2005 
*/
class DbConnection {
	
	var $user="Benutzername";
	var $passwd="Passwort";
	var $db="Datenbankname";
	var $host="localhost";
	
	function DbConnection(){
	}
	//Datenbank öffnen
	function OpenDB(){
		//DB Connect
		$link=mysql_connect($this->host,$this->user,$this->passwd) or die(mysql_error());
	    $db=mysql_select_db($this->db) or die("Selection to database failed!");
		return $link;
	}
	//aus DAtenbank lesen
	function Query($cmd,$dblink){
		$result=mysql_query($cmd,$dblink) or die(mysql_error()."\nErrorCode = QUERY");
		return $result;
	}
	//in datenbank schreiben
	function SetSqlData($cmd,$dblink){
	    $result=mysql_query($cmd,$dblink) or die(mysql_error()."\nErrorCode = SetSqlData");
	    return $result;
	}
	//Datenbank schließen
	function CloseDB(){
		mysql_close();
	}
}

$dbconnection=new DbConnection();

$Empfaenger = $_POST["Empfaenger"];
$email = $_POST["email"]; 
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"]; 
$website = $_POST["website"];
$nickname = $_POST["nickname"]; 
$Nachricht = $_POST["Nachricht"];

//einfügen
$dblink=$dbconnection->OpenDB();
//SQL Anweisung
$cmd="INSERT INTO `user` ( `empfaenger` , `email` , `vorname` , `nachname` , `website` , `nickname`,'nachricht') VALUES ('".$Empfaenger."' , '".$email."' , '".$vorname."' , '".$nachname."' , '".$website."' , '".$nickname."','".$Nachricht."');";

$dbconnection->SetSqlData($cmd,$dblink);
//die userid die zuletzt verwendet wurde
$number= mysql_insert_id();

$dbconnection->CloseDB();
		

//Auslesn
//SQL Anweisung
$cmd="SELECT `id` , `empfaenger` , `email` , `vorname` , `nachname` , `website` , `nickname`, `nachricht`  FROM `user` ORDER BY `id` ASC";
$dblink=$dbconnection->OpenDB();
$res=$dbconnection->Query($cmd,$dblink);

// Ausgabe
while ( $zeile = mysql_fetch_array($res, MYSQL_NUM))
{
	echo $zeile[0].",".$zeile[1].",".$zeile[2].",".$zeile[3].",".$zeile[4].",".$zeile[5].",".$zeile[6].",".$zeile[7];
		
}

$dbconnection->CloseDB();
?>
 
Zuletzt bearbeitet:
AW: Mehr Funktionen für die Website programmieren

@ronny: dafür braucht er aber tatsächlich php5 - sollte ihm das nicht zur verfügung stehen schauts eher schlecht aus... - zudem glaub ich liegt das problem eher bei der frage, wie er die sql-befehle an die datenbank übergeben und von ihr dann ergebnisse zurückbekommen kann, die er dann mit php weiterverwenden kann...
 
Zuletzt bearbeitet:
AW: Mehr Funktionen für die Website programmieren

ja das mag sein aber ich glaube das er es auf die schnelle auch nicht hinbekommen wird. So wie es sich anhört weis er über php und mysql nicht viel.
 
Zuletzt bearbeitet:
AW: Mehr Funktionen für die Website programmieren

Ok jetzt mal als php 4 Version
Tabelle erstellen:
in phpmyadmin Datenbank auswählen, Link SQL auswählen und diesen Code einfügen
Code:
CREATE TABLE `user` (

`id` INT NOT NULL AUTO_INCREMENT ,
`empfaenger` VARCHAR( 255 ),
`email` VARCHAR( 255 ),
`vorname` VARCHAR( 255 ),
`nachname` VARCHAR( 255 ),
`website` VARCHAR( 255 ),
`nickname` VARCHAR( 255 ),
`nachricht` TEXT,
PRIMARY KEY  (`id`)
) TYPE = MYISAM AUTO_INCREMENT=0;
Wichtig Zugangsdaten füllen
Dein Formular musst du natürlich am ende noch einfügen
PHP:
<?php 
//Datenbank öffnen
function OpenDB(){
	//deine Zugangsdaten
	$user="Benutzername";
	$passwd="Passwort";
	$db="Datenbankname";
	$host="Dein Hostname";
	//DB Connect
	$link=mysql_connect($host,$user,$passwd) or die(mysql_error());
	$db=mysql_select_db($db) or die(mysql_error()."Selection to database failed!");
	return $link;
}
//aus Datenbank lesen
function Query($cmd,$dblink){
	$result=mysql_query($cmd,$dblink) or die(mysql_error());
	return $result;
}
//in Datenbank schreiben
function SetSqlData($cmd,$dblink){
	$result=mysql_query($cmd,$dblink) or die(mysql_error());
	return $result;
}
//Datenbank schließen
function CloseDB(){
	mysql_close();
}


if (isset ($_POST['abgeschickt'])) {
	//deine Daten
	$Empfaenger = $_POST["Empfaenger"];
	$email = $_POST["email"];
	$vorname = $_POST["vorname"];
	$nachname = $_POST["nachname"];
	$website = $_POST["website"];
	$nickname = $_POST["nickname"];
	$Nachricht = $_POST["Nachricht"];

	//einfügen
	$dblink=OpenDB();
	//SQL Anweisung
	$cmd="INSERT INTO `user` (`empfaenger` , `email` , `vorname` , `nachname` , `website` , `nickname`,`nachricht`) VALUES ('".$Empfaenger."' , '".$email."' , '".$vorname."' , '".$nachname."' , '".$website."' , '".$nickname."','".$Nachricht."');";

	SetSqlData($cmd,$dblink);
	//die userid die zuletzt verwendet wurde
	$number= mysql_insert_id();

	CloseDB();


	//Auslesen
	//SQL Anweisung
	$cmd="SELECT `id` , `empfaenger` , `email` , `vorname` , `nachname` , `website` , `nickname`, `nachricht`  FROM `user` ORDER BY `id` ASC";
	$dblink=OpenDB();
	$res=Query($cmd,$dblink);

	// Ausgabe
	while ( $zeile = mysql_fetch_array($res, MYSQL_NUM))
	{
		echo $zeile[0].",".$zeile[1].",".$zeile[2].",".$zeile[3].",".$zeile[4].",".$zeile[5].",".$zeile[6].",".$zeile[7];
	}
	CloseDB();
}
?>
 
AW: Mehr Funktionen für die Website programmieren

Hi, wie kommt ihr Genies eigentlich darauf, dass man für Klassen PHP 5 braucht?

Das 1. Script von Ronny ist definitiv auch unter PHP 4 evtl. sogar unter 3 lauffähig.
Ich hab mir damals eine Klasse unter PHP 4 geschrieben, wo ich eine einheitliche Zugriffssyntax für MySQL und Oracle Datenbanken (nur die SQL-Statements mussten angepasst werden) realisiert habe.


Wenn er denn schon programmieren lernt, sollte er sich auf jeden Fall gelich an die objektorientierte Arbeit gewöhnen.


Ciao
 
AW: Mehr Funktionen für die Website programmieren

öhm - ich dachte bisher immer, dass das nur unter php5 geht... sry, wenn ich hier was falsches behauptet hab..! hab hier auch grad nochmal n bisschen rumgegoogelt... bzw auf wikipedia nachgeschaut und du hast wohl tatsächlich recht
Meilensteine
[...]
PHP 4.0.0, erschienen am 22. Mai 2000
Einfaches OOP hinzugefügt [!]
Sessions hinzugefügt
PHP 5.0.0, erschienen am 13. Juli 2004
Erstmals ist durch viele hinzugefügte Sprachkonstrukte ernsthaftes objektorientiertes Programmieren möglich.
Exceptions hinzugefügt
sorry...
 
Zurück
Oben