webForumDet fria alternativet

vad är fel?

PHPur PHP

7 svar · 298 visningar · startad av FunTrix

Medlem sedan okt. 2003118 inlägg
Frågan#1

skulle någon kunna titta på den här koden och säga varför jag får en massa error hela tiden, php vill att jag ska ta bort en massa saker som gör att scriptet slutar att fungera, varför?

<? 
				/* FORMS */
/* Start bygg formulär */
$form1="<form name=\"form1\" action=\"?id=13\" method=\"POST\">
<table width=\"150\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" style=\"border: 0px solid #000000\">
  <tr>
    <th align=\"center\">Epost:
    </th>
  </tr>
  <tr>
      <td><input type=\"text\" size=\"22\" name=\"epost\">
      </td>
  </tr>
  <tr>
      <td><input type=\"hidden\" name=\"skickat\" value=\"japp\">
      </td>
  </tr>   
  <tr>
      <td colspan=\"3\"align=\"center\"><input type=\"submit\" name=\"submit\" value=\"Skicka\">
   <input type=\"reset\" name=\"reset\" value=\"Rensa\">
      </td>
  </tr>
  </table>
    ";
/* Slut bygg formulär */
 
if (isset($_POST['skickat'])){
 
   // Tag bort eventuella blanksteg i början eller slutet
   foreach($_POST as $key => $val){
     $_POST[$key] = trim($val);
   }
 
$newpass=substr(MD5(mt_rand()),0,10); // Skapa ett nytt lösenord
 
/* SQL Frågor */
$sql="SELECT epost from npmedlemmar WHERE epost='{$_POST['epost']}'";
$result = mysql_query($sql)or die("SQL: $sql <br>".mysql_error());
if (mysql_num_rows ($result) =="") {
     $reg_error[] = 1;
   }
 
   if (isset($reg_error)) {
echo "<font color=red>Epostadressen du uppgav:{$_POST['email1']}<br>
      finns inte registrerad till någon användare, eller så är ditt konto inte aktivt ännu,
      om du nyligen anmält dig och inte fått mail med inloggningsuppgifter! <br>
      Försök annars på nytt om du kanske skrev galet. <br>M.v.h Admin<br></font>";
echo $form1;
exit;
   }
$epost=mysql_result($result, 0);
$sql2="UPDATE npmedlemmar set pass='MD5($newpass)' where epost='$epost'";
$result2 = mysql_query($sql2)or die("SQL: $sql2 <br>".mysql_error());
/* Slut SQL Frågor */
 
 
 
 
 
 
/* Bygg mail för att skicka */
   $to   =$epost;
   $fromname='AVSÄNDARNAMN';   
   $fromemail="avsändare@domän.se";
   
 
        $subject = "Begäran om nytt lösenord!";
 
       $headers  = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
   $headers .= "From:".$fromname."<".$fromemail.">\r\n";
        $headers .= "Reply-To: ".$fromname." <".$fromemail.">\r\n";
        $headers .= "Message-ID: <".md5(uniqid(time()))."@{$_SERVER['SERVER_NAME']}>\r\n";
        $headers .= "X-Sender: {$fromemail}\r\n";
        $headers .= "Return-Path: {$fromemail}\r\n";
        $headers .= "X-Mailer: Microsoft Office Outlook, Build 11.0.5510\r\n";
        $headers .= "X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441\r\n";
   $message .= "\r\n";
   $message .= "<html><left>
         <p>Du har begärt ett nytt lösenord till sidan x, ditt nya lösenord är ".$newpass."
         <p><a href=\"http://domän.se\">[url]http://domän.se[/url]</a>
         <br> När du loggat in så kan du byta lösenord till något du enklare kommer ihåg
         <p>
         M.v.h
         <br>Admin
         
         </html>";     
 
      mail($to,$subject,$message,$headers)
      exit;
 
}
echo $form1;
?>
Medlem sedan jan. 20021 122 inlägg
#2

Någon närmre beskrivning av felet kanske? Ett fel som syns direkt är att du inte escapat en dubbelfnutt på denna rad:

<p><a href=\"http://domän.se\"><a href="http://domän.se" target="_blank">[url]http://domän.se[/url]</a></a>
Medlem sedan okt. 2003118 inlägg
#3

jag får en massa sånna här medelanden:
Parse error: syntax error, unexpected T_EXIT in D:\wwwroot\funtrix\npgames\glomt_losen.php on line 140

tar jag bort exit så blir det bara fel på raden under osv...

Medlem sedan juli 20023 617 inlägg
#4

Du har glömt ett semikolon efter mail-funktionen. Tänk även på att // tolkas som en kommentar när du skriver http:// osv.

Medlem sedan okt. 2003118 inlägg
#5

