Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Leider wieder ein Problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Leider wieder ein Problem


 
manuelakersten
23-05-2004, 20:15 
 
Hallo Leute,

so nun habe ich das mit den Sessions einigermassen kapiert
und es klappt auch so weit, jedoch habe ich nun noch ein kleine
Problem.

Mein Script :

// Session festlegen ( wird aus dem Usernamen generiert )
$session = md5($plz);

// Zufallspasswort festlegen
$ret = '';
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$char_num = strlen($chars)-1;
$rand = rand($_min,$_max);
for ($i=0; $i<$rand; ++$i) {
$passwort = $chars[rand(0,$char_num)];

// Userdaten werden in die Datenbank geschrieben
$sql ="INSERT INTO user (Id, Username, Kennwort, Firma, Vorname, Nachname, Strasse, Plz, Ort, Email, Status) values ('', '$username', '$passwort', '$firma', '$vorname','$nachname','$strasse','$plz','$ort','$email')";
mysql_query($sql, $db) or die(mysql_error());
mysql_affected_rows() ."";

// Anmeldemail wird an den User geschickt
$text.= "Sie wurden für den Mitgliederbereich bei ".$title." angemeldet.";
$text.= "Ihre Zugangsdaten lauten<br>";
$text.= "Username : ".$username."<br>";
$text.= "Passwort : ".$passwort."<br><br>";
$text.= "Einloggen können Sie sich auf <a href=".$url.">".$url."</a><br><br>";
$text.= "Ihr $title Team";

$empfaenger = "$email";
$betreff = "Ihre Anmeldung bei $title";
$headers = "Content-Type: text/html\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "From: $title\n";
$headers .= "Reply-To: $admin_mail\n";

mail($empfaenger, $betreff, $text, $headers);

echo "<br>";
echo "<center>Wir haben Ihnen ein Mail geschickt mit einem Link um Ihren Zugang freizuschalten.<br>Rufen Sie bitte Ihre eMails ab und klicken Sie auf den Link.<ul>";
echo "</ul></center>";
}


Jedoch bekomme ich eine leere Ausgabe und wenn ich eine Variabel wie
z.B. echo $nachname rein packe wird dieser auch korrekt angezeigt.

An was kann das liegen ?

Danke und Gruss Ela

 
haarmann
23-05-2004, 21:05 
 
so hallo,

also der erste hinweis wäre ma .. die for schleife bei der berechnung des passworts :


for ($i=0; $i<$rand; ++$i) {
$passwort = $chars[rand(0,$char_num)];

sollte doch eher

for ($i=0; $i<$rand; ++$i)
$passwort = $chars[rand(0,$char_num)];

so aussehen. wichtig ist die fehlende offene geschweifte klammer nach dem for-ausdruck. dann kannst du dir imo auch die geschweifte klammer ganz am schluss des snippets sparen.

das is auf jeden fall was das mir aufgefallen is, vielleicht hilfts weiter.

moritz

 
manuelakersten
23-05-2004, 22:29 
 
Danke Deine Idee habe ich umgesetzt, bekomme aber nun folgende Fehlermeldung : Column count doesn't match value count at row 1

Gruss und Danke Ela

 
manuelakersten
23-05-2004, 22:49 
 
So habe den Code nun wie folgt geändert :

$ret = '';
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$char_num = strlen($chars)-1;
$rand = rand(6,10);
for ($i=0; $i<$rand; ++$i)
$ret.= $chars[rand(0,$char_num)];

// Userdaten werden in die Datenbank geschrieben
$sql ="INSERT INTO user (Id, Username, Kennwort, Firma, Vorname, Nachname, Strasse, Plz, Ort, Email, Status) values ('', '$username', '$ret', '$firma', '$vorname','$nachname','$strasse','$plz','$ort','$email')";
mysql_query($sql, $db) or die(mysql_error());
mysql_affected_rows() ."";

Das mit dem zusenden der Zugangsdaten per eMail hat nun geklappt, daher habe ich hier auf eine wiederholung des Codes verzichtet.

Auch wird das Passwort richtig generiert und es klappt auch alles, wenn ich das schreiben in die DB ausklammere, wenn ich diese jedoch drin lasse erhalte ich wieder -> Column count doesn't match value count at row 1 .

Kann dieses vielleicht an der autm. Zuweisung der Id liegen ?

Gruss und Danke Ela

 
manuelakersten
23-05-2004, 22:53 
 
Hatt sich erledigt hat geklappt, trotzdem Danke !

Kann ich eigentlich mit einem Satz alle Angaben des Formulars mit denen in der DB vergleichen und bei Übereinstimmung einer Angabe diese Ausgeben lassen, damit keine doppelten Angaben gemacht werden ?!

Gruss und Danke Ela

 
Shurakai
23-05-2004, 22:53 
 
Column count doesn't match value count at row 1 .

Bedeutet, dass du zuwenig werte in die DB einspielst, d.h. nicht alle Felder sind gefüllt!

EDIT: Verdammt, war zu langsam.... naja, wie meinst du deinen Post? Versteh ich nicht ganz... :/

 
manuelakersten
23-05-2004, 23:02 
 
Ja genau daran lag es auch :-)

Das mit dem Vergleich hat sich auch gerade erledigt,
da ich mal denke, dass es mehrere mit dem gleichen
Nachnamen gibt.

Trotzdem Super Danke

Ela


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:18 Uhr.