Didito's php Probleme |
Didito
Mitglied
Dabei seit: 30.11.04
Beiträge: 442
Fähigkeiten: WBB2 Profi Forenversion: 2.3
Themenstarter
|
|
Ok supi wieder was gelernt, aber bei meinem Problem 2 hilft mir das leider nicht weiter. Schon zig möglichkeiten probiert.
|
|
27.01.07 15:29 |
Finden
Als Freund hinzufügen
|
|
Didito
Mitglied
Dabei seit: 30.11.04
Beiträge: 442
Fähigkeiten: WBB2 Profi Forenversion: 2.3
Themenstarter
|
|
code: |
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:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
|
<?
if(!isset($seitenid)){ header("Location: ./."); }
if($admin_pass == $sess_pass && $admin_user == $sess_user){
if($action == "save"){
$error_pic = ("<img src=\"pics/achtung.gif\" width=\"14\" height=\"15\">");
if($newankuendigung < 1) { $error.=("Kein gültiger Modus!<br>"); $err_newoffline=$error_pic; }
if($newankuendigung > 2) { $error.=("Kein gültiger Modus!<br>"); $err_newoffline=$error_pic; }
if(empty($newankuendigung)) { $error.=("Keinen Modus angegeben!<br>"); $err_newoffline=$error_pic; }
if($error==TRUE){ $error = ("<table width=\"532\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"990000\" bgcolor=\"#FFFFCC\" align=\"center\"><tr><td><font color=\"990000\"><b><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> ERROR:</font></b></font></td></tr><tr><td><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"20\"><img src=\"pics/spacer.gif\" width=\"1\" height=\"1\"></td><td><font size=2 face=\"Verdana, Arial, Helvetica, sans-serif\">$error</font></td></tr></table></td></tr></table><br>");
} else {
$config_file_content =("<?\n");
$config_file_content.=("############# MySQL-Server-Verbindungs-Daten #############\n");
$config_file_content.=("\$dbaseserver = \"$dbaseserver\";\n");
$config_file_content.=("\$dbaseuser = \"$dbaseuser\";\n");
$config_file_content.=("\$dbasepass = \"$dbasepass\";\n");
$config_file_content.=("\$dbase = \"$dbase\";\n");
$config_file_content.=("\$dbtblpre = \"$dbtblpre\";\n\n");
$config_file_content.=("\$phpmyadmin = \"$phpmyadmin\";\n\n");
$config_file_content.=("############# ADMIN - LOGIN/PASS #############\n");
$config_file_content.=("\$admin_user = \"$admin_user\";\n");
$config_file_content.=("\$admin_pass = \"$admin_pass\";\n\n");
$config_file_content.=("############# User - LOGIN/PASS #############\n");
$config_file_content.=("\$user_user = \"$user_user\";\n");
$config_file_content.=("\$user_pass = \"$user_pass\";\n\n");
$config_file_content.=("############# Infos zum ADMIN #############\n");
$config_file_content.=("\$admin = \"$admin\";\n");
$config_file_content.=("\$admin_email = \"$admin_email\";\n\n");
$config_file_content.=("############# Seiten-URL #############\n");
$config_file_content.=("\$site_url = \"$site_url\";\n\n");
$config_file_content.=("############# Weitere Seiteneinstellungen #############\n");
$config_file_content.=("\$suche_len_min = $suche_len_min;\n");
$config_file_content.=("\$seiten_zaehler = $seiten_zaehler;\n");
$config_file_content.=("\$seiten_zaehler_sprung = $seiten_zaehler_sprung;\n");
$config_file_content.=("############# Online- / Offlinemodus #############\n");
$config_file_content.=("\$offline = \"$offline\";\n");
$config_file_content.=("\$offline_text = \"$offline_text\";\n");
$config_file_content.=("############# Online- / Offlinemodus #############\n");
$config_file_content.=("\$ankuendigung = \"$newankuendigung\";\n");
$config_file_content.=("\$ankuendigung_thema = \"$newankuendigung_thema\";\n");
$config_file_content.=("\$ankuendigung_text = \"$newankuendigung_text\";\n");
$config_file_content.=("?>");
$config_file = fopen("admin/config.php", "w+") or $cf_open_error=TRUE;
if(!$cf_open_error){
fwrite($config_file, $config_file_content);
fclose($config_file);
echo $config_file_content;
}
echo ("<center><br><br><br><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Änderungen wurden gespeichert!</font><br><br></center>");
}
}
if($error || $action!="save") {
echo ("<br>$error<br>
<table width=\"532\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"990000\" bgcolor=\"#FFFFCC\" align=\"center\">
<tr>
<td><font color=\"990000\"><b><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> Hinweis:</font></b></font></td>
</tr>
<tr>
<td>
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td class=info><br><ul>
<li><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Kein Zeilenumbruch in der Ankündigung!</font></li>
<li><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">1 = An / 2 = Aus</font></li></ul></td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table width=\"532\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"990000\" bgcolor=\"#FFFFCC\" align=\"center\">
<tr>
<td> Die Ankündigung ist: "); if($ankuendigung==1){ echo ("<font color=\"red\"><b>eingeschaltet</b></font>"); } else { echo ("<font color=\"red\"><b>ausgeschaltet</b></font>"); } echo ("</td>
</tr>
</table>
<br>
<table width=\"532\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" bgcolor=\"#000000\" align=\"center\">
<form name=\"config\" method=\"post\" action=\"$PHP_SELF\"><input type=\"hidden\" name=\"action\" value=\"save\">
<tr>
<td>
<table width=\"532\" cellspacing=\"1\" cellpadding=\"5\" border=\"0\" align=\"center\">
<tr>
<td bgcolor=\"#E6F2F2\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Ankündigung?</font></td><td bgcolor=\"#E6F2F2\"><input type=\"text\" name=\"newankuendigung\" size=\"1\" value=\"$ankuendigung\" style=\"float: center\">$err_newankuendigung</td>
</tr>
<tr>
<td bgcolor=\"#BADCDC\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Thema</font></td><td bgcolor=\"#E6F2F2\"><input type=\"text\" name=\"newankuendigung_thema\" size=\"66\" value=\"$ankuendigung_thema\" style=\"float: center\"></td>
</tr>
<tr bgcolor=\"#E6F2F2\">
<td valign=\"top\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Nachricht</font></td><td><textarea name=\"newankuendigung_text\" class=\"textfeld\" wrap=\"virtual\" cols=\"50\" rows=\"10\">$ankuendigung_text</textarea></td>
</tr>
<tr>
<td bgcolor=\"#BADCDC\"></td>
<td width=\"400\" bgcolor=\"#BADCDC\" height=\"40\"><div align=\"center\"><input type=\"submit\" name=\"Submit\" value=\"Speichern\"><input type=\"reset\" name=\"Submit2\" value=\"Löschen\"></div></td>
</tr>
</table>
</td>
</tr>
</table>
<br> ");
}
} else { include("admin/admin_login.php");
}
?>
|
|
|
|
27.01.07 18:20 |
Finden
Als Freund hinzufügen
|
|
Didito
Mitglied
Dabei seit: 30.11.04
Beiträge: 442
Fähigkeiten: WBB2 Profi Forenversion: 2.3
Themenstarter
|
|
Problem 4
Bin dabei ein LoginLog für mein Script zu basteln.
Dieses Stück ist in meiner login.php
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
|
//##### Logging #####
if($admin_pass == $sess_pass && $admin_user == $sess_user){
$jetzt = date("d.m.y - H:i:s");
$ip = getenv("REMOTE_ADDR");
$content = $admin_user .", ". $ip .", ". $jetzt ."\n";
$datei = "adminlog.txt";
$fp = fopen($datei, "a+");
$inhalt = fread($fp, filesize($datei));
$inhalt .= $content;
fwrite($fp, $content);
fclose($fp);
//##### Logging #####
|
|
Problem: Es wird nicht in meine adminlog.txt geschrieben!
Kann jemand helfen?
Es müsste so in der adminlog.txt stehen
Beispiel: Admin, 84.132.156.247, 18.10.06 - 02:53:58
|
|
07.02.07 18:32 |
Finden
Als Freund hinzufügen
|
|
[kamui]
~
Dabei seit: 27.04.05
Beiträge: 2.992
|
|
Du hast vergessen die geschweifte Klammer des ifs zu schließen.
Bist du außerdem sicher, dass dieses if true ist?
|
|
07.02.07 18:53 |
Finden
Als Freund hinzufügen
|
|
Didito
Mitglied
Dabei seit: 30.11.04
Beiträge: 442
Fähigkeiten: WBB2 Profi Forenversion: 2.3
Themenstarter
|
|
hab die if schleife ganz unten über ?> geschlossen
|
|
07.02.07 18:55 |
Finden
Als Freund hinzufügen
|
|
Didito
Mitglied
Dabei seit: 30.11.04
Beiträge: 442
Fähigkeiten: WBB2 Profi Forenversion: 2.3
Themenstarter
|
|
Funktioniert leider nicht.
|
|
07.02.07 22:49 |
Finden
Als Freund hinzufügen
|
|
Didito
Mitglied
Dabei seit: 30.11.04
Beiträge: 442
Fähigkeiten: WBB2 Profi Forenversion: 2.3
Themenstarter
|
|
Die if abfrage ist ob der Username und das Passower richtig ist was eingegeben wurde, wenn beides richtig ist, dann wird die Seite angezeigt.
Und nun soll noch der Login automatisch geloggt werden. Nachdem man sich erfolgreich eingeloggt hat.
|
|
08.02.07 13:56 |
Finden
Als Freund hinzufügen
|
|
Didito
Mitglied
Dabei seit: 30.11.04
Beiträge: 442
Fähigkeiten: WBB2 Profi Forenversion: 2.3
Themenstarter
|
|
In einem anderem Scipt von mir lautet der Quellcode so.
Das funktioniert auch.
In der "config/global.inc.php" stehen die Datenbank Daten.
Und jetzt will ich das für mein anderes Script haben, nur ich brauche die Datenbankabfrage nicht, weil der Admin Name in der config.php steht und nicht in der Datenbank.
code: |
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:
|
//##### Logging #####
$jetzt = date("d.m.y - H:i:s");
if (!$_COOKIE['adminlog'] || $_COOKIE['adminlog'] > time()) {
setcookie("adminlog", time(), time()+3600);
@include("config/global.inc.php");
$result = mysql_query("SELECT name FROM ". $conf['db_prefix'] ."_admin WHERE id = '". $_COOKIE['admin'] ."'");
$admin = mysql_fetch_array($result);
mysql_free_result($result);
if ($admin['name']) {
$ip = getenv("REMOTE_ADDR");
$content = $admin['name'] .", ". $ip .", ". $jetzt ."\n";
$datei = "config/adminlog.txt";
$fp = fopen($datei, "a+");
$inhalt = fread($fp, filesize($datei));
$inhalt .= $content;
fwrite($fp, $content);
fclose($fp);
}
}
//###################
|
|
|
|
08.02.07 14:04 |
Finden
Als Freund hinzufügen
|
|
Didito
Mitglied
Dabei seit: 30.11.04
Beiträge: 442
Fähigkeiten: WBB2 Profi Forenversion: 2.3
Themenstarter
|
|
Neues Problem:
Werte eines array in die Datenbank speichern
in der acp/users.php im action delete heißt es ganz oben:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
if (isset($_REQUEST['userids'])) $userids = $_REQUEST['userids'];
else {
if (isset($_GET['userid'])) $userid = intval_array($_GET['userid']);
elseif (isset($_POST['userid'])) $userid = intval_array($_POST['userid']);
else $userid = array();
$userids = implode(",", $userid);
}
|
|
Ich möchte nun alle UserIds aus dem array $userids nacheinander mit einer Schleife in der Datenbank speichern.
Zum Beispiel wurden die User mit der User ID 5, 16, 90 zum löschen ausgewählt. Diese sollen dann in der Datenbank gespeichert werden.
Bekomme das nicht mit den Werten aus dem array holen hin.
Meine Schleife bis jetzt:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
$i=0;
while($i <= count($userids))
{
$test = $userids['$i'];
$db->unbuffered_query("INSERT INTO bb".$n."_test (id,test) VALUES ('','$test')");
$i++;
}
|
|
|
|
18.09.09 17:01 |
Finden
Als Freund hinzufügen
|
|
Hawkes
gesperrt 10/01/10
Dabei seit: 31.03.04
Beiträge: 213
|
|
Einfache Grundregel: SQL Queries sollten NICHT in Schleifen ausgeführt werden!
Verbesserter Code:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
$inserts = '';
foreach($userids as $userID) {
if (!empty($inserts)) $inserts .= ',';
$inserts .= '(NULL, '.$userID.')';
}
if (!empty($inserts)) {
$db->unbuffered_query("INSERT INTO bb".$n."_test (id,test) VALUES ".$inserts);
} |
|
|
|
18.09.09 19:47 |
Finden
Als Freund hinzufügen
|
|
Didito
Mitglied
Dabei seit: 30.11.04
Beiträge: 442
Fähigkeiten: WBB2 Profi Forenversion: 2.3
Themenstarter
|
|
Neues Problem:
Ich habe einen eigenen Newsletter gebastelt. Die Admins können eigene Texte für Eintragen und Austragen in die Datenbank speichern.
Die Texte werden dann per E-Mail an die E-Mail-Adresse gesendet die sich für den Newsletter eingetragen bzw. ausgetragen hat.
Text für Eintragen:
Hallo,
hiermit bestätige ich, dass Sie sich erfolgreich für den Newsletter angemeldet haben.
Alle News werden Ihnen ab sofort per E-Mail gesendet.
Wenn Sie den Newsletter nicht weiter erhalten möchten, klicken Sie bitte hier und tragen sich manuell aus:
http://www.scfriedland.info/index.php?site=newsletter
oder klicken Sie hier:
http://www.scfriedland.info/index.php?si...ustragen&email=$email
Mit freundlichen Grüßen
Das Problem liegt darin das die E-Mail-Adresse nicht mitgesendet wird, also die Variable nicht angehangen wird.
Kommt nur: http://www.scfriedland.info/index.php?si...ustragen&email=
Habe es gelöst indem ich den Teil mit der E-Mail-Adresse in den php Code mache, dann wird die E-Mail-Adresse mitgesendet. Das ist aber doof, weil sonst brauchen die Admins ja keine eigene Texte in die Datenbank eintragen können.
Hier mein bisheriger Code:
code: |
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:
|
if($art == "eintragen")
{
$result = mysql_query("SELECT * FROM ".$sql_prefix."_newsletter WHERE email='$email'");
$count = mysql_num_rows($result);
if($count > 0)
{
$message = "<br><b>Ihre E-Mail-Adresse '$email' ist bereits eingetragen!</b>";
}
else
{
mysql_query("INSERT INTO ".$sql_prefix."_newsletter (email,datum,ip,host,browser) VALUES ('$email','".time()."','$_SERVER[REMOTE_ADDR]','gethostbyaddr($_SERVER[REMOTE_ADDR])','$_SERVER[HTTP_USER_AGENT]')");
$message = "<br><b>Ihre E-Mail-Adresse '$email' wurde erfolgreich eingetragen!</b>";
$result = mysql_query("SELECT betreff_eintragen,text_eintragen FROM ".$sql_prefix."_newsletter_automails WHERE id='1'");
$row = mysql_fetch_array($result);
$text = "
$row[text_eintragen]
$script_url/index.php?site=newsletter&action=austragen&email=$email
Mit freundlichen Grüßen
";
$text = stripslashes($text);
mail("$email","$row[betreff_eintragen]","$text","From: $admin_email");
$email = "";
}
}
|
|
$row[text_eintragen] hat den Inhalt:
Hallo,
hiermit bestätige ich, dass Sie sich erfolgreich für den Newsletter angemeldet haben.
Alle News werden Ihnen ab sofort per E-Mail gesendet.
Wenn Sie den Newsletter nicht weiter erhalten möchten, klicken Sie bitte hier und tragen sich manuell aus:
http://www.scfriedland.info/index.php?site=newsletter
oder klicken Sie hier:
|
|
01.10.09 15:01 |
Finden
Als Freund hinzufügen
|
|
Hawkes
gesperrt 10/01/10
Dabei seit: 31.03.04
Beiträge: 213
|
|
Dein Script hat SQL Injections, weil du deine Feldwerte nicht escapest. Somit könnte man über eine Manipulation des userAgents beispielsweise eigenes SQL ausführen.
Ansonsten: Man schreibt eigentlich nichtmehr $var = "Hier steht eine Variable: $foo"; sondern $var = "Hier steht eine Variable: ".$foo;
Wenn du eigene Variablen verwenden willst, solltest du eine eigene Templatesyntax vorgeben.
|
|
01.10.09 15:12 |
Finden
Als Freund hinzufügen
|
|
|