2. form übergabe klappt nicht *gelöst*

VIPbanner_de

www.VIPbanner.de
ID: 72674
L
1 Mai 2006
2.598
150
hallo.. ich möchte einen Text über ein formular 2 x übergeben und dann speichern... das übergeben ansich klappt soweit, nur das der text beim 2. übergeben abgeschnitten wird wenn Sonderzeichen drin sind...

Das ganze sieht so aus:

Mailtext wird in ein Formular eingegeben. Ich übergebe an Schritt 2

if (get_magic_quotes_gpc()) {
$text = stripslashes($_POST["text"]);
}

Den Mailtext lasse ich als Vorschau anzeigen.. Hier kann der User den Mailtext nocheinmal abprüfen.. und sich die "rechnung" anzeigen lassen.. Also wieviel punkte der Versand kostet und wie die "rechnung" aufgeschlüsselt ist. Deswegen die vorschau Funktion, sonst könnte man ja direkt übergeben und speichern.....

Wenn der User jetzt auf buchen klickt, wird der gleiche schritt erneut geladen, allerdings mit der hidden variable $weiter , damit das script weiß das es jetzt speichern darf.. $text wurde vorher korrekt angezeigt.. mit Sonderzeichen, in diesem Fall waren das Anführungsstriche.... Jetzt schneidet es mir den Text genau da ab, wo die Anführungstriche begeinnen würden... und ich komm net drauf warum..
 
Zuletzt bearbeitet:
Wenn du den text in einem hidden Feld übergibst, endet der value an den Anführungszeichen, das sieht im HTML so aus und sollte im validator fehler rauswerfen:
<hidden name="" value="1234"hfjhj>
ich ersetze einfach doppelte durch einfache Anführungszeichen, bzw ein addslash sollte auch helfen.
 
ah okay verstehe... also müsste ich vor dem übergeben adslashes machen damits übergeben wird.. nach dem übergeben stripslashes um wieder auszulesen?
 
das klappt irgendwie auch net.. jetzt kommt nach dem text \\\ und dann schneides ab... hier mal der quelltext auszug von schritt2:

