Seite 1 von 1

Path to the PHP binaries unter Windows

Verfasst: Sa 21.Jul, 2007 11:54
von Indextrader
Hallo ihr Lieben

Eine kleine Frage

Ich muss in einem PHP Script in der allerersten Zeile den Pfad zu php bin angeben.
Nun läuft der Server unter Windows und ich bekomme einfach nicht raus, was ich da eintragen muss.

so soll es unter Linux aussehen #!/usr/bin/php -q
Bei mir liegt der Ordner hier
f:/Programme/xampp/apache/bin/php , wenn ich das aber einfach so übernehme klappt es nicht

Eventuell kann mir da jemand helfen?

Verfasst: Sa 21.Jul, 2007 14:38
von oxpus
Ich muss in einem PHP Script in der allerersten Zeile den Pfad zu php bin angeben.
Seit wann?

Wenn PHP im Webserver eingebunden ist, ist das überhaupt nicht nötig.
Selbst dann nicht, wenn in einem HTML-File PHP-Code enthalten ist.

Dazu müssen unter Windows Pfadangaben auch immer mit einem Backslash angegeben werden.
Also richtig wäre dann

Code: Alles auswählen

f:\Programme\xampp\apache\bin\php

Verfasst: Sa 21.Jul, 2007 18:27
von Indextrader
Seit wann?
Na so steht es hier ;)
Ersetze ich #!/usr/bin/php -q mit f:\Programme\xampp\apache\bin\php und rufe die entsprechende .php im Browser auf wird mir f:\Programme\xampp\apache\bin\php angezeit, sonst passiert nichts ^6

Setting up the email gateway

Pop method
1- Check path to PHP:

Open the file emailpop.php located in the /email folder using a plain text editor (such as Notepad). After openning the file you will see this in the very first line:
#!/usr/bin/php -q
This is the path to the PHP binaries. On each server this path may be different, although it is usually either /usr/bin/php, /usr/local/php/bin/php or /usr/bin/local/php. To find out the path on your server, contact your host or run the whereis php command from telnet or SSH. If the path on your server is, for example, /usr/local/php/bin/php, you need to change the line above to:
#!/usr/local/php/bin/php -q

Code: Alles auswählen

#!/usr/bin/php -q
<?php

$scpath = 'f:\Programme\xampp\htdocs\support';

/********************************************************************************
* Do not edit anything below this line.											*
********************************************************************************/

require($scpath.'/conf/conn.php');
require($scpath.'/conf/conf.php');
require_once($scpath.'/inc/pear.php');
require_once($scpath.'/inc/socket.php');
include($scpath.'/inc/functions.php');
include($scpath.'/inc/pop3.php');
include($scpath.'/inc/mimedecode.php');

$query = "SELECT * FROM email_settings WHERE ID = '1'";
$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
if (mysql_num_rows($req) != 0){
	$row = mysql_fetch_array($req);
} else {
	exit();
}

if ($row['enabled_email']==0){
	exit();
}

if ($row['interface']!="pop"){
	exit();
}

$query = "SELECT * FROM email_accounts";
$resultaccount=mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
while($rowaccount = mysql_fetch_array($resultaccount)) {

	/** Create the class*/
	$pop3 =& new Net_POP3();

	if (($rowaccount['hostname'] == "") or ($rowaccount['port']=="") or ($rowaccount['username']=="") or ($rowaccount['password']=="")){
		$error = " Host name, port, username or password is empty ";
		$error_date=time();
		$query = "INSERT INTO pop_errors (errormsg, date) VALUES ('$error', '$error_date')";
		$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
		continue;
	}

	/** Connect to localhost on usual port
	* If not given, defaults are localhost:110*/
	if (!@$pop3->connect($rowaccount['hostname'], $rowaccount['port'])){
		$error = " Unable to connect to $rowaccount[hostname]:$rowaccount[port] ";
		$error_date=time();
		$query = "INSERT INTO pop_errors (errormsg, date) VALUES ('$error', '$error_date')";
		$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
		continue;
	}

	/** Login using username/password. APOP will
	* be tried first if supported, then basic.*/
	if (!$pop3->login($rowaccount['username'], $rowaccount['password'])){
		$error = " Unable to login with username: $rowaccount[username]. Wrong username or password.";
		$error_date=time();
		$query = "INSERT INTO pop_errors (errormsg, date) VALUES ('$error', '$error_date')";
		$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
		//$req = mysql_query("UPDATE email_settings SET warning_error ='$error' WHERE ID = '1'") or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
		continue;
	}


	/*N of messages*/
	$total_msgs = $pop3->numMsg();
	for ($i = 1; $i <=$total_msgs ; $i++) {
		$message = $pop3->getMsg($i);
		$info = $pop3->getListing($i);
		$msg_size = $info[size];
		require($scpath.'/inc/emailproc.php');

		$pop3->deleteMsg($i);
	}
	/** Disconnect */
	$pop3->disconnect();

}

?>

Verfasst: Sa 21.Jul, 2007 20:59
von oxpus
Nochmal:
Solche Seiten werden in einem Webserver ausgeführt, sonst würde ja nichts passieren.
Damit dann aber auch der Webserver erkennt, welche Scriptsprache hier zu verwenden ist, muss PHP eingebunden werden.
Ist das geschehen, ist die erste Zeile komplett überflüssig, ja sogar falsch!

