Login-Script Problem

Gespenst
Hallo, hab mir ein Login Script gebaut. Leider gibt es in ein par Datein Fehler.
Datei: functions.php
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
<?php

function login(user,passwort){
  $connect mysql_connect($global["dbhost"],$global["dbuser"],$global["dbpass"]);
  $userini mysql_query('SELECT * FROM users WHERE user LIKE "'.$user.'"');
  if(mysql_num_rows($userini) == 0) return("flase"); else {
    $row mysql_fetch_array($userini);
    if($row->passwort == $passwort){
      if($row->gespert == "true") return("flase"); else {
        $timestamp time();
    session_start();
        $SESSION["logon"] = array();
        $SESSION["logon"]["logon"] = "true";
        $SESSION["logon"]["id"] = $row->id;
        $SESSION["logon"]["user"] = $user; 
        $SESSION["logon"]["mail"] = $row->mail;
        $SESSION["logon"]["passwort"] = $passwort;
        $SESSION["logon"]["data"] = date("d.m.Y",$timestamp);
        $SESSION["logon"]["time"] = date("H:i",$timestamp);
        $SESSION["logon"]["telefon"] = $row->telefon;
        $SESSION["logon"]["fax"] = $row->fax;
        $SESSION["logon"]["strasse"] = $row->strasse;
        $SESSION["logon"]["plz"] = $row->plz;
        $SESSION["logon"]["ort"] = $row->ort;
        return("true");
      }
    }
  }
}

function update(){
  if($SESSION["logon"]["logon"] == "true"){
    $connect mysql_connect($global["dbhost"],$global["dbuser"],$global["dbpass"]);
    $update mysql_query('UPDATE users Set
    user="'.$SESSION["logon"]["user"].'"
    mail="'.$SESSION["logon"]["mail"].'"
    passwort="'.$SESSION["logon"]["passwort"].'"
    telefon="'.$SESSION["logon"]["telefon"].'"
    fax="'.$SESSION["logon"]["fax"].'"
    strasse="'.$SESSION["logon"]["strasse"].'"
    plz="'.$SESSION["logon"]["plz"].'"
    ort="'.$SESSION["logon"]["ort"].'"
    WHERE id="'.$SESSION["logon"]["id"].'"');
    return("true");  
  } else return("flase");  
mysql_close($connect);
}

function passwort(user){
  srand(microtime()*1000000);
  $newpasswort rand(1,1000000);
  $connect mysql_connect($global["dbhost"],$global["dbuser"],$global["dbpass"]);
  $userini mysql_query('SELECT * FROM users WHERE user LIKE "'.$user.'"');
  if(mysql_num_rows($userini) == 0) return("flase"); else {
    $mail mail($row->mail"Passwort vergessen",
    "Guten Tag,\n\nIhr neues Passwort lautet: ".$newpasswort."\n\nVielen Dank!",
    "From: ".$global["email"]."");
     mysql_close($connect);
  }
}

function register(name,mail,passwort,telefon,fax,plz,ort){
  $connect mysql_connect($global["dbhost"],$global["dbuser"],$global["dbpass"]);
  $registermysql_query("INSERT INTO users (name,mail,passwort,telefon,fax,plz,ort)
  VALUES ('".$name."','".$mail."',".$passwort."', '".$telefon."',".$fax."', '".$plz.",".$ort."'");
  login($name,$passwort);
  mysql_close($connect);
}

?>

Fehler: Parse error: syntax error, unexpected ',', expecting '&' or T_VARIABLE in C:\xampp\htdocs\login\functions.php on line 3

Datei: register.php

Code:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
<?php

include("global.php");
include("functions.php");

if($_POST["action"] == "reg"){

  $stop="flase"$error="";
  if($_POST["name"] == ""){ $error.="Bitte das Feld Name ausfühlen."$stop="true"; }
  if($_POST["mail"] == ""){ $error.="Bitte das Feld E-Mail ausfühlen."$stop="true"; }
  if($_POST["passwort"] == ""){ $error.="Bitte das Feld Passwort ausfühlen."$stop="true"; }
  if($_POST["telefon"] == ""){ $error.="Bitte das Feld Telefon ausfühlen."$stop="true"; }
  if($_POST["fax"] == ""){ $error.="Bitte das Feld Faxnummer ausfühlen."$stop="true"; }
  if($_POST["plz"] == ""){ $error.="Bitte das Feld PLZ ausfühlen."$stop="true"; }
  if($_POST["ort"] == ""){ $error.="Bitte das Feld Ort ausfühlen."$stop="true"; }
  if($stop=="flase"){
    register($_POST["name"],$_POST["mail"],$_POST["passwort"],$_POST["telefon"],$_POST["fax"],$_POST["plz"],$_POST["ort"]);
    header("Location:register.php?action=erfolgreich");
    exit();
  }

if($_POST["action"] == "erfolgreich"){

?>

Die Registrierrung wurde erfolreich abgelossen! Sie wurden nun automatisch eingelogt.

<?php

} if($_POST["action"] == ""){

?>

Vielen Dank das Sie sich bei unserem Service kostenlos anmelden wollen.<br />
Damit Sie die Registrierrrung abschließen können ist es wichtig, dass Sie alle Felder<br />
ausfüllen. Sollten Sie Probleme bei der Registrierrung haben, setzen Sie sich bitte mit<br />
dem Webmaster dieser Homepage in Verbindung!<br /><br />

<?php echo $error; echo"<br /><br />"?>

<form name="register"><table border="1"><tr><td>Benutzername:</td>
<td><input name="name" type="text"></td></tr>
<tr><td>E-Mail:</td><td><input name="mail"></td></tr>
<tr><td>Passwort:</td><td><input name="passwort"></td></tr>
<tr><td>Telefon:</td><td><input name="telefon"></td></tr>
<tr><td>Faxnummer:</td><td><input name="fax"></td></tr>
<tr><td>PLZ und Ort:</td><td><input name="plz"><input name="ort"></td></tr></table></form>

<?php

} exit(); ?>


Danke im Vorraus!

Gespenst (Änfänger)
Rogerhuber
Zitat:
Original von Gespenst
Fehler: Parse error: syntax error, unexpected ',', expecting '&' or T_VARIABLE in C:\xampp\htdocs\login\functions.php on line 3



Du solltest bei der funktion wohl Variablen nutzen und keine Konstanten..

function login($username, $passwort)
(Gilt auch bei den anderen funktionen)

$global dürfte auch nicht verfügbar sein, allerdings stellt sich hier die Frage ob du wirklich bei jedem funktionsaufruf ein mysql_connect durchführen musst und nicht schon eine Verbindung offen hast.

Übrigens, dein alter Freund addslashes fehlt.

Ach ja, es hies "FALSE" und ich glaub es war $_SESSION und nicht $SESSION.

(PS: Nach einem Query solltest du ein or die(mysql_error()) hinschreiben, den dein Update-Query gibt ziemlich sicher ein Fehler zurück Augenzwinkern )
Moes
Wie es Rogerhuber schon gesagt hat.

Benutz bei Logins immer addslashes wenn um UserNamen geht. Wenn man sich mit der ID einloggen soll macht man das dann mit intval().

Da ich nochwas in der function "password" vergessen habe. Die Variable/Array $global['email'] wird nicht "definiert". Also wenn du die Variable ausser dieser Funktion gesetzt hast, musst du noch am anfang der funktion hinschreiben.

php:
1:
global $global['email'];


(Ich würde auch noch bei jeder Funktion $_SESSION sowie die Datenbank Arrays eintragen Augenzwinkern )

Gruß