PHP:
<?
if($go == schritt2){

//Kontolle ob alles korrekt ausgefüllt ist
if (empty ($menge)) { echo "<div align=\"center\">Bitte die Anzahl der Empfänger (mind. 10) angeben!<br><br>
    <a href=\"javascript:history.go(-1);\"><span class=\"indexlink\">Zurück</span></A></div>";
include("../templates/member-footer.txt");
die;
}
if (empty ($betreff)) { echo "<div align=\"center\">Bitte einen Betreff angeben!<br><br>
    <a href=\"javascript:history.go(-1);\"><span class=\"indexlink\">Zurück</span></A></div>";
include("../templates/member-footer.txt");
die;
}
if (empty ($target)) { echo "<div align=\"center\">Bitte Ziel URL angeben!<br><br>
    <a href=\"javascript:history.go(-1);\"><span class=\"indexlink\">Zurück</span></A></div>";
include("../templates/member-footer.txt");
die;
}
if (empty ($text)) { echo "<div align=\"center\">Bitte einen Paidmailtext angeben!<br><br>
    <a href=\"javascript:history.go(-1);\"><span class=\"indexlink\">Zurück</span></A></div>";
include("../templates/member-footer.txt");
die;
}
//ENDE Kontolle ob alles korrekt ausgefüllt ist

//KOSTENUMRECHNUNG
if ($time == 5) {$timekosten = "0"; $userverguetung = "3";}
if ($time == 15) {$timekosten = "5"; $userverguetung = "5";}
if ($time == 30) {$timekosten = "10"; $userverguetung = "8";}
if ($time == 45) {$timekosten = "15"; $userverguetung = "12";}
if ($time == 60) {$timekosten = "20"; $userverguetung = "15";}
if ($time == 90) {$timekosten = "30"; $userverguetung = "20";}
if ($html == 0) {$htmlkosten = "0"; $mailtypinfo = "Text Mail";}
if ($html == 1) {$htmlkosten = "5"; $mailtypinfo = "HTML Mail";}

$grundpreisgeskosten =floor($mailwerbung)*$menge;
$timegeskosten =floor($timekosten)*$menge;
$htmlgeskosten =floor($htmlkosten)*$menge;

$gesamtkosten=floor($timekosten+$htmlkosten+$mailwerbung)*$menge;

if($weiter == ok)
{
if (get_magic_quotes_gpc()) {
  $text = stripslashes($_POST["text"]);
 }
  $dbtext = addslashes($_POST["text"]);
$sendebutton = "<a href=\"./paidmail.php?go=kampagnen&sid=\"$sid\"&userid=\"$userid\"><span class=\"indexlink\">>> Zu deinen Paidmailkampagnen</span></a>"; $dbaplikation = "Hier DB Aplikation";} else {
if (get_magic_quotes_gpc()) {
  $text = stripslashes($_POST["text"]);
 }
  $dbtext = addslashes($_POST["text"]);
$sendebutton ="<form method=\"post\" action=\"./paidmail.php\">

<input type=\"hidden\" name=\"sid\" value=\"$sid\">

<input type=\"hidden\" name=\"userid\" value=\"$userid\">
<input type=\"hidden\" name=\"art\" value=\"$html\">

<input type=\"hidden\" name=\"menge\" value=\"$menge\">

<input type=\"hidden\" name=\"target\" value=\"$target\">

<input type=\"hidden\" name=\"text\" value=\"$dbtext\">


<input type=\"hidden\" name=\"betreff\" value=\"$betreff\">
<input type=\"hidden\" name=\"readtime\" value=\"$time\">

<input type=\"hidden\" name=\"gesamtkosten\" value=\"$gesamtkosten\">

<input type=\"hidden\" name=\"go\" value=\"schritt2\">
<input type=\"hidden\" name=\"weiter\" value=\"ok\">

      <input type=\"submit\" value=\"Buchen\"></form>";}
      
?>

<FONT size=2><center><B><FONT color=#BF0000>Wichtig</FONT>:</B> Überprüfen Sie bitte unbedingt vor Ihrer Buchung ob Ihre Seite ein Framebrecher ist.<br>Framebrecherseiten werden nicht verschickt.</center></FONT><br><b>TESTMODUS!!! MAILBUCHUNG WIRD NICHT AUSGEFÜHRT ODER BERECHNET</b><br>




<TABLE bordercolor="#000000" border="0" width="550" align="center">

    <tr> 

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000>Ziel URL</td>

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000><center><a href="./frame.php?url=<? echo "$target"; ?>" target="_blank"><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000><? echo "$target"; ?></a><BR>(Für Framebrechertest bitte <a href="./frame.php?url=<? echo "$target"; ?>" target="_blank"><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000><FONT color=#B90000><B>HIER</B></FONT></a> anklicken)</td>

    </tr>

    <tr> 

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000>Text</td>

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000><textarea type="text" cols="50" rows="6" readonly><? echo "$text"; ?></textarea></td>

    </tr>
    

   <tr> 

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000>gebuchte menge</td>

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000><? echo "$menge"; ?> Empfänger</td>

    </tr>

   <tr> 

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000>Gesamtkostenübersicht</td>

      <td><div align="center"><table border="2" cellspacing="2" cellpadding="1" width=400>
            <tr valign="top">
              <td width=300><b>Paidmail Grundpreis</b><br><font size="1"><? echo "$menge"; ?> Empfänger x <? echo "$mailwerbung"; ?> BP´s</font></td>
              <td width=100><? echo "$grundpreisgeskosten"; ?> BP´s</td>
            </tr>
            <tr valign="top">
              <td><div align="center"><b><i>Features</i></b></div><br><b>Bestätigungszeit <? echo "$time"; ?> Sek.</b><br><font size="1">(<? echo "$menge"; ?> Empfänger x <? echo "$timekosten"; ?> BP´s)</font><br><br><b>Mailtyp:</b><br><? echo "$mailtypinfo"; ?><br><font size="1">(<? echo "$menge"; ?> Empfänger x <? echo "$htmlkosten"; ?> BP´s)</font></td>
              <td><br><br><? echo "$timegeskosten BP´s<br><br><br>$htmlgeskosten BP´s"; ?></td>
            </tr>
            <tr valign="top">
              <td><b>Gesamtkosten für diesen Auftrag</b></td>
              <td><b><? echo "$gesamtkosten"; ?> BP´s</b></td>
            </tr>
          </table></div></td>

    </tr>

    <tr> 

      <td colspan="2" align="center"><br><br>
      
      
     <? echo "$sendebutton"; ?>

      </td>

    </tr>

</table>



<?

include("../templates/member-footer.txt");

die;

}
?>

Die Registerglobals sind auf on.. deswegen nicht überall der $post drin. Aber das sind dinge die bereinigt werden wenn ich den Fehler gefunden hab :)
 
Sorry, addslashes geht natürlich nicht, da die Anführungszeichen weiter im text stehen. Wie gesagt ich hau immer die doppelten Anführungszeichen raus. Was aber gehen sollte, ist eine kodierung und dann wieder dekodieren (ich denk mal base64 oder urldecode sollten gehen)
 
sorry.. kann sein das ich da nen denkfehler hab.. aber bei mir gehts nicht.. kann mir mal jemand bitte ein Beispiel machen wie das einfache übergeben eines forms aussehen würde.. und wenn ich es weiter übergebe das es dann korrket gespeichert wird?.. Ich mach da schon 4 Tage rum.. ohne Erfolg..