okej... det ska jag tänka på... :)
får jag bara fråga vart du hittade mail funktionen utan semikolon? :P jag måste blivit blind :(

Medlem sedan nov. 20041 740 inlägg
#6
mail($to,$subject,$message,$headers)
exit;
Medlem sedan okt. 2003118 inlägg
#7

har kommit så långt att jag kan skicka och få mailet nu, men mailet innehåller inte den information jag vill ha, får endast detta:

Content-type: text/html; charset=iso-8859-1

From: AVSÄNDARNAMN <avsändare@domän.se>
Reply-To: AVSÄNDARNAMN <avsändare@domän.se>
Message-ID: <ae0d79ddcd6bac9ff1ba24f5b4e424e4@trams.1go.dk>

X-Sender: avsändare@domän.se

X-Mailer: Microsoft Office Outlook, Build 11.0.5510

X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441

Date: Thu, 18 Aug 2005 20:00:33 +0200 (CEST)

<html><left>

så skicka med mitt modifierade script och hoppas på hjälp.

<? 
include "conn.php"; // Databasanslutningen 
 
/* För felsökning avmarkera nedan rad */ 
/*error_reporting(E_ALL);*/ 
/* Slut felsökning */ 

/* Starta sessionen */ 
session_start(); 
/* slut sessionsstart */ 
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.style2 {font-size: 18px}
-->
</style>
</head>

<body>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="28%">&nbsp;</td>
    <td width="72%"><span class="style2">NP<br>
    </span></td>
  </tr>
  <tr>
    <td valign="top"><a href="index.php">Logga in</a><br>
      <a href="bli_medlem.php">Bli medlem</a></td>
    <td><form name="form1" method="post" action="">
      <table width="100%"  border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td>Skriv in din email s&aring; skickar vi dig ett nytt l&ouml;senord.</td>
        </tr>
        <tr>
          <td>
		    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td>
				<? 
				/* FORMS */
/* Start bygg formulär */
$form1="<form name=\"form1\" action=\"?id=13\" method=\"POST\">
<table width=\"150\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" style=\"border: 0px solid #000000\">
  <tr>
    <th align=\"center\">Epost:
    </th>
  </tr>
  <tr>
      <td><input type=\"text\" size=\"22\" name=\"epost\">
      </td>
  </tr>
  <tr>
      <td><input type=\"hidden\" name=\"skickat\" value=\"japp\">
      </td>
  </tr>   
  <tr>
      <td colspan=\"3\"align=\"center\"><input type=\"submit\" name=\"submit\" value=\"Skicka\">
   <input type=\"reset\" name=\"reset\" value=\"Rensa\">
      </td>
  </tr>
  </table>
    ";
/* Slut bygg formulär */
 
if (isset($_POST['skickat'])){
 
   // Tag bort eventuella blanksteg i början eller slutet
   foreach($_POST as $key => $val){
     $_POST[$key] = trim($val);
   }
 
$newpass=substr(MD5(mt_rand()),0,10); // Skapa ett nytt lösenord
 
/* SQL Frågor */
$sql="SELECT epost from npmedlemmar WHERE epost='{$_POST['epost']}'";
$result = mysql_query($sql)or die("SQL: $sql <br>".mysql_error());
if (mysql_num_rows ($result) =="") {
     $reg_error[] = 1;
   }
 
   if (isset($reg_error)) {
echo "<font color=red>Epostadressen du uppgav:{$_POST['epost']}<br>
      finns inte registrerad till någon användare, eller så är ditt konto inte aktivt ännu,
      om du nyligen anmält dig och inte fått mail med inloggningsuppgifter! <br>
      Försök annars på nytt om du kanske skrev galet. <br>M.v.h Admin<br></font>";
echo $form1;
exit;
   }
$epost=mysql_result($result, 0);
$sql2="UPDATE npmedlemmar set pass='MD5($newpass)' where epost='$epost'";
$result2 = mysql_query($sql2)or die("SQL: $sql2 <br>".mysql_error());
/* Slut SQL Frågor */
 
 
 
 
 
 
/* Bygg mail för att skicka */
   $to   =$epost;
   $fromname='AVSÄNDARNAMN';   
   $fromemail="avsändare@domän.se";
   
 
        $subject = "Begäran om nytt lösenord!";
 
       $headers  = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
   $headers .= "From:".$fromname."<".$fromemail.">\r\n";
        $headers .= "Reply-To: ".$fromname." <".$fromemail.">\r\n";
        $headers .= "Message-ID: <".md5(uniqid(time()))."@{$_SERVER['SERVER_NAME']}>\r\n";
        $headers .= "X-Sender: {$fromemail}\r\n";
        $headers .= "Return-Path: {$fromemail}\r\n";
        $headers .= "X-Mailer: Microsoft Office Outlook, Build 11.0.5510\r\n";
        $headers .= "X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441\r\n";
   $message .= "\r\n";
   $message .= "<html><left>";
         "<p>Du har begärt ett nytt lösenord till sidan x, ditt nya lösenord är ".$newpass."

         <p>Hälsningar adress.se

         <br> När du loggat in så kan du byta lösenord till något du enklare kommer ihåg

         <p>

         M.v.h

         <br>Admin

         

         </html>"; 
      mail($to,$subject,$message,$headers);
      exit;
 
}
echo $form1;
?> </td>
              </tr>
            </table></td>
        </tr>
      </table>
    </form></td>
  </tr>
</table>
</body>
</html>
Medlem sedan juni 20006 031 inlägg
#8

Ändra

$message .= "<html><left>";
         "<p>Du har begärt ett nytt lösenord till sidan x, ditt nya lösenord är ".$newpass."
         <p>Hälsningar adress.se
         <br> När du loggat in så kan du byta lösenord till något du enklare kommer ihåg
         <p>
         M.v.h
         <br>Admin        
         </html>";

till

$message .= "<html><left>
         <p>Du har begärt ett nytt lösenord till sidan x, ditt nya lösenord är ".$newpass."
         <p>Hälsningar adress.se
         <br> När du loggat in så kan du byta lösenord till något du enklare kommer ihåg
         <p>
         M.v.h
         <br>Admin        
         </html>";
266 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
127 ms — hämta forumlista (db)
134 ms — hämta statistik (db)
131 ms — hämta tråd, inlägg och bilagor (db)