Hallo zusammen,
ich sitze schon so lange vorm Rechner, dass ich den Wald vor lauter Bäumen nicht mehr sehe.
Ich kämpfe mich immer noch durch mein gekauftes Auktionsskript. Wenn man einen Artikel aufruft, kann man, wie auch bei Ebay, dem Verkäufer eine Frage stellen.
Programmiert ist es so, dass man sich dafür ersteinmal einloggen muss. Das finde ich allerdings total überflüssig und unangebracht.
Ich habe schon einiges probiert, aber nichts klappt. Hier erstmal das Skript:
PHP-Code:
require( "include/common.php" );
global $db, $conf;
if( !checkUser() ) header( "Location: ./login.php" );
if(isset ($_SESSION['ucheck']) && $_SESSION['ucheck'] !='')
{
$resultl = mysql_query( "SELECT * FROM pt_users WHERE username='$_SESSION[uname]' AND password='$_SESSION[ucheck]'" ) or error( mysql_error() );
$user = mysql_fetch_array( $resultl );
$username=$user['username'];
$userid = $user['user_id'];
}
require( "include/langselect.php");
require( "lang/$lang/l_askseller.php");
$required="<font color='red'>*</font> ";
if ($username !="")
{
$time = time();
if( isset( $action ) )
{
if( $action == "ask" )
{
$name = trim( $name );
$email = trim( $email );
$question = trim( $question );
/* hab ich schon rausgenommen
if( $name == "" ) error( "$l_needaskername" );
*/
if( $email == "" ) error( "$l_needaskmail" );
elseif ( !eregi( "^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$", $email ) ) error( "$l_invalidmail" );
if( $question == "" ) error( "$l_needmessage" );
if( strlen( $question ) < 10 ) error( "$l_tolesschars" );
$result = mysql_query( "SELECT email FROM pt_users WHERE email='$email'" ) or error( mysql_error() );
$umail=mysql_fetch_array( $result );
/* hab ich rausgenommen
if ($email != "{$umail['email']}") error ( "$l_maildoesntexist" );
*/
function AskSeller($result)
{
global $db, $conf, $who, $name, $sectio, $an, $question;
$result=preg_replace("/~name~/","$who",$result);
$result=preg_replace("/~user~/","$name",$result);
$result=preg_replace("/~adnr~/","$an",$result);
$result=preg_replace("/~mail~/",$_POST['email'],$result);
$result=preg_replace("/~question~/","$question",$result);
$result=preg_replace("/~link~/","$conf[SiteURL]/showad.php?sectio=$sectio&an=$an",$result);
$result=preg_replace("/~home~/","$conf[SiteURL]",$result);
return $result;
}
$mailtext = AskSeller($mailtemp['TemplateAskSeller']);
$message = "$mailtext \n\n";
$message .= "$conf[MailAdvertText]";
outMails2( "{$name} <{$email}>", $to, "$mailtemp[SubjectAskSeller]", $message );
showHeader( "$conf[SiteName] :: $l_questsent" );
include( "navigation.php" );
include( "./templates/question_sent.tpl.htm" );
showFooter();
}
}
else
{ $senderres = mysql_query("SELECT * FROM pt_users WHERE user_id={$user['user_id']}") or error( mysql_error() );
$sender = mysql_fetch_array($senderres);
$sellerres = mysql_query("SELECT * FROM pt_users WHERE username='$who'") or error( mysql_error() );
$seller = mysql_fetch_array($sellerres);
showHeader( "$conf[SiteName] :: $l_askseller" );
include( "navigation.php" );
include( "./templates/askseller.tpl.htm" );
showFooter();
}
}
Auf einer anderen Seite habe ich den ersten Block ab if( !checkUser() ) header( "Location: ./login.php" ); bis vor require( "include/langselect.php"); rausgenommen, und es hat funktioniert. Hier ist die Seite weiß, und es geht gar nichts mehr.
Kann mir vielleicht mal jemand sagen, was ich falsch mache?
Ach so, normaler Weise kam dann ein Formular mit Benutzernamen, E-Mail und Text. Benutzer und E-Mail wurden automatisch eingefügt. Das habe ich nun auch schon so umgeschrieben, dass der Fragesteller die E-Mail-Adresse selbst eingeben muss, und der Benutzername entfällt. Das klappt auch. Nur muss man eben noch eingeloggt sein.
LG Nadine