*SchongraueHaarebekomm* :evil:
 
Hier ein klienes Beispiel

PHP:
<?php
if($_POST['send'] == 2)
{
echo "aktion ausführen";
echo '<br>',base64_decode($_POST['text']);
}
elseif($_POST['send'] == 1)
{
echo "Nochmal anzeigen";
?>
<form method="POST">
<input type="hidden" name="send" value="2">
<input type="hidden" name="text" value="<?PHP echo base64_encode($_POST['text']); ?>">
<input type="submit" name="wech" value="wech">
</form>
<?PHP
}else{
?>
<p>Normales Formular</p>
<form method="POST">
<input type="hidden" name="send" value="1">
<input type="text" name="text" value="">
<input type="submit" name="wech" value="wech">
</form>
<?PHP
}
?>
 
:renozg:Hey Super! Vorschau, speichern und auslesen klappt einwandfrei!!

habs jetzt so drin:

PHP:
<?
if($go == schritt2){


//Kontolle ob alles korrekt ausgefüllt ist
if (empty ($menge)) { echo "<div align=\"center\">Bitte die Anzahl der Empfänger (mind. 10) angeben!<br><br>
    <a href=\"javascript:history.go(-1);\"><span class=\"indexlink\">Zurück</span></A></div>";
include("../templates/member-footer.txt");
die;
}
if ($menge < 10) { echo "<div align=\"center\">Es müssen mindestens 10 Mails gebucht werden!<br><br>
    <a href=\"javascript:history.go(-1);\"><span class=\"indexlink\">Zurück</span></A></div>";
include("../templates/member-footer.txt");
die;
}
if (empty ($betreff)) { echo "<div align=\"center\">Bitte einen Betreff angeben!<br><br>
    <a href=\"javascript:history.go(-1);\"><span class=\"indexlink\">Zurück</span></A></div>";
include("../templates/member-footer.txt");
die;
}
if (empty ($target)) { echo "<div align=\"center\">Bitte Ziel URL angeben!<br><br>
    <a href=\"javascript:history.go(-1);\"><span class=\"indexlink\">Zurück</span></A></div>";
include("../templates/member-footer.txt");
die;
}
if (empty ($text)) { echo "<div align=\"center\">Bitte einen Paidmailtext angeben!<br><br>
    <a href=\"javascript:history.go(-1);\"><span class=\"indexlink\">Zurück</span></A></div>";
include("../templates/member-footer.txt");
die;
}
//ENDE Kontolle ob alles korrekt ausgefüllt ist

//KOSTENUMRECHNUNG
if ($time == 5) {$timekosten = "0"; $userverguetung = "3";}
if ($time == 15) {$timekosten = "5"; $userverguetung = "5";}
if ($time == 30) {$timekosten = "10"; $userverguetung = "8";}
if ($time == 45) {$timekosten = "15"; $userverguetung = "12";}
if ($time == 60) {$timekosten = "20"; $userverguetung = "15";}
if ($time == 90) {$timekosten = "30"; $userverguetung = "20";}
if ($html == 0) {$htmlkosten = "0"; $mailtypinfo = "Text Mail";}
if ($html == 1) {$htmlkosten = "5"; $mailtypinfo = "HTML Mail";}

$grundpreisgeskosten =floor($mailwerbung)*$menge;
$timegeskosten =floor($timekosten)*$menge;
$htmlgeskosten =floor($htmlkosten)*$menge;

$gesamtkosten=floor($timekosten+$htmlkosten+$mailwerbung)*$menge;

if($_POST['weiter'] == ok) 

{

if (get_magic_quotes_gpc()) { 
  $dbtext = stripslashes(base64_decode($_POST["text"])); 
 } else {$dbtext = base64_decode($_POST['text']);}
 $inserttime = time();
 $laenge = 15; 
$zeichen = "abcdefghijklmnopqrstuvxwyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 
$mailkey=""; 
mt_srand ((double) microtime()*1000000); 
for ($i=0; $i<$laenge; $i++) 
{ 
    $mailkey .= $zeichen{mt_rand(0,strlen($zeichen))}; 
}
 
 $query="INSERT INTO V4_paidmails (userid, typ, html, titel, text, ziel, verguetung, menge, time, datum, status, mailkey, gesamtkosten) VALUES ('$userid', '1', '$html', '$betreff', '$text', '$target', '$userverguetung', '$menge', '$time', '$inserttime', '0', '$mailkey', '$gesamtkosten');";
	mysql_query($query);
  
$sendebutton = "<a href=\"./paidmail.php?go=kampagnen&sid=\"$sid\"&userid=\"$userid\"><span class=\"indexlink\">>> Zu deinen Paidmailkampagnen</span></a>";
$hinweis = "<font color=\"#66CC33\">Paidmail wurde erfolgreich gebucht</font>";} else {

if (get_magic_quotes_gpc()) { 
  $vorschautext = stripslashes($_POST["text"]); 
 } else {$vorschautext = $_POST["text"];}

$dbtext = base64_encode($_POST['text']);
$sendebutton ="<form method=\"post\" action=\"./paidmail.php\">

<input type=\"hidden\" name=\"sid\" value=\"$sid\">

<input type=\"hidden\" name=\"userid\" value=\"$userid\">
<input type=\"hidden\" name=\"art\" value=\"$html\">

<input type=\"hidden\" name=\"menge\" value=\"$menge\">

<input type=\"hidden\" name=\"target\" value=\"$target\">

<input type=\"hidden\" name=\"text\" value=\"$dbtext\">


<input type=\"hidden\" name=\"betreff\" value=\"$betreff\">
<input type=\"hidden\" name=\"readtime\" value=\"$time\">

<input type=\"hidden\" name=\"gesamtkosten\" value=\"$gesamtkosten\">

<input type=\"hidden\" name=\"go\" value=\"schritt2\">
<input type=\"hidden\" name=\"weiter\" value=\"ok\">
<input type=\"hidden\" name=\"time\" value=\"$time\">

      <input type=\"submit\" value=\"Buchen\"></form>";}
      
?>

<FONT size=2><center><B><FONT color=#BF0000>Wichtig</FONT>:</B> Überprüfen Sie bitte unbedingt vor Ihrer Buchung ob Ihre Seite ein Framebrecher ist.<br>Framebrecherseiten werden nicht verschickt.</center></FONT><br><div align="center"><b><? echo"$hinweis"; ?></b></div><br>




<TABLE bordercolor="#000000" border="0" width="550" align="center">

    <tr> 

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000>Ziel URL</td>

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000><center><a href="./frame.php?url=<? echo "$target"; ?>" target="_blank"><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000><? echo "$target"; ?></a><BR>(Für Framebrechertest bitte <a href="./frame.php?url=<? echo "$target"; ?>" target="_blank"><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000><FONT color=#B90000><B>HIER</B></FONT></a> anklicken)</td>

    </tr>

    <tr> 

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000>Text</td>

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000><textarea type="text" cols="50" rows="6" readonly><? echo "$vorschautext"; ?></textarea></td>

    </tr>
    

   <tr> 

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000>gebuchte menge</td>

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000><? echo "$menge"; ?> Empfänger</td>

    </tr>

   <tr> 

      <td><font face=Verdana, Arial, Helvetica, sans-serif size=1 color=#000000>Gesamtkostenübersicht</td>

      <td><div align="center"><table border="2" cellspacing="2" cellpadding="1" width=400>
            <tr valign="top">
              <td width=300><b>Paidmail Grundpreis</b><br><font size="1"><? echo "$menge"; ?> Empfänger x <? echo "$mailwerbung"; ?> BP´s</font></td>
              <td width=100><? echo "$grundpreisgeskosten"; ?> BP´s</td>
            </tr>
            <tr valign="top">
              <td><div align="center"><b><i>Features</i></b></div><br><b>Bestätigungszeit <? echo "$time"; ?> Sek.</b><br><font size="1">(<? echo "$menge"; ?> Empfänger x <? echo "$timekosten"; ?> BP´s)</font><br><br><b>Mailtyp:</b><br><? echo "$mailtypinfo"; ?><br><font size="1">(<? echo "$menge"; ?> Empfänger x <? echo "$htmlkosten"; ?> BP´s)</font></td>
              <td><br><br><? echo "$timegeskosten BP´s<br><br><br>$htmlgeskosten BP´s"; ?></td>
            </tr>
            <tr valign="top">
              <td><b>Gesamtkosten für diesen Auftrag</b></td>
              <td><b><? echo "$gesamtkosten"; ?> BP´s</b></td>
            </tr>
          </table></div></td>

    </tr>

    <tr> 

      <td colspan="2" align="center"><br><br>
      
      
     <? echo "$sendebutton"; ?>

      </td>

    </tr>

</table>



<?

include("../templates/member-footer.txt");

die;

}
?>

und im admin lese ich wie folgt aus:

PHP:
<?
$result = mysql_query("SELECT * FROM `V4_paidmails` where userid!=0 AND typ='1' AND datumfree='0' order by mailid desc");

  while ($myrow = mysql_fetch_row($result)){

if (get_magic_quotes_gpc()) { 
  $decodierter_text = stripslashes(base64_decode($myrow[5])); 
 } else {$decodierter_text = base64_decode($myrow[5]);}

echo"Test: $decodierter_text";
}
?>