Daher kann ich nicht verstehen, wie überhaupt jemand auf solche Definitionen kommt.
Ausser vielleicht, das Script würde explizit NICHT durch einen Webserver ausgeführt, sondern mit einem PHP-Aufruf gestartet.
Dann wäre aber auch Deine Angabe komplett daneben, denn mit #! wird definiert, wo sich PHP befindet, nicht erst danach!
Somit muss bereits die Zeile

Code: Alles auswählen

#!/usr/bin/php -q
so lauten:

Code: Alles auswählen

f:\Programme\xampp\Apache\bin\php
Aber wie bereits geschrieben:
Das ist nur nötig, wenn man das Script ausserhalb eines Webservers aufruft.
Ansonsten ist das so immer falsch und wird "nur" angezeigt, wie Du das ja bereits erfahren hast.

Aber zurück zum Fehler:
Den kann ich nur schlecht prüfen, wenn die betreffenden inkludierten Dateien nicht bekannt sind.
Sofern Du die hier veröffentlichen willst, dann auch bitte anhängen und nicht posten!!!

Verfasst: So 22.Jul, 2007 08:53
von Indextrader
Dank dir Oxpus, ich verstehe zwar nur Bahnhof, aber das wird sich sicher legen ;)

Die Datei wird wenn ich das richtig verstehe nicht includiert, sie soll lediglich Emails aus Outlook in die Datenbank pumpen, sodas sie dann im Script bearbeitet werden können.

Folgendes angehangene Script muss dazu im Browser aufgerufen werden

Verfasst: So 22.Jul, 2007 10:12
von oxpus
Nochmal:
Die Definition zu den PHP-Dateien in einem PHP-Script, welches innerhalb eines Webservers aufgerufen und benutzt wird, ist absoluter Blödsinn, da PHP bereits im Webserver selber eingebunden ist und damit dem Script zur Verfügung steht (oder genauer: der Webserver über das eingebundene PHP erkennt, daß der im Script angegebene Code PHP-Code ist; daher auch <?php am Anfang und ?> am Ende der Datei ;) ).
Jedes PHP-Script, was genau das verlangt, wurde also IMHO von :x: programmiert.

Um bei Deinem Script zu prüfen, warum denn nun trotz dieser unsinnigerweise verlangten Definition eine Fehlermeldung kommt, brauche ich auch die Dateien, die hier includiert werden!
Also diese Dateien hier:

Code: Alles auswählen

require($scpath.'/conf/conn.php');
require($scpath.'/conf/conf.php');
require_once($scpath.'/inc/pear.php');
require_once($scpath.'/inc/socket.php');
include($scpath.'/inc/functions.php');
include($scpath.'/inc/pop3.php');
include($scpath.'/inc/mimedecode.php');
Und BTW: Was macht denn dieses Script überhaupt? Ist es ein Teil eines Webmail-Clients? Da gibt es sicher deutlich bessere...

Verfasst: So 22.Jul, 2007 10:30
von Indextrader
Und BTW: Was macht denn dieses Script überhaupt? Ist es ein Teil eines Webmail-Clients? Da gibt es sicher deutlich bessere...

Ich bin momentan auf der Suche nach einem Script, mit dem ich Emails organisieren kann.
Alle eingehenden Emails für eine bestimmte Emailadresse sollen sortiert werden.
Momentan finde ich das nur bei Support Scripten, die vergeben eine ID und alle ein und ausgehenden Emails mit dieser ID werden sortiert, sodas jeder zugelassene Staff jederzeit den gesamten Mailverkehr einsehen und darauf antworten kann.
Ausserdem kann man den Mails Infos zufügen, nachdenen gesucht werden kann.
Somit kann man z.B der Eingangs ID einen Namen oder Emailadresse zuweisen und mit der Suchfunktion nach diesen Infos suchen.

Soetwas suche ich.

wenn du da etwas gutes kennst wäre das natürlich perfekt :)

Verfasst: So 22.Jul, 2007 11:13
von oxpus
Öhm, wie jetzt mit ID's?
Warum nicht eine Support-Adresse und jedem Teammitglied den Zugang zu dem Postfach mitteilen?
Dann sieht jeder andere bereits die geöffneten Emails nicht mehr und man kann auch die Emails in Ordner einsortieren, sofern erledigt und ggf. auch von wem. Und jedes Teammitglied kann in den Unterordnern nach den bisherigen Emails schauen.

Warum dann also nochmal ein Script, welches die Emails ein zweites Mal verwaltet?

Verfasst: So 22.Jul, 2007 14:24
von Indextrader
Deine Lösung hört sich nach viel Handarbeit an. ^6

Verfasst: So 22.Jul, 2007 14:45
von oxpus
Wieso?
Eine Email-Adresse, ein Postfach und jedes Team-Mitglied bekommt die Zugangsdaten.
Dann arbeiten alle im selben Postfach, welches man mit Ordnern schnell strukturiert hat.

Was ist daran kompliziert?

Einfacher, schneller und reibungsloser kann man Emails für ein Team nicht verwalten ;)
Setzt man dann auch noch Email-Clients mit Teamwork-Funktionen ein (Outlook ist ein Beispiel, wenn auch das teuerste), kann man auch prima mit dem einen Postfach zusammenarbeiten...

Verfasst: So 22.Jul, 2007 16:51
von Indextrader
Ok dann werde ich meine Taktik nochmal überdenken :)