| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

09-08-2008, 01:08
|
|
Change
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 31
|
|
Hilfe bei captcha code
Hallo, hab folgenden captchacode gefunden, den ich gut finde:
Es gibt 3 Dateien:
captcha.php
captcha.PNG
FONT.TTF
captcha.php
PHP-Code:
<?php
session_start();
unset($_SESSION['captcha_spam']);
function randomString($len) {
function make_seed(){
list($usec , $sec) = explode (' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
//Der String $possible enthält alle Zeichen, die verwendet werden sollen
$possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
$str="";
while(strlen($str)<$len) {
$str.=substr($possible,(rand()%(strlen($possible))),1);
}
return($str);
}
$text = randomString(5); //Die Zahl bestimmt die Anzahl stellen
$_SESSION['captcha_spam'] = $text;
header('Content-type: image/png');
$img = ImageCreateFromPNG('captcha.PNG'); //Backgroundimage
$color = ImageColorAllocate($img, 0, 0, 0); //Farbe
$ttf = $_SERVER['DOCUMENT_ROOT']."/captcha/XFILES.TTF"; //Schriftart
$ttfsize = 25; //Schriftgrösse
$angle = rand(0,5);
$t_x = rand(5,30);
$t_y = 35;
imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);
?>
Einbau ins Formular:
PHP-Code:
<tr>
<td><img src="captcha/captcha.php" border="0" title="Sicherheitscode"></td>
<td><input type="text" name="sicherheitscode" size="5"></td>
</tr>
einbau ins script:
PHP-Code:
<?php
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
//
//
//Hier kommt das ursprüngliche Script hin.
//
//
}
?>
Wenn ich nun mein Formular abschicke kommt lediglich folgendes:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\2.php:4) in C:\xampp\htdocs\2.php on line 5
Was kann ich nun tun?
Wo ist der fehler?
in line 5 steht folgendes:
session_start();
Also, bitte helft mir
Change
Geändert von Change (09-08-2008 um 01:11 Uhr)
|

09-08-2008, 07:39
|
|
UzumakiNaruto
Registrierter Benutzer
|
|
Registriert seit: Nov 2004
Ort: Hannover
Beiträge: 584
|
|
session_start steht in mehreren dateien und das mag er nicht.
es reicht wenn du session_start einmal ausführst .. das gilt für die ganze webseite (solange der browser offen ist oder die session manuell zerstört wird).
also in der datei "einbau ins script:" (2.php) das session_start entfernen.
__________________
Gruß
Uzu
|

09-08-2008, 09:18
|
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.746
|
|
@Chage hier lesen: Warning: Cannot modify header information
-----------
Zitat:
Original geschrieben von UzumakiNaruto
session_start steht in mehreren dateien und das mag er nicht.
es reicht wenn du session_start einmal ausführst .. das gilt für die ganze webseite (solange der browser offen ist oder die session manuell zerstört wird).
also in der datei "einbau ins script:" (2.php) das session_start entfernen.
|
Du schon wieder mit deinem tollen Halbwissen. Was meinst du, wann captcha.php aufgerufen wird? session_start() in captcha.php kollidiert niemals mit anderen session_start() im Script. Denn captcha.php wird erst vom Browser nachträglich extra aufgerufen, nachdem der Browser die HTML-Codes für die Seite erhalten hat und der Browser für die Darstellung des Bildes die Daten braucht. Deshalb sieht man auch bei überladene Seiten, dass das CaptchaBild fast immer am Ende angezeigt wird.
Der Fehler ist also woanders zu finden.
|

09-08-2008, 12:30
|
|
Change
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 31
|
|
Hi, erstmal danke für die posts!
Weiß jetzt leider immernochnicht was ich machen muss!
Wo liegt der fehler?
Hab mir den Thread mal durchgelesen zu dem du mir den Link gepostet hast.... das sind Grundinformationen zum script-Header...aber was muss ich da reinschreiben, das alles funkt???
Hoffe auf eine Antwort, Change
|

09-08-2008, 13:01
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Du musst da nichts reinschreiben. Du musst nur dafür sorgen, dass du KEINE Ausgabe vor dem session_start() machst!
|

09-08-2008, 13:44
|
|
Change
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 31
|
|
Vielen Dank, klappt einwandfrei!
Jedoch!
Ich habe 3 scripts
1.php = Formular
2.php = Verarbeitung & Userausgabe
3.php "Admin" auslese site
Wenn jedoch vor session_start(); nichts stehen darf, wie richte ich die Seite dann designtechnisch ein????
Wenn ich ein script posten soll, einfach sagen!
Hoffe jemand kann mir da helfen!
Danke
|

09-08-2008, 13:45
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Eingabe - Verarbeitung - Ausgabe
|

09-08-2008, 13:46
|
|
Blackgreetz
PHP Junior
|
|
Registriert seit: Oct 2005
Beiträge: 901
|
|
Was hindert dich an:
PHP-Code:
<?php session_start(); ?>
<html>
<!-- REST-->
<?php
#blubb-code
?>
</html>
Also einfach session start kurz am Anfang schreiben .. kann auch vom restlichen Code getrennt sein ansich bzw. den code blöcken..
mfg
|

09-08-2008, 14:05
|
|
Change
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 31
|
|
Vielen, Vielen Dank, klappt super!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|